*******************************************
** CPSDirectory V1.32.0 [R1 build 2006/03/03-17:28 by ben]
** SVN URL: https://svn.nuxeo.org/pub/CPSDirectory/trunk Revision: 33855
Requires:
~~~~~~~~~
-
New features:
~~~~~~~~~~~~~
-
Bug fixes:
~~~~~~~~~~
- #1479: fixed ZMI add menu
New internal features:
- #1465: wrote GenericSetup IO for MetaDirectories backings
~~~~~~~~~~~~~~~~~~~~~~
- #1295: show search form on search results page

*******************************************
** CPSDirectory V1.31.1 [R1 build 2006/02/17-20:17 by fermigier]
** SVN URL: https://svn.nuxeo.org/pub/CPSDirectory/trunk Revision: 32986
Requires:
~~~~~~~~~
-
New features:
~~~~~~~~~~~~~
-
Bug fixes:
~~~~~~~~~~
- Searches on ZODB directories using invalid keys returned all entries
- Existing entry local roles where not deleted before being imported.
- #1338: fixed mutability problem in ZODB directory caching.
- #1311: searching for * should return all results on ZODBDirectory
- #1052: empty searches will not return any results
- #1294: even when importing a base profile, directory content shouldn't be 
  erased.
New internal features:
~~~~~~~~~~~~~~~~~~~~~~
-

*******************************************
** CPSDirectory V1.31.0 [R1 build 2006/01/23-17:17 by fermigier]
** SVN URL: https://svn.nuxeo.org/pub/CPSDirectory/trunk Revision: 31955
Requires:
~~~~~~~~~
-
New features:
~~~~~~~~~~~~~
- #631: ZODBDirectory now support caching
Bug fixes:
~~~~~~~~~~
- #618: Fixed use of fields with "read ignore storage" for SQLDirectory and
  LDAPBackingDirectory.
- Fixed hasEntry permission checking.
- #995: MetaDirectory sometimes does useless searches in some backings
- Interface clarification about MetaDirectory and substring searches
- #1266: Metadirectory doesn't rename properly the fields of the 
         backing directories
New internal features:
~~~~~~~~~~~~~~~~~~~~~~
- Removed obsolete widget types registration.
- Made cross(S|G)etList methods registered on the
  CPSSchemas.FieldNamespace.fieldStorageNamespace method registry so that are
  publicly available in fields' TALES expressions context. They are no longuer
  part of the DirectoryTool but in a seperate non persistent util module.
- CPS css_slot was renamed style_slot to comply with later CMF/Zope 3 standard.
- CPSDirectory.utils.QueryMatcher: small object to prepare queries/match
  them with entries.
- Made the crossSetList method "tuple safe"
- Added an unrestricted _deleteEntry in addition to deleteEntry.

*******************************************
** CPSDirectory V1.30.1 [R1 build 2005/11/08-16:54 by fguillaume]
** SVN URL: https://svn.nuxeo.org/pub/CPSDirectory/trunk Revision: 29274
Requires:
~~~~~~~~~
-
New features:
~~~~~~~~~~~~~
-
Bug fixes:
~~~~~~~~~~
-
New internal features:
~~~~~~~~~~~~~~~~~~~~~~
- Better name for methods: _getSchemasFields -> _getFieldItems,
  _getSchemasKeys -> _getFieldIds
- Fixed algorithm performance details

*******************************************
** CPSDirectory V1.30.0 [R1 build 2005/11/07-15:17 by fguillaume]
** SVN URL: https://svn.nuxeo.org/pub/CPSDirectory/trunk Revision: 29081
Requires:
~~~~~~~~~
-
New features:
~~~~~~~~~~~~~
-
Bug fixes:
~~~~~~~~~~
-
New internal features:
~~~~~~~~~~~~~~~~~~~~~~
-
*******************************************
** CPSDirectory V1.29.0 [R1 build 2005/10/26-16:58 by anguenot]
** SVN URL: https://svn.nuxeo.org/pub/CPSDirectory/trunk Revision: 28670
Requires:
~~~~~~~~~
-
New features:
~~~~~~~~~~~~~
- updated Brazilian Portuguese translations (Thanks to Mario Olimpio de Menezes
  <mario [at] curiango.ipen.br>)
- LDAPBackingDirectory supports a ldap_base_creation property that specifies, 
  within a SUBTREE ldap scope, under which base the entries will be created
- Directories supports several schema definitions (including search schemas).
- #341: The UserIdentifierWidget checked that a user_id didn't lready exist, 
  but forgot to set an error message, so you would not see what the problem 
  was, or which field.
- #1030: GroupsDirectory.listEntryIds() returned a tuple instead of a list.
Bug fixes:
~~~~~~~~~~
- Fix to prevent access by anonymous user to getEntry method.
New internal features:
~~~~~~~~~~~~~~~~~~~~~~
- added translations tests
-

