*******************************************
** PluggableUserFolder V2.5.1 [R1 build 2005/04/13-09:13 by ben]

Requires:
~~~~~~~~~
-
New features:
~~~~~~~~~~~~~
-
Bug fixes:
~~~~~~~~~~
- Small XHTML validation fixes.
New internal features:
~~~~~~~~~~~~~~~~~~~~~~
-

*******************************************
** PluggableUserFolder V2.5.0 [R1 build 2004/08/27-14:42 by regebro]

Requires:
~~~~~~~~~
-
New features:
~~~~~~~~~~~~~
- Added a CASIdentification plugin for the CAS single-sign-on solution
  (see http://www.yale.edu/tp/cas/)
- The login page can now be external to the Zope site.
- IdentificationPlugins now can tell you what parameters 
  (like came_from) it wants to pass to the login-page.
- A logout page setting added. The logout.py skin should now only
  call context.logout() when using PUF.
- A ProtectedAuthInfo class is created that can be used to store
  authentification information in sessions.
Bug fixes:
~~~~~~~~~~
New internal features:
~~~~~~~~~~~~~~~~~~~~~~
- _logout() is now a required attribute of plugins.

*******************************************
** PluggableUserFolder V2.4.2 [R1 build 2004/07/07-17:12 by madarche]

Requires:
~~~~~~~~~
-
New features:
~~~~~~~~~~~~~
-
Bug fixes:
~~~~~~~~~~
- In SimpleGroupRoles there were several calls to getGroup() that did not
  check if a group was returned.
- Added hasLocalRolesBlocking() for compatibility with CPS 3.1.
New internal features:
~~~~~~~~~~~~~~~~~~~~~~
-

*******************************************
** PluggableUserFolder V2.4.1 [R1 build 2004/04/04-17:11 by regebro]

Requires:
~~~~~~~~~
-
New features:
~~~~~~~~~~~~~
-
Bug fixes:
~~~~~~~~~~
- With InternalAuthenticationPlugin, you edit users without roles 
  through the ZMI.
- There was a bug in the error handling of InternalAuthenticationPlugin
  when acquisition of acl_users didn't work.
- A typo in PluggableUser was fixed.
- user.setProperty should not raise an error when an unknown property
  is set, it should just be ignored.
New internal features:
~~~~~~~~~~~~~~~~~~~~~~
-

*******************************************
** PluggableUserFolder V2.4.0 [R1 build 2004/03/15-13:46 by regebro]

Requires:
~~~~~~~~~
-
New features:
~~~~~~~~~~~~~
- PluggableUser now implements property handling (needed for CPS3)
- The LDAPAuthenticationPlugin is now read/write.
Bug fixes:
~~~~~~~~~~
- Compatibility with LDAPUserGroupsFolder was buggy.
- InternalAuthentication search did not handle '*' searches.
- Group plugins can now delete groups!
- Doing a CPSDirectory search on members now work again.
- Searching in roles now work again.
- Role oplugins are no longer required to take care of inheritance
  themselves. This is probably inefficient, but makes for neater code.
New internal features:
~~~~~~~~~~~~~~~~~~~~~~
-

*******************************************
** PluggableUserFolder V2.3.1 [R1 build 2004/02/08-07:38 by fermigier]

ZODB Requires:
~~~~~~~~~~~~~~
-
New features:
~~~~~~~~~~~~~
- CookieAuthentication can now be prevented from sending the password as a
  cookie. This prevents both the password being sent every request, as well
  as it's storage as a cookie on the client. Doing this is not compatible with
  ZEO, however, so it is only invoked when "ZEO Combatibility" is unchecked.
  
Bug fixes:
~~~~~~~~~~
- The clever Acquisition wrapping of LDAP users did not work. This prevented
  LDAP users from getting roles from groups.

New internal features:
~~~~~~~~~~~~~~~~~~~~~~
- The wrapping of the user in the user folder is now done by the user folder,
  and not by the plugin.

*******************************************
** PluggableUserFolder V2.3.0 [R1 build 2004-01/06-15:04 by anguenot]

Bug fixes:
~~~~~~~~~~
- CMFPatch wasn't checking nicely the CPSCore patch of CPS3
- Working with CPS3 

New internal features:
~~~~~~~~~~~~~~~~~~~~~~
- Definition of a new method for CPS3 : mergedLocalRolesWithPath.
*******************************************
** PluggableUserFolder V2.2.1 [R1 build 2003/11/27-22:56 by fermigier]

Bug fixes:
~~~~~~~~~~
- InternalAuthentication.py: Fix bug found by unit test: add
  acquisition wrapper to user returned by getUser().
- PluggableUserFolder.py: Fixed a serious bug that made
  SimpleIdentification fail unless it was first in line.
- SimpleGroupRoles.py: If the role attrubute was set to None, this
  plugin failed. Now it handles any kind of "emptyness", like None,
  '', or {} equally.
- InternalAuthentication.py: getUsers must also wrap the users.


*******************************************
** PluggableUserFolder V2.2.0 [R1 build 2003/11/06-17:35 by regebro]

New features:
~~~~~~~~~~~~~
- Interface change: Added 'getLocalGroups' to IGroupPlugin to
  get a list of groups that are active on the object.

- Interface change:  Made 'object' a necessary parameter for
  getUsersWithRoles on IRolePlugin.

Bug fixes:
~~~~~~~~~~
- SimpleGroupRoles has some bugs in the getUsersWithRoles method.

- PluggableUser now adds the 'user:' prefix in the right
  places to be compatible with CMF/CPS.

- mergedLocalRoles when called with withgroups=1 will now no longer
  expand groups into users, but add the Groups to the result, as CPS
  expects.

*******************************************
** PluggableUserFolder V2.1.1 [R1 build 2003/11/05-18:07 by regebro]

Bug fixes:
~~~~~~~~~~
- Fixed a spelling error

- SimpleGroupsRoles has a bug when calling AcquiredGroups.

- getGroupsForUser returned a list. Some CMF/CPS code assumed it
  to be a tuple, so I changed that.

New internal features:
~~~~~~~~~~~~~~~~~~~~~~
- The magic _v_acl_users is no longer used, instead, Acquisition is
  used to find the userfolder. This requires all plugins to make sure
  that the user is properly acquisition wrapped before returning it.

- Changed the PluggableUserWrapper from a gettattr wrapper to an
  acquisition wrapper.

*******************************************
** PluggableUserFolder V2.1.0 [R1 build 2003-10/07-16:08 by regebro]

New features:
~~~~~~~~~~~~~
- The group support API has been generalized to accomodate multiple group
  support implementations. mergedLocalRoles() should now be imported from
  Products.CMFCore.utils and _getAllowedRolesAndUsers() and
  _allowedRolesAndUsers() should now be imported from Products.CPSCore.utils.

Bug fixes:
~~~~~~~~~~
- A bug that appeared with LDAPLogin when you log in with a non-LDAP user
  and has LDAPLogin first in the path fixed.
- A bug in mergedLocalRoles() when there was no roles plugins solved.

*******************************************
** PluggableUserFolder V2.0.0 [R1 build 2003-09/15-16:30 by regebro]

ZODB Requires:
~~~~~~~~~~~~~~
- Having NuxUserGroups / UserFolderWithGroups installed together
  with PluggableUserFolder is no longer supported.

New features:
~~~~~~~~~~~~~
- Full group plugins support.
- A SimpleGroups plugin that works as most Zope groups.
- CPS support for Simple Groups, giving PluggableUserFolder equal CPS
  functionality as UserFolderWithGroups

Bug fixes:
~~~~~~~~~~
- Fix copyright attribution

New internal features:
~~~~~~~~~~~~~~~~~~~~~~
- All modules now take their logging imports from PluggableUserFolder.
  If you set the environment variable ZOPE_PLUGGABLE_LOGGING to OFF it
  will in turn replace the LOG() method with a method of it's own that
  simply passes on everything, so no logging happens.
  This way, you can use PluggableUserFolder and have the log level
  set to debug without PluggableUserFolder drowning out your DEBUG
  messages.
- A new object PluggableUserWrapper is created. This is used when you want
  to wrap an existing UserFolder that uses it's own user classes, like
  LDAPUserFolder. 
*******************************************
** PluggableUserFolder V1.4.1 [R1 build 2003-08/28-13:03 by regebro]

*******************************************
** PluggableUserFolder V1.4.0 [R1 build 2003-08/28-12:42 by regebro]

New features:
~~~~~~~~~~~~~
- A new plugin LDAP Login, will authenticate users over LDAP,
  but not list users.

Bug fixes:
~~~~~~~~~~
- Deleting users called read only plugins.
*******************************************
** PluggableUserFolder V1.3.1 [R1 build 2003-08/21-10:42 by regebro]

Bug fixes:
~~~~~~~~~~
- Works better with CPS2's assumption of group support.
*******************************************
** PluggableUserFolder V1.3.0 [R1 build 2003-07/03-13:55 by regebro]

New features:
~~~~~~~~~~~~~
- You can now set and ID when creating LDAP plugins, to have several separate
  LDAP plugins.

*******************************************
** PluggableUserFolder V1.2.0 [R1 build 2003-06/13-14:21 by regebro]

New features:
~~~~~~~~~~~~~
- Support for ordering plugins

*******************************************
** PluggableUserFolder V1.1.0 [R1 build 2003-06/13-12:19 by regebro]

New features:
~~~~~~~~~~~~~
- Added support for Cookie Crumbler.

*******************************************
** PluggableUserFolder V1.1.0 [R1 build 2003-06/13-12:15 by regebro]

