GRUF is a convenient tool to manage groups of users within Zope.
It works as a frontend between a Zope application relying on a UserFolder and
a set of two regular UserFolders : one will store the users and the other one
will store the groups.
It has a whole bunch of cool features, especially :
- It doesn't patch anything in Zope ;
- It integrates smoothly without the need of any additional form (some are
provided but it's only for convenience) ;
- It doesn't store users by itself but delegates that job to another User
Folder. So, it works with virtually ANY Zope UserFolder in there ! (especially
standard acl_users but also LDAPUserFolder, SimpleUserFolder, ...) ;
- It allows groups and users to be stored in a separated backend (eg. groups in ZODB and users in LDAP, ...);
- It provides clean management screens (including user and groups editing interfaces) ;
- It provides security auditing tools ;
- It's compatible with regular Zope UserFolder API ;
- Groups are seen as regular Zope users in applications that doesn't include
groups support. Thus, you don't have to rewrite anything to gain benefit from
GRUF's groups !
GRUF has been designed by the Ingeniweb team.
And, of course, it's Open-Source (GPL licence).
GroupUserFolder is a kind of user folder that provides a special kind of
user management.
Some users are "flagged" as GROUP and then normal users will be
able to belong to one or
serveral groups.
Group and "normal" User management is distinct. Here's a typical
GroupUserFolder hierarchy::
- acl_users (GroupUserFolder)
|
|-- Users (GroupUserFolder-related class)
| |
| |-- acl_users (UserFolder or derived class)
|
|-- Groups (GroupUserFolder-related class)
| |
| |-- acl_users (UserFolder or derived class)
. .
. .
. .
So, INSIDE the GroupUserFolder (or GRUF), there are 2 acl_users :
- The one in the 'Users' object manages real users
- The one in the 'Groups' object manages groups
The two acl_users are completely independants. They can even be of different
kinds.
For example, a Zope UserFolder for Groups management and an LDAPUserFolder
for Users management.
Inside the "Users" acl_users, groups are seen as ROLES (that's
what we call "groles") so that
roles can be assigned to users using the same storage as regular users. Groups
are prefixed
by "group_" so that they could be easily recognized within roles.
Then, on the top GroupUserFolder, groups and roles both are seen as users,
and users have their
normal behaviour (ie. "groles" are not shown), except that users
affected to one or several groups
have their roles extended with the roles affected to the groups they belong
to.
Just for information : one user can belong to zero, one or more groups.
One group can have zero, one or more users affected.
GRUF is shipped as a tarball for Zope. See The Collective Project for more information.
And don't forget that even if GRUF is hosted by a Plone-related project, GRUF independent from Plone !
Official releases
Releases are now hosted by SourceForge. The latest release can always be found here.
- 1.21 (2003-07-10): Fix in LDAPUserFolder attributes retreiving and cosmetic fixes on ZMI
- 1.2 (2003-07-10): Major ZMI enhancing and GRUF API improvements
- 1.1 (2003-07-02): Includes major security fixes, an useful audit tab, and two "groupship" tools for Plone
- 1.0RC1 (2003-05-14): Code cleaning, better documentation and UI (and Plone skins) improves
- 0.2 (2003-03-31): Fixed user acquisition trick (no more hotfixing), minor API update to comply with LDAPUF and SimpleUF
- 0.1 (2002-11-26): First attempt to show that this product can work !
CVS
You can checkout the CVS anonymously with the following commands:
cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/collective login
cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/collective co GroupUserFolder
You can browse CVS at Sourceforge.
Here comes a few screenshots of GRUF administration interface.

The way GRUF shows-up in the ZMI

The way GRUF shows-up in the ZMI (continued)
You can see the two regular User Folder objects within GRUF's Groups and Users containers.
Those user folder can be replaced by any Zope security API-compying User Folder. Wow !

A users, groups and roles overview

The groups management interface

The users management interface

A security audit results page
Here are some links of interest regarding GRUF or other assorted tools.
GRUF has been developped at Ingeniweb's labs.
It's actively maintained by Pierre-Julien Grizel.
Some contributors then joined the project to add cool features for Plone. Thanks, especially,
to J. Cameroun Cooper, Brent Hendricks and Alan Runyan for their help and support.