*******************************************
** CPSDirectory V1.28.0 [R1 build 2005/09/21-14:58 by fguillaume]
** SVN URL: https://svn.nuxeo.org/pub/CPSDirectory/trunk Revision: 27306
Requires:
~~~~~~~~~
-
New features:
~~~~~~~~~~~~~
- added private methods to DirectoryTool to allow cross editing of String List Fields 
  (kind of simple directory joins). Access rights to directories should be check
  by the calling environment
Bug fixes:
~~~~~~~~~~
- Security fix: better restrict access to the getEntry method. ACLs are checked.
- Fix : members didn't have enough rights to access their preferences
- Fix : invalidate ldap connection cache once on ldap.SERVER_DOWN error in
  LDAPBackingDirectory
- Fix: DirectoryVocabulary: getMsgid with default=None was broken
- #913: explicitely allow Member to view members and groups dirs
- #823: sort directory results case insensitively, and by default on name column.
New internal features:
~~~~~~~~~~~~~~~~~~~~~~
- moved integration tests to ftests/ : use `zopectl test -f CPSDirectory` to run
  them
- all test in tests/ are now unit and run in less that 2 seconds

*******************************************
** CPSDirectory V1.27.0 [R1 build 2005/08/05-13:54 by ben]
** SVN URL: https://svn.nuxeo.org/pub/CPSDirectory/trunk Revision: 25426
Requires:
~~~~~~~~~
- CPSUtil > 0.5.3
New features:
~~~~~~~~~~~~~
- Adding hierarchical support for LDAPBackingDirectory (and Stacking/Meta)
- Stricter defaults for the ACLs of a newly-created directory.
Bug fixes:
~~~~~~~~~~
- Replaced incorrect code producing broken urls using virtual hosting.
New internal features:
~~~~~~~~~~~~~~~~~~~~~~
- DirectoryWidget handle a root_uid which can be different from the directory
  root, this enable to display just a part of a hierarchical directory.
- DirectoryWidget improve xhtml

*******************************************
** CPSDirectory V1.26.0 [R1 build 2005/07/13-16:06 by ben]
** SVN URL: https://svn.nuxeo.org/pub/CPSDirectory/trunk Revision: 24893
Requires:
~~~~~~~~~
-
New features:
~~~~~~~~~~~~~
- LDAPBackingDirectory is now Cache-aware, and can be used with
  a RAM Cache Manager. Caching is done at the lowest LDAP level, so
  doesn't depend on user or rights.
- SQLDirectory is now Cache-aware too.
- RAM Cache Managers can be added directly in portal_directories. Typical
  configuration should remove the AUTHENTICATED_USER from the keywords.
- hasEntry now checks security, _hasEntry is the unrestricted method.
Bug fixes:
~~~~~~~~~~
- i18n fix on role labels translations (Member & Manager)
- Taking advantage of the new centralized CPSI18n.tests.translations module.
- Fixed translation files through the CPSI18n/bin/fix_pos script.
- SQLDirectory searchEntries failed to return correct results when no
  return_fields were specified.
New internal features:
~~~~~~~~~~~~~~~~~~~~~~
- Unit tests for SQLDirectory.

*******************************************
** CPSDirectory V1.25.0 [R1 build 2005/06/02-09:32 by fguillaume]
** SVN URL: https://svn.nuxeo.org/pub/CPSDirectory/trunk Revision: 22058
Requires:
~~~~~~~~~
-
New features:
~~~~~~~~~~~~~
- LDAPBackingDirectory: added explicit filter for LDAP entries.
Bug fixes:
~~~~~~~~~~
- BaseDirectory: listEntryIdsAndTitles returned a list of tuples (id, id)
  instead of (id, title)
- IndirectDirectory: listEntryIdsAndTitles and
  listAllPossibleEntriesIdsAndTitles returned a list of tuples (id, id) instead
  of (id, title)
New internal features:
~~~~~~~~~~~~~~~~~~~~~~
- ZMI search uses unrestricted search method.
- BaseDirectory has unrestricted _editEntry and _creatEntry methods,
  used by meta and stacking directories.
  Access control is done by the primary directory, not by each backing.
- API for search factoured out in BaseDirectory adding method _getSearchFields
- Test case does not depend anymore on CPSTestCase.
- Fixed LDAP testing framework.

*******************************************
** CPSDirectory V1.24.1 [R1 build 2005/04/13-15:16 by madarche]

Requires:
~~~~~~~~~
-
New features:
~~~~~~~~~~~~~
-
Bug fixes:
~~~~~~~~~~
- Updated i18n with new version of update_pos.
New internal features:
~~~~~~~~~~~~~~~~~~~~~~
-

*******************************************
** CPSDirectory V1.24.0 [R1 build 2005/04/13-08:14 by ben]

Requires:
~~~~~~~~~
-
New features:
~~~~~~~~~~~~~
- Added the email attribute in the result fields for members to be more
  user-friendly.
