Compat zope-2.12 : résolution des problèmes avec les interfaces.
[GroupUserFolder.git] / README.txt
1 GroupUserFolder
2
3
4 (c)2002-03-04 Ingeniweb
5
6
7
8 (This is a structured-text formated file)
9
10
11
12 ABSTRACT
13
14 GroupUserFolder is a kind of user folder that provides a special kind of user management.
15 Some users are "flagged" as GROUP and then normal users will be able to belong to one or
16 serveral groups.
17
18 See http://ingeniweb.sourceforge.net/Products/GroupUserFolder for detailed information.
19
20 DOWNLOAD
21
22 See http://sourceforge.net/project/showfiles.php?group_id=55262&package_id=81576
23
24
25 STRUCTURE
26
27 Group and "normal" User management is distinct. Here's a typical GroupUserFolder hierarchy::
28
29 - acl_users (GroupUserFolder)
30 |
31 |-- Users (GroupUserFolder-related class)
32 | |
33 | |-- acl_users (UserFolder or derived class)
34 |
35 |-- Groups (GroupUserFolder-related class)
36 | |
37 | |-- acl_users (UserFolder or derived class)
38
39
40 So, INSIDE the GroupUserFolder (or GRUF), there are 2 acl_users :
41
42 - The one in the 'Users' object manages real users
43
44 - The one in the 'Groups' object manages groups
45
46 The two acl_users are completely independants. They can even be of different kinds.
47 For example, a Zope UserFolder for Groups management and an LDAPUserFolder for Users management.
48
49 Inside the "Users" acl_users, groups are seen as ROLES (that's what we call "groles") so that
50 roles can be assigned to users using the same storage as regular users. Groups are prefixed
51 by "group " so that they could be easily recognized within roles.
52
53 Then, on the top GroupUserFolder, groups and roles both are seen as users, and users have their
54 normal behaviour (ie. "groles" are not shown), except that users affected to one or several groups
55 have their roles extended with the roles affected to the groups they belong to.
56
57
58 Just for information : one user can belong to zero, one or more groups.
59 One group can have zero, one or more users affected.
60
61 [2003-05-10] There's currently no way to get a list of all users belonging to a particular group.
62
63
64 GROUPS BEHAVIOUR
65
66
67 ...will be documented soon...
68
69
70 GRUF AND PLONE
71
72 See the dedicated README-Plone file.
73
74
75 GRUF AND SimpleUserFolder
76
77 You might think there is a bug using GRUF with SimpleUserFolder (but there's not): if you create
78 a SimpleUserFolder within a GRUF a try to see it from the ZMI, you will get an InfiniteRecursionError.
79
80 That's because SimpleUserFolder tries to fetch a getUserNames() method and finds GRUF's one, which
81 tries to call SimpleUserFolder's one which tries to fetch a getUserNames() method and finds GRUF's one,
82 which tries to call SimpleUserFolder's one which tries to fetch a getUserNames() method and finds GRUF's one,
83 which tries to call SimpleUserFolder's one which tries to fetch a getUserNames() method and finds GRUF's
84 one, which tries to call SimpleUserFolder's one which tries to fetch a getUserNames() method and finds
85 GRUF's one, which tries to call SimpleUserFolder's one which tries to fetch a getUserNames() method and
86 finds GRUF's one, which tries to call SimpleUserFolder's one which tries (see what I mean ?)
87
88 To avoid this, just create a new_getUserNames() object (according to SimpleUserFolder specification) in the folder
89 where you put your SimpleUserFolder in (ie. one of 'Users' or 'Groups' folders).
90
91 GRUF also implies that the SimpleUserFolder methods you create are defined in the 'Users' or 'Groups' folder.
92 If you define them above in the ZODB hierarchy, they will never be acquired and GRUF ones will be catched
93 instead, causing infinite recursions.
94
95
96 GRUF AND LDAPUserFolder
97
98 [NEW IN 3.0 VERSION: PLEASE READ README-LDAP.stx INSTEAD]
99
100 BUGS
101
102 There is a bug using GRUF with Zope 2.5 and Plone 1.0Beta3 : when trying to join the plone site
103 as a new user, there is a Zope error "Unable to unpickle object"... I don't know how to fix that now.
104 With Zope 2.6 there is no such bug.
105
106 DEBUG
107
108 If you put a file named 'debug.txt' in your GRUF's product directory, it will switch the product in
109 debug mode next time you restart Zope. This is the common behaviour for all Ingeniweb products.
110 Debug mode is normally just a way of printing more things on the console. But, with GRUF, debug
111 mode (since 3.1 version) enables a basic user source integrity check. If you've got a broken user
112 folder product on your hard drive that you use as a source with GRUF, it will allow you to unlock
113 the situation.
114
115 LICENCE
116
117 GRUF > 2 is released under the terms of the Zope Public Licence (ZPL). Specific arrangements can be found for closed-source projects : please contact us.
118