File: index.html

package info (click to toggle)
zope-groupuserfolder 3.1.1-3
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 1,416 kB
  • ctags: 1,037
  • sloc: python: 6,755; sh: 1,365; makefile: 147
file content (437 lines) | stat: -rw-r--r-- 22,349 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>GRUF - GroupUserFolder</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <style type="text/css">
      <!--
      body {
      font-family: Verdana, Arial, Helvetica, sans-serif;
      color: #003366;
      background-color: #FFFFFF;
      font-size: 10px;
      }
      p {
      font-size: 10px;
      }
      h1 {
      font-style: normal;
      font-variant: normal;
      color: #336699;
      text-align: center;
      font-family: Verdana, Arial, Helvetica, sans-serif;
      font-weight: bold;
      }
      -->
    </style>
    <style type="text/css">
      <!--
      h2 {
      color: #336699;
      font-size: 12px;
      border-bottom-width: 1px;
      border-bottom-style: solid;
      border-bottom-color: #336699;
      }
      -->
    </style>
    <style type="text/css">
      <!--
      .boxcontent {
      border: 1px solid #336699;
      padding: 10px;
      background-color: #DDDDFF;
      }
      -->
    </style>
    <style type="text/css">
      <!--
      .boxtab {
      background-color: #9999FF;
      border: 1px solid #336699;
      padding: 5px 15px;
      margin-left: 5px;
      font-size: 12px;
      font-weight: bold;
      }
      -->
    </style>
    <style type="text/css">
      <!--
      li {
      font-size: 10px;
      list-style-type: square;
      list-style-position: outside;
      }
      ul {
      }
      -->
    </style>
  </head>

  <body>
    <div align="center">
      <table width="640">
          <tr>
            <td>
              <h1><img src="GRUFLogo.png" alt="" align="middle">&nbsp;GRUF - GroupUserFolder</h1>
              <p align="center"><font size="+1">&#8250;&nbsp;A groups management tool for Zope&nbsp;&#8249;</font></p>

              <p align="center">
                <font size="-2">
                  <a href="#what">What's GRUF ?</a> 
                  |
                  <a href="#how">How does it work ?</a> 
                  |
                  <a href="#compat">Is it compatible with...</a> 
                  |
                  <a href="#download">Download</a> 
                  |
                  <a href="#screenshots">Screenshots</a> 
                  |
                  <a href="#faq">FAQ</a> 
                  |
                  <a href="#links">Links</a>
                  |
                  <a href="#contact">Contact</a>
                </font>
              </p>

              <a name="what"/>
              <p>&nbsp;</p>
              <span class="boxtab">What's GRUF ?</span>
              <div class="boxcontent">
                <p>GRUF is a convenient tool to manage groups of users within Zope.</p>
                <p>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.</p>
                <p>It has a whole bunch of cool features, especially :</p>
                <ul>
                  <li>It <b>doesn't patch anything</b> in Zope ;</li>
                  <li>It integrates smoothly without the need of any additional form (some are 
                    provided but it's only for convenience) ;</li>
                  <li>It doesn't store users by itself but delegates that job to another User 
                    Folder. So, it <b>works with virtually ANY Zope UserFolder</b> in there ! (especially 
                    standard acl_users but also LDAPUserFolder, SimpleUserFolder, ...) ;</li>
                  <li>It supports <b>groups nesting</b> (ie. groups can belong to other groups and 'inherit' their roles</li>
                  <li>It allows groups and users to be stored in a separated backend (eg. groups in ZODB and users in LDAP, ...);</li>
                  <li>It supports (since 2.0 version) <b>multiple user sources</b>, ie. you can have a bunch of users in LDAP plus
                    some users in a standard User Folder, and they all will be integrated to GRUF;</li>
                  <li>It provides <b>clean management screens</b> (including user and groups editing interfaces) ;</li>
                  <li>It provides <b>security auditing tools</b> ;</li>
                  <li>It's compatible with regular Zope UserFolder API ;</li>
                  <li>Groups are seen as regular Zope users in applications that doesn't include 
                    groups support. Thus, <b>you don't have to rewrite anything to gain benefit from 
                      GRUF's groups</b> !</li>
                </ul>
                
                <p>GRUF has been designed by the <a href="http://www.ingeniweb.com">Ingeniweb</a> team.</p>

                <p>And, of course, it's Open-Source (GPL licence for versions &lt; 2.0, ZPL licence otherwise). </p>
              </div>

              <a name="how"/>
              <p>&nbsp;</p>
              <span class="boxtab">How does-it work ?</span>
              <div class="boxcontent">
                <p> GroupUserFolder is a kind of user folder that provides a special kind of 
                  user management.
                  Some users are &quot;flagged&quot; as GROUP and then normal users will be 
                  able to belong to one or
                  serveral groups.</p>
                <p> Group and &quot;normal&quot; User management is distinct. Here's a typical 
                  GroupUserFolder hierarchy::</p>
                <pre>
     - acl_users (GroupUserFolder)
     |
     |-- Users (GroupUserFolder-related class)
     | |
     | |-- acl_users (UserFolder or derived class)
     |
     |-- Groups (GroupUserFolder-related class)
     | |
     | |-- acl_users (UserFolder or derived class)
     . .
     . .
     . .
                </pre>
                <p>
                  So, INSIDE the GroupUserFolder (or GRUF), there are 2 acl_users :</p>
                <ul>
                  <li> The one in the 'Users' object manages real users</li>
                  <li> The one in the 'Groups' object manages groups</li>
                </ul>
                <p> The two acl_users are completely independants. They can even be of different 
                  kinds.<br>
                  For example, a Zope UserFolder for Groups management and an LDAPUserFolder 
                  for Users management.</p>
                <p> Inside the &quot;Users&quot; acl_users, groups are seen as ROLES (that's 
                  what we call &quot;groles&quot;) so that 
                  roles can be assigned to users using the same storage as regular users. Groups 
                  are prefixed
                  by &quot;group_&quot; so that they could be easily recognized within roles.</p>
                <p> Then, on the top GroupUserFolder, groups and roles both are seen as users, 
                  and users have their
                  normal behaviour (ie. &quot;groles&quot; 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.</p>
                <p>
                  Just for information : one user can belong to zero, one or more groups.
                  One group can have zero, one or more users affected.</p>
              </div>

              <a name="compat"/>
              <p>&nbsp;</p>
              <span class="boxtab">Is it compatible with...</span>
              <div class="boxcontent">
                <ul>
                  <li><strong>CMF ?</strong> Yes.</li>
                  <li><strong>Plone ?</strong> Yes. There are even additional forms and tools for Zope to gain full benefit of group information.
                    But these are completely optional and Plone can work without. GRUF will be integrated to Plone 1.1</li>
                  <li><strong>Zope standalone ?</strong> Yes (Zope >= 2.5) and it's a major requirement for us. GRUF will always work
                    with existing Zope 2.x (> 2.5), without the need to add, patch, modify or do anything to make it work.</li>
                  <li><strong>My existing Zope application ?</strong> Yes, provided you do not use non-official security functions.
                    GRUF is completely transparent.</li>
                  <li><strong>LDAPUserFolder ?</strong> Yes, with groups beeing stored in LDAP database or not.<br />
                    Users and groups adding/editing <b>is</b> supported starting from GRUF 3.0Beta1 version. <br />
                        LDAPUF doesn't comply with standard Zope security API for this part so we had to monkeypatch it.<br />
                    LDAPUF >= version 2.4 Beta 3 is the best to use with GRUF (see GRUF source for details)<br />
              <strong>Please read the README-LDAP file</strong> provided in the "links" section of this document.</li>
                  <li><strong>ExUserFolder ?</strong> Yes, except for GRUF 1.3 version. GRUF 1.31 is reported to work again with XUF.</li>
                  <li><strong>SimpleUserFolder ?</strong> Yes.</li>
                  <li><strong>My coffee machine ?</strong> Not yet, but we're actively working on it&nbsp;!</li>
                </ul>
              </div>

              <a name="download"/>
              <p>&nbsp;</p>
              <span class="boxtab">Download</span>
              <div class="boxcontent">
                <p>
                  GRUF is shipped as a tarball for Zope. See <a href="http://sourceforge.net/projects/collective">The Collective Project</a> for more information.<br />
                  And don't forget that even if GRUF is hosted by a Plone-related project, <b>GRUF independent from Plone !</b></p>
                <h2>Upward / Backward compatibility</h2>
                <ol>
                    <p>
                      All GRUF versions are backward compatible, and then doesn't require you to do anything to <strong>upgrade</strong>.
                    </p>
                    <p>
                      All GRUF versions within the same major number are <b>upward compatible</b>, that is to say that you can replace your version
                      by a previous one without loosing your user data. This is false for versions having a different major number (O.x and 1.x for example).<br />
                      So, if you notice a bug in the newest version, you can always decide to get back in time ! :-)
                    </p>
                </ol>
                <h2>Official releases</h2>
                <ol>
                    <p>Releases are now hosted by SourceForge. The latest release can always be found <a href="http://sourceforge.net/project/showfiles.php?group_id=55262">here</a>.</p>
                    <ul>
                      <li><b>3.1.1</b> (2004-09-06): Minor bugfix release.</li>
                      <li><b>3.1</b> (2004-08-31): Better LDAP support, improved documentation.</li>
                      <li><b>3.0</b> (2004-06-23): Minor API changes, improved documentation.</li>
                      <li><b>3.0Beta2</b> (2004-06-15): Better search API, various bugfixes.</li>
                      <li><b>3.0Beta1</b> (2004-05-25): API refactoring, far better LDAP support, far better test case.</li>
                      <li><b>2.0</b> (2004-03-02): Plone2 bugfixes, minor bugfixes, performance increase by Helge Tesdal, moved GroupSpaces support to another product</li>
                      <li><b>2.0Beta3</b> (2004-02-24): Plone2 bugfixes, minor bugfixes, performance increase with LDAPUserFolder</li>
                      <li><b>2.0Beta2</b> (2003-12-22): GroupSpaces support, Plone2 support, cosmetic ZMI improvements, minor bugfixes</li>
                      <li><b>2.0Beta1</b> (2003-10-23): Supports multiple user sources, cosmetic ZMI improvements</li>
                      <li><b>1.32</b> (2003-09): Non-official utility release (Plone-related tools improvements)</li>
                      <li><b>1.31</b> (2003-07-29): Major speed improvements, cosmetic ZMI improvements</li>
                      <li><b>1.3</b> (2003-07-23): Implemented nested groups feature, major ZMI improvements</li>
                      <li><b>1.21</b> (2003-07-10): Fix in LDAPUserFolder attributes retreiving and cosmetic fixes on ZMI</li>
                      <li><b>1.2</b> (2003-07-10): Major ZMI enhancing and GRUF API improvements</li>
                      <li><b>1.1</b> (2003-07-02): Includes major security fixes, an useful audit tab, and two "groupship" tools for Plone</li>
                      <li><b>1.0RC1</b> (2003-05-14): Code cleaning, better documentation and UI (and Plone skins) improves</li>
                      <li><b>0.2</b> (2003-03-31): Fixed user acquisition trick (no more hotfixing), minor API update to comply with LDAPUF and SimpleUF</li>
                      <li><b>0.1</b> (2002-11-26): First attempt to show that this product can work !</li>
                    </ul>
                </ol>
                <h2>CVS</h2>
                <ol>
                    <p>
                      You can checkout the CVS anonymously with the following commands:<br />
                    <pre>
cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/collective login 
cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/collective co GroupUserFolder 
                    </pre>
                    You can browse CVS at <a href="http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/collective/GroupUserFolder">Sourceforge</a>.
                  </p>
                </ol>
              </div>

              <a name="screenshots"/>
              <p>&nbsp;</p>
              <span class="boxtab">Screenshots</span>
              <div class="boxcontent">
                <p>
                  Here comes a few screenshots of GRUF administration interface. Click an image to enlarge.
                </p>
                <table width="100%">
                    <tr>
                      <td width="50%" align="center">
                        <a href="folder_contents.png">
                          <img src="folder_contents.png" height="150">
                        </a>
                        <br />
                        <i>The way GRUF shows-up in the ZMI</i>
                      </td>
                      <td align="center">
                        <a href="menu.png">
                          <img src="menu.png" height="150">
                        </a>
                        <br />
                        <i>The way GRUF shows-up in the ZMI (continued)<br />
                          You can now see users and groups defined within GRUF, and click them individually.</i>
                      </td>
                    </tr>
                    <tr>
                      <td align="center">
                        <a href="tab_overview.png">
                          <img height="150" src="tab_overview.png">
                        </a>
                        <br />
                        <i>A quick overview page with many users</i>
                      </td>
                      <td align="center">
                        <a href="tab_groups.png">
                          <img height="150" src="tab_groups.png">
                        </a>
                        <br />
                        <i>The groups management interface</i>
                      </td>
                    </tr>
                    <tr>
                      <td align="center">
                        <a href="tab_users.png">
                          <img height="150" src="tab_users.png">
                        </a>
                        <br />
                        <i>The users management interface</i>
                      </td>
                      <td align="center">
                        <a href="user_edit.png">
                          <img height="150" src="user_edit.png">
                        </a>
                        <br />
                        <i>Individual group edition</i>
                      </td>
                    </tr>
                    <tr>
                      <td align="center">
                        <a href="tab_audit.png">
                          <img height="150" src="tab_overview.png">
                        </a>
                        <br />
                        <i>A security audit results page</i>
                      </td>
                      <td align="center">
                        <a href="tab_sources.png">
                          <img height="150" src="tab_sources.png">
                        </a>
                        <br />
                        <i>The multiple sources view</i>
                      </td>
                    </tr>
                </table>
              </div>

              <a name="faq"/>
              <p>&nbsp;</p>
              <span class="boxtab">Frequently Asked Questions</span>
              <div class="boxcontent">
                <p>
                <ul>
                  <li>
                    <strong>Can I nest some GRUFs ?</strong><br />
                    Maybe... but what for ?
                  </li>
                  <li>
                    <strong>Does GRUF support nested groups ?</strong><br />
                    Nested groups in group-whithin-a-group feature. <br />
                    And, yes, GRUF supports it since 1.3 version.
                  </li>
                  <li>
                    <strong>Does GRUF support multiple user sources ?</strong><br />
                    Multiple user sources is a feature that would allow you to store users in several userfolders.
                    For example, you could have your regular admin users in a standard User Folder, your intranet
                    users in an LDAPUserFolder and your extranet users in an SQL-based user folder<br />
                    GRUF supports this from version 2.0Beta1.
                  </li>
                  <li>
                    <strong>Can I use GRUF outside Plone ?</strong><br />
                    Yes, yes, yes, yes and yes. This is a major design consideration for us.
                  </li>
                  <li>
                    <strong>Is GRUF stable ?</strong><br />
                    It's used in a production environment for several major websites. Furthermore, it's qualified to be included
                    in Plone 1.1. It's considered reliable enough - except for "Beta" versions, of course.
                  </li>
                  <li>
                    <strong>Is GRUF maintained ?</strong><br />
                    Yes, it is, actively. Features (especially regarding useablility) are often 
                    added to GRUF. Official releases are considered very stable.
                  </li>
                  <li>
                    <strong>Can I help ?</strong><br />
                    Yes, for sure !<br />
                    GRUF is an Open-Source project and we, at Ingeniweb, are always happy to help people getting involved
                    with our products. Just contact us to submit your ideas, patches or insults ! :-)<br />
                    <strong>In any case, if you want to work on GRUF's CVS, please work in a branch, never on the HEAD!</strong><br />
                    I want this to ensure the latest CVS HEAD is always very stable.
                  </li>
                </ul>
              </p>
              </div>
              
              <a name="links"/>
              <p>&nbsp;</p>
              <span class="boxtab">Links</span>
              <div class="boxcontent">
                <p>
                  Here are some links of interest regarding GRUF or other assorted tools.
                </p>
                <p>
                <ul>
                  <li><a href="http://ingeniweb.sourceforge.net/Products/GroupUserFolder">This document</a> on the web;</li>
                  <li><a href="http://ingeniweb.sourceforge.net/Products/GroupUserFolder/api/GroupUserFolder.html">GRUF API Documentation</a> (using APIDoc);</li>
                  <li><a href="http://sourceforge.net/project/showfiles.php?group_id=55262">The collective project download page</a> to keep up-to-date with latest GRUF releases;</li>
                  <li><a href="http://ingeniweb.sourceforge.net/Products/GroupUserFolder/README.txt">README.txt</a>: the GRUF README file</li>
                  <li><a href="http://ingeniweb.sourceforge.net/Products/GroupUserFolder/README-Plone.stx">README-Plone.stx</a>: the GRUF-Plone README file</li>
                  <li><a href="http://ingeniweb.sourceforge.net/Products/GroupUserFolder/README-LDAP.stx">README-LDAP.stx</a>: LDAP interfacing README file, <strong>a must-read</strong></li>
                  <li><a href="http://ingeniweb.sourceforge.net/Products/GroupUserFolder/CHANGES">CHANGES</a>: the top-level changes file</li>
                  <li><a href="http://ingeniweb.sourceforge.net/Products/GroupUserFolder/ChangeLog">ChangeLog</a>: the ChangeLog file, auto-generated from cvs</li>
                  <li><a href="http://plone.biz/Members/lupa/OnlyShowPortalTabToGroupMembers">A Plone w/ GRUF howto</a> to show actions only to members of a group, by +lupa+</li>
                </ul>
              </p>
              </div>

              <a name="contact"/>
              <p>&nbsp;</p>
              <span class="boxtab">Contact</span>
              <div class="boxcontent">
                <p>
                  There are some ways to have contact/support on GRUF.
                </p>
                <p>
                <ul>
                  <li><a href="http://lists.sourceforge.net/lists/listinfo/ingeniweb-help">Ingeniweb help mailing list</a></li>
                  <li><a href="mailto:support@ingeniweb.com?subject=GRUF">Ingeniweb support</a></li>
                </ul>
              </p>
              </div>

              <p>&nbsp;</p>
              <p align="right">
                <font size="-3">
                  <!-- Created: Wed Jul  9 15:52:57 GMT 2003 -->
                  <!-- hhmts start -->
Last modified: Mon Sep  6 11:56:34     2004
<!-- hhmts end -->
                </font>
              </p>
            </td>
          </tr>
      </table>
    </div>
  </body>
</html>