Bug fixes:
~~~~~~~~~~
-
New internal features:
~~~~~~~~~~~~~~~~~~~~~~
- Avoid losing information in explodeDN for incorrect syntax.
- SQLDirectory: factor out code to build the search query, making it easier to
  overload in subclasses, and remove the ignore_case_for_substring_comparisons
  property.

*******************************************
** CPSDirectory V1.23.0 [R1 build 2005/03/17-15:00 by anahide]

Requires:
~~~~~~~~~
-
New features:
~~~~~~~~~~~~~
- Basic SQLDirectory, to store data into an SQL table.
Bug fixes:
~~~~~~~~~~
- Used "Products.CMFCore.permissions" instead of deprecated
  "Products.CMFCore.CMFCorePermissions".
- ZODBDirectory.createEntry: correctly cleanup entry object.
- fix #474: Make sure search didn't return alternate casing, this could be the
  case for LDAP.
- DirectoryWidget: getIdAndTitle did not check if id was None before trying to
  get information from directory - this led to useless searches at creation
  time, for instance.
New internal features:
~~~~~~~~~~~~~~~~~~~~~~
- manage_addCPSDirectory() takes a **kw args that is propagated to the cls constructor

*******************************************
** CPSDirectory V1.21.1 [R1 build 2005/01/28-15:00 by madarche]

Requires:
~~~~~~~~~
-
New features:
~~~~~~~~~~~~~
-
Bug fixes:
~~~~~~~~~~
-
New internal features:
~~~~~~~~~~~~~~~~~~~~~~
- LDAPBackingDirectory: raise AuthenticationFailed instead of
  ConfigurationError when doing a search with invalid user credentials.
- Use python isinstance instead of old _isinstance.

*******************************************
** CPSDirectory V1.21.0 [R1 build 2005/01/20-11:29 by ben]

Requires:
~~~~~~~~~
-
New features:
~~~~~~~~~~~~~
-
Bug fixes:
~~~~~~~~~~
- fix tidy warning
- disallow empty password strings for getEntryAthenticated in
  LDAPBackingDirectory (bug with Sun iPlanet server)
New internal features:
~~~~~~~~~~~~~~~~~~~~~~
- macro lib splitted

*******************************************
** CPSDirectory V1.20.0 [R1 build 2004/12/21-09:20 by ben]

Requires:
~~~~~~~~~
-
New features:
~~~~~~~~~~~~~
-
Bug fixes:
~~~~~~~~~~
-
New internal features:
~~~~~~~~~~~~~~~~~~~~~~
- Raise ConfigurationError instead of ValueError for some
  configuration problems.

*******************************************
** CPSDirectory V1.19.1 [R1 build 2004/12/13-08:22 by madarche]

Requires:
~~~~~~~~~
- CPSNavigation >= 0.11.1 to be able to use "CPS Directory Entry Widget"
  to create entries into indirect directories
New features:
~~~~~~~~~~~~~
- Added methods to be able to use a "CPS Directory Entry Widget" to create
  entries into an Indirect directory, even through a Local Directory
- Added security level to searchEntries access, using directory view
  authorization
- Malagasy translation
Bug fixes:
~~~~~~~~~~
- LDAPBackingDirectory: Fixed problem for DN with accented chars.
- LDAPBackingDirectory: Correctly trap insufficient access errors.
- LDAPBackingDirectory: When creating entry, return synthesized DN.
- IndirectDirectoryVocabulary: items coming from the indirect directory are now
  correctly retrieved (bug appeared in v.1.16.0)
- LocalDirectory: it was not possible to provide a default value to method
  getEntry
New internal features:
~~~~~~~~~~~~~~~~~~~~~~
- LDAPBackingDirectory: Automatically reconnect to server.
- IndirectDirectory: added a storage adapter
- ZODBDirectory: use IsUserModified interface to prevent updater cleaning
- Begining of use of epydoc
- BaseDirectory: adding method isSearchEntriesAllowed, equivalent to isVisible,
  and use it in checkSearchEntriesAllowed
- cpsdirectory_entry_* templates: make them call setDirectoryBreadCrumbs and
  getDirectoryActions when setting fake breadcrumbs and actions on directories

*******************************************
** CPSDirectory V1.19.0 [R1 build 2004/10/13-08:18 by ben]

Requires:
~~~~~~~~~
-
New features:
~~~~~~~~~~~~~
-
Bug fixes:
~~~~~~~~~~
- Fix copy/paste and rename of directories
- Fix ZODBDirectory with computed title attribute
- LocalDirectory method "isVisible" did not return 0 if user
  did not have a home folder (and thus did not have a personal directory)
- Fixed some translation about groups.
- Fixed initialization of IndirectDirectoryVocabulary.
- Fix: multientry widget use an hard coded title for the navigation popup
  fixed by using label_edit property
