3 * Fix #6984: Now GroupData verifies if it is related to GRUF group or PlonePAS
14 * Update methods to provide protection against XSS attacks via GET requests
19 * Fix a bug in group removing in another group.
24 * Fix _getMemberIds for LDAPUserFolder 2.7 when groups are stored in LDAPUF
27 * Got rid of zLOG in favor of logging.
31 * Fix a bug with LDAPUserFolder where another UserFolder was returned when LUF
32 was requested [jvloothuis]
35 * Removed refresh.txt. You should add this locally if you want to use it.
38 * getUsers: efficiency improvement: anti-double user inclusion is done by
39 checking key presence in a dict instead of looking up name in a list
42 * Fix searchUsersByAttribute returning twice the same user id when a second
48 * Plone 2.1 service release
52 * Changed getLocalRolesForDisplay to check for 'Manage properties' instead of
53 'Access contents information'. This is still not perfect but at least
54 Anonymous can no longer get at local roles information this way.
55 Fixes http://dev.plone.org/plone/ticket/5492
58 * Remove some noise log message and the product name parameter from ToolInit.
61 * Forces exact match with LDAP on user search
65 * By default, uses title instead of meta_type in the source management
68 * It's now possible to search very quickly users from a group
69 in LDAP; long-awaited improvement! [pjgrizel]
71 * Correct some wrong security settings.
74 * Fix some stupid failing tests so finally all tests pass again.
77 * Fix encoding warning in GroupUserFolder.py
80 * Made the GroupDataTool call notifyModified() on members who are
81 added or removed from a group
86 * Dynamically fixed the remaining bug in folder_localrole_form.
88 * Now the users tab in ZMI allow you to search a user (useful w/ LDAP)
90 * Fixed a bug in Plone 2.0 UI when searching a large set of users
92 * Added a 'wizard' tab to help in managing LDAP sources.
94 * Fixed getProperty in GroupDataTool not to acquire properties.
99 * Added an 'enable/disable' feature on the sources. Now, you can entierly
100 disable a users source without actually removing it. Very useful for
103 * Removed an optimization when user is None in authenticate(), so
104 than you can use GRUF with CASUserFolder (thanks to Alexandre
105 Sauv?mr.lex@free.fr>)
107 * Fixed 1235351 (possible infinite recursion in an audit method)
109 * Fixed [ 1243323 ] GRUF: bug in createGrouparea() in GroupsTool.py
113 * Fixed unit tests. Now the unit tests are working with the latest ZTC
119 * Fixed a missing import in GroupsTool.py (http://plone.org/collector/4209)
122 * Fixed a nested groups issue with LDAPUserFolder. This is not a widely
123 used schema with ldap anyway.
126 * Fixed LDAPUserFolderAdapter's search_by_dn bug: search by _login_attr
130 * _getLocalRolesForDisplay was marking users as groups for groups that had
131 the same as users (http://plone.org/collector/3711). Made unit tests run
132 even if LDAPUserFolder is not installed.
141 * Now your user sources (especially LUF) can have a 'portait' property which
142 will be used as your user's portrait. This works only in 'preview.txt'-mode.
144 * You can put a 'notifyGroupAreaCreated' in your 'groups' folder as you would
145 be able to put a 'notifyMemberAreaCreated' in your 'members' folder.
146 So you can execute some code at group area creation. Thanks to F. Carlier !
148 * Added a helper table on the sources tab to help managing LUF group mappings
150 * Fixed a bug in Zope 2.7 preventing the zope quickstart page to show up.
151 A hasUsers() method was missing from GRUF's API.
153 * Fixed a bug in ZMI which prevented LUF cached users to be individually
159 * _doChangeUser and _doChangeGroup lost existing groups if the groups argument
160 was omitted. Fixed these and the Zope 2.5-style APIs accordingly.
163 * Updated API to have a better conformance to the original Zope API.
164 Thanks to Stefan H Holek for this clever advice.
166 * Uncommented cache clearing code in _doChangeUser as it appears to be required.
169 * Added a Plone 2.0 optional patch to improve LDAP and groups management.
170 It's basically a preview of what will be done in Plone 2.1 for users managment.
171 For example, now, you can assign local roles to users in your LDAP directory,
172 EVEN if they're not in the cache in folder_localrole_form.
173 Other "preview" features will come later. Please read README and PloneFeaturePreview.py
174 files for more explanations on these.
176 * Made manage_GRUFUsers page a little faster with LDAP by preventing users count.
178 * Fixed [ 1051387 ] addGroup fails if type 'Folder' is not implicitly addable.
180 * Fixed other minor or cosmetic bugs
182 * Group mapping is automatically created by LDAPGroupFolder when you create a group
187 * Fixed a bug in getProperty() - it always returned None !
189 * Fixed a bug which caused AUTHENTICATED_USER source id to be invalid
193 * Group-to-role mapping now works for LDAPGroupFolder
195 * Debug mode now allows broken source not to be checken against
197 * Fixed getUser() bug with remote_user_mode (getUser(None) now returns None).
198 Thanks to Marco Bizzari.
202 * Minor interface changes
204 * Documentation update
210 * Better support for Plone UI. PLEASE USE PLONE2's pjgrizel-gruf3-branch IN SVN!
211 See README-Plone for further explanation
217 * FAR BETTER LDAP SUPPORT (see README-LDAP.stx)
221 * Reindexing new GroupSpace objects
224 * Speedup improvements by Heldge Tesdal
226 * Fixed ZMI overview refreshing bug
228 * GroupsTool method createGrouparea now calls the GroupSpace
229 method setInitialGroup with the group that it is created for.
230 In case this method does not exists, the default behaviour
231 is employed. This is done so that the GroupSpace can decide on its
232 own what the policy should be regarding the group that it is
233 initially created for.
234 See the implementation of GrufSpaces for an example of how this
235 can be used in order to give the initial group the role GroupMember.
238 * Removed GroupSpace code, which can now be found in
239 http://ingeniweb.sourceforge.net/Products/GrufSpaces
244 * Improved performance on LDAP Directories
246 * Fixed various Plone UI bugs (password & roles changing)
248 * Fixed "AttributeError: URL1" bug in ZMI
252 * Added GroupSpace object for Plone websites (see website/GroupSpaceDesign_xx.stx)
254 * Fixed __getattr__-related bug
256 * Fixed inituser-related bug
258 * Cosmetic fixes and minor bugs
262 * Include support for multi-sources
266 * Pass __getitem__ access onto user objects (XUF compatibility)
268 * Allow ZMI configuration of group workspaces (CMF Tool)
270 * Added security declarations to CMF tools
272 * new getPureUserNames() and getPurseUsers() methods to get user
273 objects without group objects
277 * Many performance improvements (tree and audit views)
279 * Fixed a recursion pb. on the left pane tree (!)
281 * Added a batch view for "overview" page when there's more than
282 100 users registered in the system
286 * GRUF NOW SUPPORTS NESTED GROUPS - Transparently, of course.
288 * Updated website information & screenshots
290 * Major ZMI improving, including everywhere-to-everywhere links,
291 edition of a single user or group, and minor cosmetic fixes
293 * The tree view in ZMI now show groups and user (if there's no more
294 than 50, to avoid having server outage)
296 * Improved performance
300 * Fixed a bug in password generation algorythm with non-iso Python installs
302 * Fixed a minor bug in group acquisition stack (it apparently had no side-effect)
308 * Fixed the bug that prevented LDAP-defined attributes to be acquired by GRUFUser.
309 This bug showed-up with LDAPUserFolder.
315 * Add a management tab on GRUF to allow users and groups to be created
316 at this top-level management interface.
320 * Security improvements
322 * Added an 'audit' tab to check what's going on
324 * GroupsTool and GroupDataTool added for Plone
326 * Improved Plone skins
328 * Improved Plone installation
330 * GRUF Users now 'inherit' from their underlying user object
336 * Documentation improving
338 * API improving (added a few utility methods)
340 * UI improving (see skins changes)
342 * getId() bug fixing (see ChangeLog)
346 * Users are now acquired correctly, which prevents you from hotfixing anything !!! :-)
348 * This fixed Zope 2.5 w/ Plone bug
350 * Better log reporting
352 * Validated with LDAPUserFolder and SimpleUserFolder
356 * User creation is now supported
358 * Fixed a bug (with an axe) that prevented Zope module Owner.py code to work.
359 The Owner.py calls aq_inner and aq_parent methods on a User object to get its
360 security context. So it found the underlying User object instead of the GRUF
361 itself. So we fixed this by setting dummy UserFolder-context methods on the
362 GRUFUser objects. This is ugly and should be fixed later by acquiring the
363 underlying User object from a better context.
365 * Fixed getUserName in GRUFUser that returned group names without the "group"
368 * Fixed various "cosmetic" bugs
370 * Documented the whole stuff
374 Started to work on this wonderful product.