--- /dev/null
+v3.55.1 - 2007-11-08
+
+ * Fix #6984: Now GroupData verifies if it is related to GRUF group or PlonePAS
+ group.
+ [encolpe]
+
+v3.54.4 - 2007-04-29
+
+ * Death to tabindexes!
+ [limi]
+
+v3.54.3 - 2007-04-16
+
+ * Update methods to provide protection against XSS attacks via GET requests
+ [bloodbare, alecm]
+
+v3.54.2 - 2007-02-06
+
+ * Fix a bug in group removing in another group.
+ [encolpe]
+
+v3.54.1 - 2006-12-15
+
+ * Fix _getMemberIds for LDAPUserFolder 2.7 when groups are stored in LDAPUF
+ [encolpe]
+
+ * Got rid of zLOG in favor of logging.
+ [stefan]
+
+v3.54 - 2006-09-19
+ * Fix a bug with LDAPUserFolder where another UserFolder was returned when LUF
+ was requested [jvloothuis]
+
+v3.53 - 2006-09-08
+ * Removed refresh.txt. You should add this locally if you want to use it.
+ [hannosch]
+
+ * getUsers: efficiency improvement: anti-double user inclusion is done by
+ checking key presence in a dict instead of looking up name in a list
+ [b_mathieu]
+
+ * Fix searchUsersByAttribute returning twice the same user id when a second
+ source is present
+ [b_mathieu]
+
+v3.52 - 2006-05-30
+
+ * Plone 2.1 service release
+
+v3.51 - 2006-05-15
+
+ * Changed getLocalRolesForDisplay to check for 'Manage properties' instead of
+ 'Access contents information'. This is still not perfect but at least
+ Anonymous can no longer get at local roles information this way.
+ Fixes http://dev.plone.org/plone/ticket/5492
+ [stefan]
+
+ * Remove some noise log message and the product name parameter from ToolInit.
+ [hannosch]
+
+ * Forces exact match with LDAP on user search
+
+v3.5 - 2005-12-20
+
+ * By default, uses title instead of meta_type in the source management
+ pages. [pjgrizel]
+
+ * It's now possible to search very quickly users from a group
+ in LDAP; long-awaited improvement! [pjgrizel]
+
+ * Correct some wrong security settings.
+ [hannosch]
+
+ * Fix some stupid failing tests so finally all tests pass again.
+ [hannosch]
+
+ * Fix encoding warning in GroupUserFolder.py
+ [encolpe]
+
+ * Made the GroupDataTool call notifyModified() on members who are
+ added or removed from a group
+ [bmh]
+
+v3.4 - 20050904
+
+ * Dynamically fixed the remaining bug in folder_localrole_form.
+
+ * Now the users tab in ZMI allow you to search a user (useful w/ LDAP)
+
+ * Fixed a bug in Plone 2.0 UI when searching a large set of users
+
+ * Added a 'wizard' tab to help in managing LDAP sources.
+
+ * Fixed getProperty in GroupDataTool not to acquire properties.
+ [panjunyong]
+
+[v3.3 - 20050725]
+
+ * Added an 'enable/disable' feature on the sources. Now, you can entierly
+ disable a users source without actually removing it. Very useful for
+ testing purposes!
+
+ * Removed an optimization when user is None in authenticate(), so
+ than you can use GRUF with CASUserFolder (thanks to Alexandre
+ Sauv?mr.lex@free.fr>)
+
+ * Fixed 1235351 (possible infinite recursion in an audit method)
+
+ * Fixed [ 1243323 ] GRUF: bug in createGrouparea() in GroupsTool.py
+
+[v3.23 - 20050724]
+
+ * Fixed unit tests. Now the unit tests are working with the latest ZTC
+ version.
+ [tiran]
+
+[v3.22 - 20050706]
+
+ * Fixed a missing import in GroupsTool.py (http://plone.org/collector/4209)
+ [hannosch]
+
+ * Fixed a nested groups issue with LDAPUserFolder. This is not a widely
+ used schema with ldap anyway.
+ [pjgrizel]
+
+ * Fixed LDAPUserFolderAdapter's search_by_dn bug: search by _login_attr
+ but not _rdnattr
+ [panjunyong]
+
+ * _getLocalRolesForDisplay was marking users as groups for groups that had
+ the same as users (http://plone.org/collector/3711). Made unit tests run
+ even if LDAPUserFolder is not installed.
+ [alecm]
+
+[v3.2 - 20050307]
+
+ Service release.
+
+[v3.2RC2 - 20050305]
+
+ * Now your user sources (especially LUF) can have a 'portait' property which
+ will be used as your user's portrait. This works only in 'preview.txt'-mode.
+
+ * You can put a 'notifyGroupAreaCreated' in your 'groups' folder as you would
+ be able to put a 'notifyMemberAreaCreated' in your 'members' folder.
+ So you can execute some code at group area creation. Thanks to F. Carlier !
+
+ * Added a helper table on the sources tab to help managing LUF group mappings
+
+ * Fixed a bug in Zope 2.7 preventing the zope quickstart page to show up.
+ A hasUsers() method was missing from GRUF's API.
+
+ * Fixed a bug in ZMI which prevented LUF cached users to be individually
+ managed by GRUF.
+
+
+[v3.2RC1 - 20041215]
+
+ * _doChangeUser and _doChangeGroup lost existing groups if the groups argument
+ was omitted. Fixed these and the Zope 2.5-style APIs accordingly.
+ [stefan]
+
+ * Updated API to have a better conformance to the original Zope API.
+ Thanks to Stefan H Holek for this clever advice.
+
+ * Uncommented cache clearing code in _doChangeUser as it appears to be required.
+ [stefan]
+
+ * Added a Plone 2.0 optional patch to improve LDAP and groups management.
+ It's basically a preview of what will be done in Plone 2.1 for users managment.
+ For example, now, you can assign local roles to users in your LDAP directory,
+ EVEN if they're not in the cache in folder_localrole_form.
+ Other "preview" features will come later. Please read README and PloneFeaturePreview.py
+ files for more explanations on these.
+
+ * Made manage_GRUFUsers page a little faster with LDAP by preventing users count.
+
+ * Fixed [ 1051387 ] addGroup fails if type 'Folder' is not implicitly addable.
+
+ * Fixed other minor or cosmetic bugs
+
+ * Group mapping is automatically created by LDAPGroupFolder when you create a group
+ with its interface.
+
+v3_1_1 - 20040906
+
+ * Fixed a bug in getProperty() - it always returned None !
+
+ * Fixed a bug which caused AUTHENTICATED_USER source id to be invalid
+
+v3_1 - 20040831
+
+ * Group-to-role mapping now works for LDAPGroupFolder
+
+ * Debug mode now allows broken source not to be checken against
+
+ * Fixed getUser() bug with remote_user_mode (getUser(None) now returns None).
+ Thanks to Marco Bizzari.
+
+v3_0 - 20040623
+
+ * Minor interface changes
+
+ * Documentation update
+
+v3_0Beta2
+
+ * Various bug fixes
+
+ * Better support for Plone UI. PLEASE USE PLONE2's pjgrizel-gruf3-branch IN SVN!
+ See README-Plone for further explanation
+
+v3_0Beta1
+
+ * API REFACTORING
+
+ * FAR BETTER LDAP SUPPORT (see README-LDAP.stx)
+
+v2_0 - 20040302
+
+ * Reindexing new GroupSpace objects
+ 2004/03/10 Maik Rder
+
+ * Speedup improvements by Heldge Tesdal
+
+ * Fixed ZMI overview refreshing bug
+
+ * GroupsTool method createGrouparea now calls the GroupSpace
+ method setInitialGroup with the group that it is created for.
+ In case this method does not exists, the default behaviour
+ is employed. This is done so that the GroupSpace can decide on its
+ own what the policy should be regarding the group that it is
+ initially created for.
+ See the implementation of GrufSpaces for an example of how this
+ can be used in order to give the initial group the role GroupMember.
+ 2004/02/25 Maik Rder
+
+ * Removed GroupSpace code, which can now be found in
+ http://ingeniweb.sourceforge.net/Products/GrufSpaces
+ 2004/02/25 Maik Rder
+
+v2_0Beta3 - 20040224
+
+ * Improved performance on LDAP Directories
+
+ * Fixed various Plone UI bugs (password & roles changing)
+
+ * Fixed "AttributeError: URL1" bug in ZMI
+
+v2_0Beta2 - 20031222
+
+ * Added GroupSpace object for Plone websites (see website/GroupSpaceDesign_xx.stx)
+
+ * Fixed __getattr__-related bug
+
+ * Fixed inituser-related bug
+
+ * Cosmetic fixes and minor bugs
+
+v2_0Beta1 - 20031026
+
+ * Include support for multi-sources
+
+v1_32 - 20030923
+
+ * Pass __getitem__ access onto user objects (XUF compatibility)
+
+ * Allow ZMI configuration of group workspaces (CMF Tool)
+
+ * Added security declarations to CMF tools
+
+ * new getPureUserNames() and getPurseUsers() methods to get user
+ objects without group objects
+
+v1_31 - 20030731
+
+ * Many performance improvements (tree and audit views)
+
+ * Fixed a recursion pb. on the left pane tree (!)
+
+ * Added a batch view for "overview" page when there's more than
+ 100 users registered in the system
+
+v1_3 - 20030723
+
+ * GRUF NOW SUPPORTS NESTED GROUPS - Transparently, of course.
+
+ * Updated website information & screenshots
+
+ * Major ZMI improving, including everywhere-to-everywhere links,
+ edition of a single user or group, and minor cosmetic fixes
+
+ * The tree view in ZMI now show groups and user (if there's no more
+ than 50, to avoid having server outage)
+
+ * Improved performance
+
+ * Improved test plan
+
+ * Fixed a bug in password generation algorythm with non-iso Python installs
+
+ * Fixed a minor bug in group acquisition stack (it apparently had no side-effect)
+
+v1_21 - 20030710
+
+ * ZMI cosmetic fixes
+
+ * Fixed the bug that prevented LDAP-defined attributes to be acquired by GRUFUser.
+ This bug showed-up with LDAPUserFolder.
+
+v1_2 - 20030709
+
+ * HTML documentation
+
+ * Add a management tab on GRUF to allow users and groups to be created
+ at this top-level management interface.
+
+v1_1 - 20030702
+
+ * Security improvements
+
+ * Added an 'audit' tab to check what's going on
+
+ * GroupsTool and GroupDataTool added for Plone
+
+ * Improved Plone skins
+
+ * Improved Plone installation
+
+ * GRUF Users now 'inherit' from their underlying user object
+
+v1_0RC1 - 20030514
+
+ * Code cleaning
+
+ * Documentation improving
+
+ * API improving (added a few utility methods)
+
+ * UI improving (see skins changes)
+
+ * getId() bug fixing (see ChangeLog)
+
+v0_2 - 20030331
+
+ * Users are now acquired correctly, which prevents you from hotfixing anything !!! :-)
+
+ * This fixed Zope 2.5 w/ Plone bug
+
+ * Better log reporting
+
+ * Validated with LDAPUserFolder and SimpleUserFolder
+
+v0_1 - 20021126
+
+ * User creation is now supported
+
+ * Fixed a bug (with an axe) that prevented Zope module Owner.py code to work.
+ The Owner.py calls aq_inner and aq_parent methods on a User object to get its
+ security context. So it found the underlying User object instead of the GRUF
+ itself. So we fixed this by setting dummy UserFolder-context methods on the
+ GRUFUser objects. This is ugly and should be fixed later by acquiring the
+ underlying User object from a better context.
+
+ * Fixed getUserName in GRUFUser that returned group names without the "group"
+ prefix.
+
+ * Fixed various "cosmetic" bugs
+
+ * Documented the whole stuff
+
+v0_0 - 20021126
+
+ Started to work on this wonderful product.
+