New internal features:
~~~~~~~~~~~~~~~~~~~~~~
- ZMI: New Search tab on the directories.
- Trying to access to a personal directory now raises an Unauthorized error
  instead of a KeyError (LocalDirectory).
- Added headers in .po files to make them recognized by
  PlacelessTranslationService
- You may specified a search_restricted_member_list within the options so
  that the research will be restricted to this list when specified. A use
  case is when you want to perform a research in a given context on people
  having local roles within this context only

*******************************************
** CPSDirectory V1.18.0 [R1 build 2004/09/10-09:32 by ben]

Requires:
~~~~~~~~~
-
New features:
~~~~~~~~~~~~~
- metadirectory and stacking can now retrieve content urls from
  backing directory calling
Bug fixes:
~~~~~~~~~~
-
New internal features:
~~~~~~~~~~~~~~~~~~~~~~
- improve a bit batching display for result page
- Using PNG files instead of GIF files.

*******************************************
** CPSDirectory V1.17.3 [R1 build 2004/09/03-13:33 by ben]

Requires:
~~~~~~~~~
-
New features:
~~~~~~~~~~~~~
-
Bug fixes:
~~~~~~~~~~
- fix: when creating an entry with an already exising id you have a generic 
  psm without any explanantion
- fix: ldapdirectory deleting non leaf entry raise cps error
  now it display a warning psm
- fix: create entry raise a CPS Error on ldapdirectory if there is an already 
  existing entry and if the new id is computed with a base_dn
New internal features:
~~~~~~~~~~~~~~~~~~~~~~
- Added a TODO list.

*******************************************
** CPSDirectory V1.17.2 [R1 build 2004/08/23-05:51 by fermigier]

Requires:
~~~~~~~~~
-
New features:
~~~~~~~~~~~~~
-
Bug fixes:
~~~~~~~~~~
- LDAPBackingDirectory: Don't fail in some case of incorrect config of auth.
- Use more semantical HTML markup
New internal features:
~~~~~~~~~~~~~~~~~~~~~~
- Added an optional 'loadcustom' parameter to the getDirectoryVocabularies.py
  method.

*******************************************
** CPSDirectory V1.17.1 [R1 build 2004/08/16-15:23 by ben]

Requires:
~~~~~~~~~
-
New features:
~~~~~~~~~~~~~
- Updated doc about MetaDirectory's missing entries management.
- Updated doc about how StackingDirectory and MetaDirectory deal with id fields.
Bug fixes:
~~~~~~~~~~
- Made LDAPBackingDirectory work with non-ascii passwords (convert to UTF-8).
- Fixed MetaDirectory incorrect search results case when missing entries
  are expected in the result.
- LDAPBackingDirectory: Don't raise an LDAP exception in searches when
  the site is down or incorrectly configured.
- LDAPBackingDirectory: looking up an entry must check it's under the base.
- fix: DirectoryEntryWidget impossible to delete a selected value,
  it was only possible to change a value not to reset the value
New internal features:
~~~~~~~~~~~~~~~~~~~~~~
- widget directory entry use default function.js for javascript

*******************************************
** CPSDirectory V1.17.0 [R1 build 2004/07/22-13:45 by ben]

Requires:
~~~~~~~~~
-
New features:
~~~~~~~~~~~~~
- adding back button in the view entry page to enhance a bit
  navigation
Bug fixes:
~~~~~~~~~~
-
New internal features:
~~~~~~~~~~~~~~~~~~~~~~
-

*******************************************
** CPSDirectory V1.16.0 [R1 build 2004/07/16-10:07 by anahide]

Requires:
~~~~~~~~~
- remove all entries stored in an indirect directory instance, or delete the
  directory.
New features:
~~~~~~~~~~~~~
- Indirect directories can now store entries coming from different directories.
  (compatibility is broken with previous instances of Indirect directory if
  these instances are not empty)
- Local directory 'directory_id' property has been changed from string to list
  because it is used for indirect directories, and new methods used for indirect
  directories have been added in LocalDirectory.
- A new type of vocabulary, indirect directory vocabulary, is used to get all
  the possible entries for an indirect directory.
Bug fixes:
~~~~~~~~~~
-
New internal features:
~~~~~~~~~~~~~~~~~~~~~~
-

*******************************************
** CPSDirectory V1.15.1 [R1 build 2004/07/07-09:14 by madarche]

Requires:
~~~~~~~~~
- Synced with latest CPSSchemas, calling adapter.finalizeDefaults(entry) is
  needed

New features:
~~~~~~~~~~~~~
-
Bug fixes:
~~~~~~~~~~
-
New internal features:
~~~~~~~~~~~~~~~~~~~~~~
- 


*******************************************
** CPSDirectory V1.15.0 [R1 build 2004/07/06-08:52 by ben]

Requires:
~~~~~~~~~
-
New features:
~~~~~~~~~~~~~
-
Bug fixes:
~~~~~~~~~~
-
New internal features:
~~~~~~~~~~~~~~~~~~~~~~
- search_results fields are render with structure to enable html rendering

