|
CHANGES.txt
CMF-1.5.1 (2005/04/24)
Other
- Made INSTALL.txt more general so it does not refer to specific CMF
version numbers in the 1.5 series and thus won't look outdated from
one release to the next.
- CMFCatalogAware: reindexObjectSecurity() optimizations in case
of an indexable container.
Bug Fixes
- CMFDefault.SyndicationTool: Coerce property values into correct
types. (http://zope.org/Collectors/CMF/344)
- CMFCore.Skinnable: Don't catch ConflictError in __of__.
- CMFCore.CMFCatalogAware: In reindexObjectSecurity, use
_unrestrictedGetObject when available, and LOG when the object
cannot be retrieved.
CMF-1.5.1beta2 (2005/04/17)
New Features
- MemberDataTool: setSecurityProfile (called by MembershipTool's
setPassword) now uses the userFolderEditUser() API of the user
folder to change user information.
- DCWorkflow: To bridge some of the bound variable name differences
between TALES expressions used in DCWorkflow and those used elsewhere
in the CMF, added two "aliases" to the expression context that reflect
the CMF conventions: "object" points to "here", and "folder" points
to "container" (http://www.zope.org/Collectors/CMF/338)
- CMFSetup: Improved update directives for extension profiles.
See the new PROFILES.txt for details.
- CMFCore.DirectoryView: Made list of file names to ignore configurable.
The previously hardcoded list of files to ignore when creating their
ZODB representations can now be configured by passing a sequence of
names to registerDirectory, which will be ignored in addition to the
standard list of ignored names (http://www.zope.org/Collectors/CMF/319).
- CMFCalendar: Added extension profile.
You can now set up CMFCalendar in one step together with a new site or
add calendar support to an existing site using the portal_setup tool.
- CMFSetup: Added support for extension profiles.
Extension profiles are profile fragments used to modify base profiles.
They can be shipped with add-on products or used for customization
steps. Importing an extension profile adds or overwrites existing
settings in a fine-grained way. You can't export extension profiles.
Snapshots and exports always represent the merged settings.
- CMFSetup: Sometimes it is not necessary or desirable to create a
snapshot upon initial site creation. Matter of fact when run in a unit
test situation, addConfiguredSite can throw permission errors during the
snapshot-taking because no specific SecurityManager has been set up.
Add new flag "snapshot" to factory.addConfiguredSite to turn off
snapshotting if desired
Bug Fixes
- TypesTool: Removed _checkViewType.
The control-content-creating-by-typeinfo-view-permission feature did
never work. Use DCWorkflow's allowCreate method instead.
(http://www.zope.org/Collectors/CMF/114)
- CMFDefault.DublinCore: Force local timezone when displaying date
metadata. ( http://www.zope.org/Collectors/CMF/325 )
- CMFCore.SkinsTool: Prevent adding skin layers with invalid path elements
There is a disconnect between the ability to define what can be ignored
inside DirectoryViews and what can be put into skins paths in
the SkinsTool. Now a check is done inside addSkinSelection that makes
sure the same ignore-policy that is used for the DirectoryView is
applied to the elements of a skin path.
(http://www.zope.org/Collectors/CMF/336)
- CMFCore.FSZSQLMethod: Added configuration parameters that were left out.
Some of the configuration parameters to ZSQL methods, specifically
those describing custom pluggable brains classes and the
connection_hook, were not implemented in FSZSQLMethod. Also added a
first small unittest module for FSZSQLMethod testing.
(http://www.zope.org/Collectors/CMF/335)
- CMFSetup utils: Modified ConfiguratorBase.
If the DEFAULT value is used, CONVERTER is no longer called. This makes
setting DEFAULT more intuitive. While very unlikely, the change might
break existing third party configurators.
- CMFSetup: Reduced probability of profile ID conflicts.
The first argument of
registerProfile is now name instead of
profile_id . The profile ID combines name and product .
- CMFSetup.skins made the assumption that the CMF site can always
acquire REQUEST and would set up the current skin with it. Added a test
to see if REQUEST is available and if it is not, skip the step that
sets up the current skin.
- CMFCalendar zpt skin: Removed dependency on dtml layer.
- CMFCalendar: Modified install script.
Adds date indexes instead of field indexes. No longer adds the dtml
layer to zpt skins.
- CMFCore.utils: Added
transaction for backwards compatibility.
CMF now uses the Zope 2.8 transaction API und uses utils.transaction as
fallback in Zope 2.7.
- CMFCore.TypesTool: Added backwards compatibility code to the fix for
collector issue 49. (http://www.zope.org/Collectors/CMF/49)
- CMFCore.Skinnable: Changed the way layers (skindata) are stored
(no more v attribute) to prevent them being lost in the middle
of a request when memory pressure is high. This change is
incompatible with SpeedPack, but includes one of its two
optimizations about skins. (http://www.zope.org/Collectors/CMF/198)
- DublinCore: Fixed creators upgrade to not call a potentially
costly method on the user folder.
(http://www.zope.org/Collectors/CMF/300)
- CMFCatalogAware: When reindexing security, all subobjects must be
reindexed even if they are not visible by the current user. Also
fixed to work correctly with Zope >= 2.7.6.
CMF 1.5.1beta (2005/03/24)
New Features
- CMFCore.TypesTool and CMFCore.PortalFolder: If invokeFactory is
called from code it will now hand back the created object's ID. This
does not change any behavior when called directly from the web. Both
methods returned None before, so there is no dependencies anywhere
on their return values, anyway. (http://collector.zope.org/CMF/331)
- CMFSetup: When importing skins configurations you can now specify a
layer to be inserted after a given layer. Previously you could only
insert before a given layer.
- CatalogTool: All default FieldIndex instances used for indexing
DateTime values are now created as DateIndex instances instead. All
default TextIndex instances are now created as ZCTextIndex instances.
(CMF collector issues http://www.zope.org/Collectors/CMF/191 and
http://www.zope.org/Collectors/CMF/302)
- CMFSetup: Improved
skip purge behavior of the skins import handler.
If purging is disabled, it's now possible to modify existing skin
configurations. You can use * as wildcard for skin-path ids and a
insert-before attribute to specify where to insert a new layer.
- CMFSetup tool: Improved
Properties tab.
The active site configuration can now be selected from a list of
registered profiles and stored snapshots.
(http://collector.zope.org/CMF/264)
- CMFSetup: Added handlers for site properties.
- CMFSetup utils: Added
ConfiguratorBase class.
It's now recommended to use this class as base for all configurators.
The class includes some generic methods to handle subobjects and
properties.
- FSObject: Now FSObject-derived items like FSImage or FSFile can have
security declarations inside the metadata file.
(http://collector.zope.org/CMF/289)
- profiles: Moved
default profile to CMFDefault.
Using the new importVarious handler this profile now allows to create
CMF sites identical to those created with manage_addCMFSite.
- CMFDefault: Added
importVarious setup handler.
This provisional handler will be removed again as soon as full handlers
are implemented for these steps.
- CachePolicyManager: You can now set a ETag using a TALES expression
(http://collector.zope.org/CMF/236)
- RegistrationTool: The regular expression that limits what people
can put in as a valid member ID is now configurable TTW in the
portal_registration tool (http://collector.zope.org/CMF/117)
Bug Fixes
- CMFCore.MembershipTool: Change a couple conditional tests that tried to
determine if the MemberDataTool had been found to explicitly test for
None as the return value instead of a truth test on the tool itself, which
would fail unexpectedly on folderish MemberDataTool implementations
that don't have actual content (http://www.zope.org/Collectors/CMF/330)
- CMFCore.CachingPolicyManager and CMFCore.ActionInformation: The names
available to TALES expressions throughout the CMF showed some
inconsistencies. To prevent confusion the names "content" and
"content_url" that were used for Cache Policy Manager policies as well
as the special ActionInformation.oai class are now deprecated and will
be removed in CMF 1.7. The canonical names to be used are "object" and
"object_url", which matches all other CMF expression contexts with
DCWorkflow being the only exception due to its non-CMF roots.
(http://www.zope.org/Collectors/CMF/328)
- CMFCore.PortalFolder: Cataloging portal folders was prevented by
overriding the typical indexing calls, but one of them was forgotten,
so they still got cataloged. (http://www.zope.org/Collectors/CMF/309)
- CMFCore.DirectoryView: A special __setattr__ on the
DirectoryViewSurrogate class made sure to write changes through to the
underlying DirectoryView, but there was no equivalent __delattr__
cleanup. (http://www.zope.org/Collectors/CMF/316)
- CMFDefault.RegistrationTool: Allow email addresses with an underscore
as the last element of the alias part.
(http://www.zope.org/Collectors/CMF/326)
- FSPageTemplate: Ensure that if a content type is specified using a
.metadata file we respect it (http://www.zope.org/Collectors/CMF/320)
- CMFCore.tests.test_PortalFolder: fixed testing bug copied forward
from OFS.tests.testCopySupport.
- CMFDefault.RegistrationTool: Allow
+ in e-mail addresses.
(http://collector.zope.org/CMF/322)
- ActionInfo: Fixed issue with oldstyle Action info mappings.
The
allowed key was broken for non-empty permissions .
- CMFDefault.DiscussionTool:
getDiscussionFor sometimes returned
unwrapped talkback objects.
- CMFSite: Made
title and description properties undeletable.
This change has no effect on existing sites.
- FSObject: Ensure that a cache manager association on a Filesystem-based
object in the Skins Tool gets applied to the customized object in the
ZODB upon customization. (http://www.zope.org/Collectors/CMF/304)
- TypesTool: Changed the way available factory_type_informations are
presented on the dropdown list when adding a new type from a
filesystem FTI to the Types Tool. The new representation includes
the "id" as set in the FTI instead of just the product name and the
meta_type. (http://www.zope.org/Collectors/CMF/49)
- CMFSetup: Fixed import of workflow bindings.
The
workflow import step has to be run after the typeinfo step.
(http://collector.zope.org/CMF/265)
- CMFCore.CatalogTool: Take into account query restrictions on
effective or expires attributes during a search.
(http://collector.zope.org/CMF/120)
- WorkflowTool: Fixed
setChainForPortalTypes .
If chain was an empty string, it wasn't set correctly.
- FSFile, FSImage: Made available to caching policy manager as
standard content. (http://collector.zope.org/CMF/299)
- FSDTMLMethod: Small code cleanup to remove duplicate variable
definition (http://collector.zope.org/CMF/291)
- Portal: Fixed
setupDefaultProperties .
Backwards compatibility was broken and the default_charset argument
was ignored.
- Document/NewsItem: If the "plain text" format is selected the
content will no longer be tested for HTML and reduced to text
between opening and closing "body" tags
(http://collector.zope.org/CMF/214)
- Document/NewsItem: A call to setFormat will now re-cook the
document content if the format has been changed (arising from
discussion about http://collector.zope.org/CMF/214)
- DirectoryViews/FSMetadata: Corrected some erroneous docstrings
about proxy role handling using .metadata files
(http://collector.zope.org/CMF/177)
Other
- CMFCore.FSPropertiesObject: Added a deprecation warning to announce the
fact that .properties files will disappear in CMF 1.7 and should be
replaced with CMFCore.FSMetadata (.metadata) files.
CMF 1.5.0 (2004/10/21)
New Features
- Portal: Added
default_charset property.
(http://collector.zope.org/CMF/261)
- CMFDefault utils: Added
toUnicode function.
(http://collector.zope.org/CMF/261)
Bug Fixes
- ZPT skin: Fixed
RSS .
Values are now converted to unicode, using default_charset .
(http://collector.zope.org/CMF/261)
- DublinCore: Added
setCreators method. Note that
notifyModified also modifies creators. If the current user
should not be added to creators, make sure notifyModified() is not
called after setCreators(). (http://collector.zope.org/CMF/61)
- ZPT skin: Fixed
*metadata_edit_form .
Setting "Enable Discussion?" to Off was broken.
- CMFSetup: Made sure imported values are converted to strings.
For now imports and exports work only with
ascii encoding.
(http://collector.zope.org/CMF/287)
- FSPageTemplate: Don't hide sub-tracebacks in development mode.
- TypesTool: Removed again the "add properties from the ZMI" feature.
That feature existed only in 1.5.0beta2.
- ActionProviderBase: Modified exceptions raised by
getActionInfo .
Now Unauthorized is raised if at least one Action was found but
the user is not allowed to access any of them.
- RegistrationTool: Generated passwords no longer contain
OQ0Il1 .
- The permalink feature is now turned off by default and may be turned
on by setting the boolean property
enable_permalink in the cmfs
root property sheet through the ZMI. Through the get_permalink
script the permanent link of an content object can be asked for.
Additionaly the site may be asked if the permalink feature is turned
on or not by adding isAvailable instead of an unique id
(http://www.example.com/permalink/isAvailable). Returns 1 or 0 .
Also removed the badly designed tal:on-error directive in
main_template .
CMF 1.5.0beta2 (2004/09/27)
New Features
- CookieCrumbler: Merged changes from standalone version.
Cookies set on an HTTPS connection are now marked as secure, meaning
they will not be transmitted over HTTP.
- PortalFolder: New
Folderish Interface defines the content*
methods.
- PortalFolder: Improved WebDAV folder listings.
Hidden sub-objects like tools are now filtered out. To see all
sub-objects, you need the
Manage portal permission.
- TypesTool: New properties can be added from the ZMI to
TypeInformation objects.
Bug Fixes
- CMFDefault/Document: store / return size of "raw" source text for
get_size .
- ZPT skin: Refactored registered_notify_template.
For security reasons, it no longer adds the password to the login URL.
- PortalFolder: Fixed
_checkId policy.
In a subfolder, members without Manage portal permission were not
able to create content items whose names clashed with content items
in the portal root.
- CookieCrumbler: Improved
came_from URL.
Problems in connection with stack manipulation on traversal or usage
of traverse_subpath should be fixed now.
- PortalFolder: Public
content* methods or no longer publishable.
This prevents expensive anonymous calls to contentItems(),
contentIds() and contentValues() via URLs. They still can be used
in TTW code.
- ZPT skin: Added missing mail_password_template.
- TypeInformation: Simplified Method Aliases API.
The new queryMethodID() replaces getMethodPath() and getMethodURL().
Aliases for method paths are no longer supported.
- FSFile: Allow setting a content_type value using a .metadata file
(http://collector.zope.org/CMF/281)
- FSPageTemplate: Refine the XML content type detection so that
addtional data such as encoding is preserved
(http://collector.zope.org/CMF/228)
- ActionInformation: If a path expression ending in an object that
gets called using __render_with_namespace__ (such as DTML objects
and Scripts (Python)) is used a KeyError for "here" would be thrown
inside PageTemplates.ZRPythonExpr.call_with_ns. call_with_ns
expects the namespace to contain "here", which the context coming
from CMFCore.Expressions.createExprContext did not provide. Added
"here" as an alias pointing to the provided "object"
(http://collector.zope.org/CMF/171)
- DiscussionItem: Made sure that the workflow is notified of their
creation.
(http://collector.zope.org/CMF/280)
- CMFCatalogAware: When pasting a content item, local roles were not
changed to reflect the new ownership.
(http://collector.zope.org/CMF/205)
- ZPT skin: Added missing RSS script and template.
(http://collector.zope.org/CMF/279)
- DirectoryView: Improved createDirectoryView() backwards compatibility.
Using platform specific path separators is deprecated.
- UniqueIdAnnotation: Fixed manage_after* methods.
They didn't work correctly in nested folders.
- Workflow: Marked WorkflowMethod alias WorkflowAction as deprecated.
- ZPT skin: Improved folder_copy_control and folder_cut_control.
They now catch CopyErrors.
- DirectoryView: Readded expandpath() for backwards compatibility.
Some products still import expandpath from DirectoryView because
it was once defined there. Note that importing expandpath from
DirectoryView is deprecated and doesn't work with CMF HEAD / 1.6.
- RegistrationTool: An optional password can now be passed to
registeredNotify() (Issue #277).
- Tool icons can now reside in subdirectories (Issue #144).
CMF 1.5.0beta (2004/08/12)
New Features
- The CMF is now under the terms of version 2.1 of the Zope Public
License (ZPL); it was previously under ZPL version 2.0.
- TypeInfos: Marked getActionById as deprecated.
Use getActionInfo if you need an URL or getMethodPath if you need a
method.
- CatalogTool.CatalogTool now has a private
unrestrictedSearchResults
method bypassing the effective and expiry date and roles. The new
method has to be used with care to not expose security holes in
applications using the CatalogTool.
- CMFCalendar.CalendarTool: Made workflow states configurable TTW.
(http://collector.zope.org/CMF/110)
- Minor featurelet: The "Action Providers" ZMI tab on the portal_actions
tool now links directly to the tools shown
(http://collector.zope.org/CMF/181)
- CMFCore.utils: Introduced contributorsplitter() utility function
along the lines of keywordsplitter().
- Actions and Action providers: Further refactoring.
- Removed again OldstyleActionProvider Interface and
OldstyleActionProviderBase that existed only in 1.5.0-alpha.
ActionProvider now also works with oldstyle Action mappings.
- listActionInfos() and getActionInfo() now return ActionInfo objects
instead of Action info mappings. ActionInfo objects have a backwards
compatible mapping interface.
- Added CMFUid product which provides tools for generating,
registering, and storing unique IDs for content (gregweb).
- As an example of how to use unique ids, enhanced CMFDefault.Favorite
content class, using unique ids to track moved or renamed
content items.
- At the bottom of the page the permanent link to the content object
is shown (http://www.example.com//permalink/1234, where
1234 is the unique id of the content object)
- Added __init__ method to the IOpaqueItems.ICallableOpaqueItem
interface.
- CookieCrumber now supports logging the authenticated user id to
the access log just like basic auth.
portal_setup tool can now disply / download diffs between profiles
and / or snapshots.
- The
find tab on the portal_skins tool will now mark the object that
would be returned when using the specified skin
Bug Fixes
- CMFCore.PortalFolder: Enforce check of "Delete objects" permission
during cut + paste.
(http://collector.zope.org/CMF/259)
- B. This fix depends on an update to the underlying Zope software,
e.g., Zope 2.7.3 or later. Two new unit tests fail on
Zope 2.7.2 and earlier.
- CMFDefault.MetadataTool: Validation would disallow
vocabulary-constrained metadata elements to be empty
(http://collector.zope.org/CMF/217)
- CMFDefault.DiscussionItem: Replies were not sorted chronologically
(http://collector.zope.org/CMF/211)
- CMFDefault.Image and CMFDefault.File: When copy/pasting Image and File
objects the review state did not revert to "private".
(http://collector.zope.org/CMF/176)
- CMFSetup: Refactored rolemap.
Converted the roles attribute to role sub-elements. Fixed an
acquisition bug that caused incomplete exports. Updated default
profile.
- CMFWiki: Prevent deprecation notice for the deprecated
CMFWikiPermissions module by replacing its usage in CMFWiki.__init__
with the new permissions module.
- CMFTopic: Change topic_view template to show title and ID (it only
showed title before)
(http://collector.zope.org/CMF/180)
- CMFCore.PortalFolder: Unlike other content, only Managers were able
to create PortalFolders using mkdir in FTP. Fixed by inserting
missing security declaration for PortalFolder.manage_addFolder
(http://collector.zope.org/CMF/167)
- Default text format for NewsItems is now structured-text, just like
it is for Documents, tuhs removing a spurious difference.
(http://collector.zope.org/CMF/138)
- CMFCalendar.CalendarTool: (Lost) fix for issues 65 and 159.
The determination of the date/time range constituting a specific month
was faulty.
- CMFDefault.DublinCore: Use the portal_metadata tool's
getPublisher
for the DublinCore Publisher element (thanks to Eric Brown for the
patch).
- CMFCalendar.CalendarTool: Code assumed US datetime format throughout.
At least since Zope 2.7 users can change that.
- CMFCalendar.Event: Day, month, and year were processed in the wrong
order by Event.edit().
(http://collector.zope.org/CMF/202)
- CMFCore.PortalFolder: _verifyObjectPaste() did not check the
container's allowed content types, enabling users to paste objects
they were not allowed to add.
(http://collector.zope.org/CMF/216)
- CMFDefault.File and CMFDefault.Image: setFormat() failed to update
the content_type property causing index_html() to use a stale mimetype
when serving the file or image.
(http://collector.zope.org/CMF/226)
- CMFDefault.Document, CMFDefault.Link, and CMFCalendar.Event:
WebDAV PUT() caused improper splitting of
Contributors metadata
header.
- CMFCore.PortalFolder: Fixed missing import of BadRequest exception.
- DCWorkflow DefaultWorkflowClassic: Fixed
pending state permissions.
- CMFSetup: Refactored actions, type-infos and workflow definition.
Changed some XML attributes. Converted list items and descriptions to
sub-elements.
- ActionInformation: Some attribute cleanup.
Enforced usage of
Title instead of Name , URL or
URL (Expression) instead of Action . Enforced boolean type of
Visible .
- DiscussionTool: Fixed two acquisition bugs.
(Collector #119 and #201)
- Change default CookieCrumbler Cache-Control header value from
"no-cache" to "private" to allow browser caches to cache cookie
authenticated pages but not proxies and HTTP accellerators.
- ActionInformation: Correctly store an empty tuple for permissions
if no permission is given (Collector #242).
- DublinCore: Use a default ceiling date that is parsable by
DateIndex (Collector #132).
- RSS: Creates correct XML by always quoting arguments (Collector #170).
CMF 1.5.0alpha (2004/07/09)
New Features
Bug Fixes
- zpt skin: Removed dependency on dtml layers.
- CMFCore utils: Marked
format_stx function as deprecated.
It's no longer necessary to work around default STX handling.
- DirectoryView: Refactored path handling.
Should now work with any products path setup. (Collector #210)
- Enforced new "local permissions" pattern: each top-level CMF product
should have a
permissions.py module which imports / declares all
permissions used within the product; other modules within the product
should import from there. Likewise for exceptions.py .
- Removed pre Zope 2.7.0 compatibility code. Now Zope 2.7.0 or a later
platform is required for CMF.
- CatalogTool: Marked the
meta_type index as deprecated.
- PortalFolder: Marked the
spec argument as deprecated.
Use the filter argument with portal_type instead for
contentItems(), contentIds(), contentValues() and listFolderContents().
- PortalFolder: Fixed portal_type acquisition bug in ContentFilter.
- DynamicType: Added
getPortalTypeName() to the interface.
- Collector #227: expose ZPT filename in tracebacks which include
FSPageTemplates.
- zpt skin: Switched base tag policy back to that of dtml skin.
This makes the use of relative URLs in content easier. If you have
content that depends on the old policy you can customize getBaseTag.pt
and add a slash. (Collector #66)
- Actions of folderish types: Fixed some inconsistencies.
Whatever the old CMFDefault policy was - this is the current policy:
"object" is used for Actions related to the object itself, "folder" is
used for Actions related to the container of the object.
- Changed the category of PortalFolder and SkinnedFolder Actions to
object .
- Moved
folderContents of folderish types from ActionsTool to
PortalFolder's type info. Other folderish types now have to declare
their own folderContents Action if they need one.
- Renamed Topic's
subtopics and SkinnedFolder's foldercontents
Action to folderContents to get them in sync.
- StrippingParser: Added
big , small , sub and sup to valid tags.
- _checkPermission: Added check for executable owner and proxy roles.
- SkinsContainer: Fixed context wrappers returned by getSkinByPath().
The original context of skin folders is now removed. This avoids having
SkinTool attributes added to the CMFSite root object.
- CatalogTool: Removed deprecated
id from default indexes and metadata.
- Skins: Fixed a DateTime related issue in search_form and doFormSearch.
Added one second to epoch to work around the problem that the timezone
gets lost if time is 00:00:00.
- CMFCore.PortalFolder: Explicitly declare base interfaces.
- Tests: CachingPolicyManager tests don't fail on Windows anymore.
(Collector #107)
- SkinsTool: Fixed cookie paths.
clearSkinCookie() now uses the same cookie path as updateSkinCookie()
which is now "inside-out" hosting safe.
- DefaultDublinCoreImpl: Changed accessor permissions.
As defined in the interface accessors are now protected by
View .
- CMFDefault utils: Made
tuplize() work correctly with string types.
- CMFCore utils: Reverted obsolete workaround in _checkPermission.
- Skin scripts: Made except statements safer by being more specific. Hope
this still catches all relevant errors.
- Removed some pre
Zope 2.4.3 with PageTemplates backwards
compatibility cruft. A later platform is required since CMF 1.3.
- Collector #153: CookieCrumbler didn'
|