*******************************************
** CPSDirectory V1.14.0 [R1 build 2004/07/02-16:46 by anahide]

Requires:
~~~~~~~~~
-
New features:
~~~~~~~~~~~~~
- Added a new type of directory that just stores links towards entries of
  another directory (Indirect Directory)
- Changed Local Directory to be able to use Local Directory with an
  Indirect directory that would be created automatically.
  WARNING: directory_id does not refer to the id of the directory created
  locally (this one will have the same id than the directory with type
  'CPS Local Directory'), but is used when creating an indirect directory
  locally : it is the id of the directory it refers to (entries will be links
  to entries of that directory).
- Changed the default members layout: now available roles are only the global
  roles 'Manager' and 'Member'. The widget used is a Generic MultiSelect
  widget that displays checkboxes.
Bug fixes:
~~~~~~~~~~
- Local Directory: fixed a bug related to the fact that the admin is not
  always a member of the site, but should be able to access to the directory
  properties.
- Indirect Directory: changed the listEntryIdsAndTitles method that was not
  behaving correctly.

New internal features:
~~~~~~~~~~~~~~~~~~~~~~
- Add the translated attributes for *Select Widgets

*******************************************
** CPSDirectory V1.13.0 [R1 build 2004/06/14-07:57 by ben]

Requires:
~~~~~~~~~
-
New features:
~~~~~~~~~~~~~
- Added the isUserModified() set of methods
- In CPSDirectoryMultiEntriesWidget: added the option of 
rendering in edit mode without using the popup window selection
system (using CPSMultiSelectWidget rendering instead)
Bug fixes:
~~~~~~~~~~
- Fix: searchEntries on a Stacking/MetaDirectory with return_fields=['*']
New internal features:
~~~~~~~~~~~~~~~~~~~~~~
-

*******************************************
** CPSDirectory V1.12.5 [R1 build 2004/05/28-16:16 by guillaum]

Requires:
~~~~~~~~~
-
New features:
~~~~~~~~~~~~~
-
Bug fixes:
~~~~~~~~~~
- Adding the handling SearchSizeLimitExceeded and now handling the case 
  when a search returns too many results.
New internal features:
~~~~~~~~~~~~~~~~~~~~~~
- Don't raise RuntimeError but ValueError.
- LDAPBackingDirectory: raise ConfigurationError when the LDAP server is down.
- LDAPDirectory createEntry return new id, if id is a dn and
  computed with a base_dn

*******************************************
** CPSDirectory V1.12.4 [R1 build 2004/05/14-17:08 by guillaum]

Requires:
~~~~~~~~~
-
New features:
~~~~~~~~~~~~~
-
Bug fixes:
~~~~~~~~~~
- LDAPBackingDirectory: handle ldap.INAPPROPRIATE_AUTH.
New internal features:
~~~~~~~~~~~~~~~~~~~~~~
- Import LDAP constants at the top of LDAPBackingDirectory.

*******************************************
** CPSDirectory V1.12.3 [R1 build 2004/05/13-16:59 by guillaum]

Requires:
~~~~~~~~~
-
New features:
~~~~~~~~~~~~~
- LDAPBackingDirectory: Made entry creation work if the dn is not present.
Bug fixes:
~~~~~~~~~~
- MetaDirectory: fixed listEntryIds with 'missing' directory as first backing.
New internal features:
~~~~~~~~~~~~~~~~~~~~~~
- LDAPBackingDirectory: Precompute objectClass search filter, used it for all
  searches.
- LDAPBackingDirectory: Treat ldap.UNWILLING_TO_PERFORM (empty password)
- Small refactoring to simplify getting of search adapters.

*******************************************
** CPSDirectory V1.12.2 [R1 build 2004/05/12-17:25 by guillaum]

Requires:
~~~~~~~~~
-
New features:
~~~~~~~~~~~~~
-
Bug fixes:
~~~~~~~~~~
- Fixed UTF8 conversion.
- Corrected typo in isAuthenticating in MetaDirectory.
New internal features:
~~~~~~~~~~~~~~~~~~~~~~
-

*******************************************
** CPSDirectory V1.12.1 [R1 build 2004/05/10-17:14 by guillaum]

Requires:
~~~~~~~~~
-
New features:
~~~~~~~~~~~~~
- ZMI management for MetaDirectory's backing directories.
- MetaDirectory has a new "missing entry" feature, which makes it possible
  to have default values without creating entries in the backing directory.
Bug fixes:
~~~~~~~~~~
-
New internal features:
~~~~~~~~~~~~~~~~~~~~~~
-

*******************************************
** CPSDirectory V1.12.0 [R1 build 2004/05/06-16:59 by guillaum]

Requires:
~~~~~~~~~
-
New features:
~~~~~~~~~~~~~
-
Bug fixes:
~~~~~~~~~~
-
New internal features:
~~~~~~~~~~~~~~~~~~~~~~
- Implemented listEntryIdsAndTitles for MetaDirectory.
- Implemented specific authentication API for directories.

*******************************************
** CPSDirectory V1.11.0 [R1 build 2004/05/05-00:11 by guillaum]

Requires:
~~~~~~~~~
- require CPSCore >= 3.10.0
- require CPSSchemas >= 0.21.0
New features:
~~~~~~~~~~~~~
- DirectoryEntryVocabulary
- New "User Identifier Widget" that use the isMemberIdAllowed() for
  validation.
- updateMemberDataFromSchema renamed to manage_(...) and associated to a ZMI
  tab so you can click a button to sync it afterwards (closes #310)
- New LDAPBackingDirectory. Has only been very lightly tested.
- StackingDirectory can work with a different id than the ones in the backing
  directories.
Bug fixes:
~~~~~~~~~~
- fix: deleteEntry raise error allowed pseudo role that are not manager
- fix: Tightened up permission checks for entry creation or deletion.
- fix: missing psm after deleting an entry
- fix: ZODBDirectory.searchEntries would fail on a bad return_fields.
New internal features:
~~~~~~~~~~~~~~~~~~~~~~
- Better internal API for no ACL checks on datamodel.
- Better default search results display for unknown directories.

*******************************************
** CPSDirectory V1.10.3 [R1 build 2004/04/15-15:19 by guillaum]

Requires:
~~~~~~~~~
-
New features:
~~~~~~~~~~~~~
-
Bug fixes:
~~~~~~~~~~
- Don't update memberdata when not relevant for the directory.
- Fix HTML in search results.
New internal features:
~~~~~~~~~~~~~~~~~~~~~~
-

*******************************************
** CPSDirectory V1.10.2 [R1 build 2004/04/01-15:19 by ben]

Requires:
~~~~~~~~~
-
New features:
~~~~~~~~~~~~~
-
Bug fixes:
~~~~~~~~~~
- Empty fields are not updatable, this result of empty entry
  under ldap
- LDAP entry could fail to update if not all the schema fields were passed.
New internal features:
~~~~~~~~~~~~~~~~~~~~~~
-

*******************************************
** CPSDirectory V1.10.1 [R1 build 2004/03/25-16:55 by ben]

Requires:
~~~~~~~~~
-
New features:
~~~~~~~~~~~~~
-
Bug fixes:
~~~~~~~~~~
- xhtmlize
New internal features:
~~~~~~~~~~~~~~~~~~~~~~
-

*******************************************
** CPSDirectory V1.10.0 [R1 build 2004/03/25-11:38 by ben]

Requires:
~~~~~~~~~
-
New features:
~~~~~~~~~~~~~
- Providing an easy way to delete multiple entries at a time through the search
  results form
- Member directory have a homeless property to enable/disable access
  to the private area && private calendar && favorites
Bug fixes:
~~~~~~~~~~
- Invalid Entry in view mode is a link to a CPS Error page
- The MemberTools patch now only sets the properties on the user that thes
  user object claim to support. Other properties will be set in the
  MemberTool.
New internal features:
~~~~~~~~~~~~~~~~~~~~~~
- let CPSDefault load functions.js

*******************************************
** CPSDirectory V1.9.0 [R1 build 2004/03/08-14:01 by ben]
** CPS 3.0 RELEASE **

Requires:
~~~~~~~~~
-
New features:
~~~~~~~~~~~~~
- Delete member and its member area when deleting from members directory.
  Requires CPSMembershipTool >= 1.46.
- use Identifiant widget for member, group and role Id
Bug fixes:
~~~~~~~~~~
- Delete Entry action displayed for non authorized user
New internal features:
~~~~~~~~~~~~~~~~~~~~~~
- MultiEntries and Entry widget are compatible so we
  can switch from one to another
- Tighter ACL checks for creation and rendering.
- Entry local roles are passed to the datamodel so can be used by field ACLs.
- duplicate layout for search on members/groups/roles

*******************************************
** CPSDirectory V1.8.0 [R1 build 2004/02/25-08:47 by ben]

Requires:
~~~~~~~~~
-
New features:
~~~~~~~~~~~~~
-
Bug fixes:
~~~~~~~~~~
- ZODBDirectory must inherit correctly PropertiesPostProcessor
  (ACL, when changed, were not correctly post-processed thus not used).
New internal features:
~~~~~~~~~~~~~~~~~~~~~~
- Entry local roles are now usable for all directory ACLs.
- In entry local roles namespace, all schema-defined fields are available
  (may be None if not present in the given entry).
- MultiEntriesWidget enable customization of view separator
- MultiEntriesWidget sort entries by default
- field can be processed for display in the search result list
  see getCustomDirectoryResultList for more information

*******************************************
** CPSDirectory V1.7.0 [R1 build 2004/02/19-15:54 by ben]

Requires:
~~~~~~~~~
-
New features:
~~~~~~~~~~~~~
- search result list can be sorted (cf getDirectoryResultFields)
Bug fixes:
~~~~~~~~~~
- no widget help available on creation form
- Better error message in LocalDirectory if the home folder is missing.
New internal features:
~~~~~~~~~~~~~~~~~~~~~~
- _getDataModel and _getAdapters always propagate **kw arguments to
  the underlying storage adapter.
- When querying a directory vocabulary, only the title field is retrived
  from an entry.

*******************************************
** CPSDirectory V1.6.5 [R1 build 2004/02/11-14:33 by ben]

Requires:
~~~~~~~~~
-
New features:
~~~~~~~~~~~~~
-
Bug fixes:
~~~~~~~~~~
- default for the fullname computation doesn't takes care of spaces.
- widget contextual help is not nice
New internal features:
~~~~~~~~~~~~~~~~~~~~~~
-

*******************************************
** CPSDirectory V1.6.4 [R1 build 2004/02/10-13:29 by regebro]

Bug fixes:
~~~~~~~~~~
- missing directory icon UserFolder_icon.gif
- The Roles Directory didn't implement deleteEntry.
New internal features:
~~~~~~~~~~~~~~~~~~~~~~
- getEntry now has a default parameter, to prevent a raise of KeyError
  if the entry does not exist.
- userFolderDelRoles implemented in the userfolder patch.

*******************************************
** CPSDirectory V1.6.3 [R1 build 2004/02/08-07:39 by fermigier]

Requires:
~~~~~~~~~
-
New features:
~~~~~~~~~~~~~
-
Bug fixes:
~~~~~~~~~~
-
New internal features:
~~~~~~~~~~~~~~~~~~~~~~
- getEntry now has a default parameter, to prevent a raise of KeyError
  if the entry does not exist.

*******************************************
** CPSDirectory V1.6.2 [R1 build 2004/02/03-15:13 by regebro]

Bug fixes:
~~~~~~~~~~
- LDAP multivalue search is done using substring match
- LocalDirectory "Recursion Depth Exceeded" bug fixed.
- The tests if there is a local directory is no longer necessary.
- LDAPDirectory didn't work with IntegerFields.

*******************************************
** CPSDirectory V1.6.1 [R1 build 2004/02/03-10:31 by regebro]

New internal features:
~~~~~~~~~~~~~~~~~~~~~~
- BaseDirectories __init__ now sets properties with the passed kw dictionary.
- LocalDirectory now creates the directory if it does not exist.

*******************************************
** CPSDirectory V1.6.0 [R1 build 2004/02/02-16:26 by regebro]

Requires:
~~~~~~~~~
- i18n: require cpsdefault i18n into default mcat
New features:
~~~~~~~~~~~~~
- Directories can now specify which fields are searched with a substring
  search (the rest are searched with exact matches). Implemented for
  all directories.
- Enable tooltip help in creation and edition using widget/help property.
- Implemented ZODB Directory.
- New navigation using action
- Valid breadcrumbs
- improve Members layout
- Implemented getting and setting properties on the member when the user
  folder supports it.
- Enable empty search using '*' on field referenced in search_substring_fields
- #289: Finish implementing searchEntries, with return_fields support.
- New directory type LocalDirectory, is used to redirect directory queries to
  a directory located in the users home folder.
Bug fixes:
~~~~~~~~~~
- Correctly fail when trying to create an already existing member.
- Correctly remove attributes from LDAP when they are empty.
- Fix Roles directory when using LDAPUserGroupsFolder
- Fix fetching return_fields in the members directory.
New internal features:
~~~~~~~~~~~~~~~~~~~~~~
- Search result fields can be customized using getCustomDirectoryResultFields
- Filter out invalid LDAP attribute names (containing '_') for the filter.
- Raise KeyError instead of ValueError when it makes sense.
- popup for Directory Entry Widget has a search mode in addition to the navigation mode.
- fullname returns id if givenName and sn are both empty.
- Title for a member entry is now the full name.
- use cpsdefault.pot as blacklist_pot 
- Added LDAPUserGroupsFolder as a folder having subgroups support.
- Implemented group deletion by calling userFolderDelGroups.
- Role directory is hidden by default
- Implemented updateMemberDataFromSchema as found in NuxMetaDirectories.

*******************************************
** CPSDirectory V1.5.0 [R1 build 2004/01/21-10:40 by ben]

ZODB Requires:
~~~~~~~~~~~~~~
- widgets DirectoryEntry and MultiEntries require CPSNavigation
  to install CPSNavigation just add the skin CPSNavigation/skins
New features:
~~~~~~~~~~~~~
- Password widget uses a confirmation widget in edit mode.
- New DirectoryEntry and DirectoryMultiEntries widgets
- Directory vocabularies can now have an additional empty key.
Bug fixes:
~~~~~~~~~~
-
New internal features:
~~~~~~~~~~~~~~~~~~~~~~
-

*******************************************
** CPSDirectory V1.4.1 [R1 build 2004/01/15-14:33 by regebro]

ZODB Requires:
~~~~~~~~~~~~~~
-

New features:
~~~~~~~~~~~~~
- Italian translation.
- LDAPDirectoryVocabulary, referencing an LDAP directory by DN.

Bug fixes:
~~~~~~~~~~
- Correctly do field processing for computed fields in MembersDirectory,
  RolesDirectory and GroupsDirectory. Was already correct in LDAP.
- Group and Role directories now uses partial matching for ID.

New internal features:
~~~~~~~~~~~~~~~~~~~~~~
-

*******************************************
** CPSDirectory V1.4.0 [R1 build 2004-01/06-15:09 by anguenot]

ZODB Requires:
~~~~~~~~~~~~~~
-

New features:
~~~~~~~~~~~~~
- A Directory Vocabulary backed by LDAP can now be used with the DN as the
  key instead of the default Vocabulary's id field.

Bug fixes:
~~~~~~~~~~
-

New internal features:
~~~~~~~~~~~~~~~~~~~~~~
-
*******************************************
** CPSDirectory V1.3.0 [R1 build 2003/12/23-15:18 by ben]

ZODB Requires:
~~~~~~~~~~~~~~
- Re-enter all properties whose names used to be *_str.

New features:
~~~~~~~~~~~~~
- Added isEditEntryAllowed to check for entry edit permission.
- Added Entry Local Roles, a way for ACLs to get additional computed roles.
- Added a 'base_dn' field to the LDAP directory that can be used during
  creation to specify a subbranch.

Bug fixes:
~~~~~~~~~~
- LDAPDirectory now converts date fields between the LDAP time strings
  and DateTime objects.

New internal features:
~~~~~~~~~~~~~~~~~~~~~~
- Renamed writeEntry to editEntry.
- renaming properties '*_str' and used '*_c' for computed attribute
  foo_expression_str -> foo_expr, foo_expression -> foo_expr_c
  foo_str -> foo, foo -> foo_c

*******************************************
** CPSDirectory V1.2.0 [R1 build 2003/12/10-18:17 by ben]

ZODB Requires:
~~~~~~~~~~~~~~
-

New features:
~~~~~~~~~~~~~
- The default schema now has a 'fullname' computed field.
- Separation of entry creation and deletion roles.

Bug fixes:
~~~~~~~~~~
- listEntryIds() returned all objects in the LDAP regardless of objectClass.
- LDAPDirectory now converts Files, Images and 'None' to strings for
  LDAP Storage.
  
New internal features:
~~~~~~~~~~~~~~~~~~~~~~
- first step of cps default integration

*******************************************
** CPSDirectory V1.1.0 [R1 build 2003/11/26-16:08 by regebro]

New features:
~~~~~~~~~~~~~
- Translatability in skins. Translations for English and French (incomplete).

Bug fixes:
~~~~~~~~~~
- It was not possible to change the groups on members with 
  UserFolderWithGroups or PluggableUserFolder.
- Only Managers could check if they had edit rights on an Entry.
- LDAPDirectory did not use ObjectClass settings when searching.
New internal features:
~~~~~~~~~~~~~~~~~~~~~~
- Added unit tests for members, groups, roles
- Allow restriction of LDAP searches to specific objectClasses.

*******************************************
** CPSDirectory V1.0.0 [R1 build 2003/11/19-20:55 by guillaum]

ZODB Requires:
~~~~~~~~~~~~~~
- Add specific schema and layout for search if needed.

New features:
~~~~~~~~~~~~~
- Search for groups and roles.
- Split search schemas and layouts so they can be customized independently.
- Group and role creation work.
- Display save button only if at least one widget is in edit mode.
- Default schema/layout have first and last name.
- LDAPDirectory allows entry creation and modification.

Bug fixes:
~~~~~~~~~~
- Misc.

New internal features:
~~~~~~~~~~~~~~~~~~~~~~
- Efficient search done on user folders that know about searchUsers().
- New API on MemberDataTool to search members: searchForMembers().

*******************************************
** CPSDirectory V0.0.1 [R1 build 2003/11/10-18:19 by guillaum]

ZODB Requires:
~~~~~~~~~~~~~~
- Install the default setup using the external method CPSDirectory.install
- NuxUserGroups
- LDAPUserGroupsFolder-2.3.0
- CPSSchemas-0.6.0

New features:
~~~~~~~~~~~~~
- First packaged release.
- Allows view, edit and search of members / roles / groups / ldap
  directories. Allows creation of entry in members directory. Works well
  with UserFolderWithGroups, untested with LDAPUserGroupsFolder.
- No i18n.

Bug fixes:
~~~~~~~~~~
-

New internal features:
~~~~~~~~~~~~~~~~~~~~~~
-

