Olivier Grisel <[EMAIL PROTECTED]> writes:

> 
> jacques.champliaud a écrit :
> > Olivier Grisel <ogrisel <at> ...> writes:
> > 
> >> Fabrice Robin a écrit :
> >>
> >>>     Hi,
> >>>
> >>>     You will find in attachment my LDAP setup for members and groups.
> >>>     These are the settings for an openldap directory with the use of
> >>>     samba and posix schemas.
> >>>
> >>>     With these settings, the CPS groups are the system groups used on
> >>>     the network.
> >>>     Any group created through CPS is created in the ZODB (groups_zodb).
> >> Thanks, I have opened a ticket to add a such a configuration option in
> > CPSLDAPSetup:
> >> http://svn.nuxeo.org/trac/pub/ticket/1648
> >>
> >> Don't have time to do it now, though.
> > 
> > I have tried to make CPSLDAPSetup work, my schemas are derived partly from
the
> > bbs-one's schemas ( which I cannot import (at least easily due to a 
problem 
> > witha  <property name="schemas"/> line in some schemas )
> 
> You will need CPS trunk or CPS 3.4.1 (that should get released by the end of
the
> week) to have proper multi schema support for the directories.
> 
> > In my schemas, objectClass for groups is groupOfUniqueNames
> > 
> > Three levels of directories for groups: Meta, stack and ldap
> > Ok it is almost working well :
> > I get the correct groups name list whit security/Manage Local Roles
> > 
> > but ...
> > 1)when the mapping in the metadirectory called groups is set to:
> > id in groups_stack : uniqueMember <==>  id in groups : members
> > then the members list is correctly displayed in CPS directories view but
> > a userbeing member of a group with corrects rights on a workspace 
> > can't view this workspace
> > 
> > 2) when the mapping is set to :
> > id in groups_stack : uniqueMember <==>  id in groups : dummy
> > then the members list can't be retrieved CPS complains about a 
> > missing members key but a user being member of a group with 
> > corrects rights on a workspace can view it
> > 
> > Any idea to make this work correctly ?
> 
> See later.
> 
> > I had to copy/paste the groups directory to mycompanygroups 
> > and set the mapping to:
> > id in groups_stack : uniqueMember <==>  id in mycompanygroups : members
> > 
> > This way everything works but the groups membership list.
> > 
> > names of members in the mycompanygroups's view are correctly displayed
> > thank's to a external python script called from 
> > portal_schemas/groups_ldap/f__uniqueMember  Read
> > expression:python:portal.members_list(uniqueMember)
> > members_list being a function accepting a list type argument in the form
> > ['uid=fname1.name1,ou=people,dc=mycomp,dc=fr',
> > 'uid=fname2.name2,ou=people,dc=mycomp,dc=fr']
> > and returning a list in the form
> > ['fname1.name1','fname2.name2']
> 
> Beware that read_process_expr are not computed in search mode (searchEntries
> API). That might be related to your problem of having the members of 
group get 
> the right locaroles.
> 


Ok, so I completly removed the field uniqueMember from
portal_schemas/groups_ldap object. A user being member of a group with 
corrects rights on a workspace can *still* view this workspace. 
This means that CPS can retrieve the membership of a user without 
using the groups portal_directories... and as the ldap entry 
of a user don't list the groups he belongs to...
I suspect this is due to the python expression :
python:util.dirCrossGetList('groups', 'members', data.get('uid'))
in the Read: expression of portal_schemas/members_ldap/f__cpsGroups

Am I correct ?

But even this way, as the members of a group are listed in the fields
uniqueMember of the ldap groups schema where is the uniqueMember field
mentionned in CPS ?
And how can I use it to limit the groups a member can list 
( the Entry Local Roles GroupMember python:entry_id in
getUserEntry().get('groups', []) doesn't work )
Thanks

 


_______________________________________________
cps-devel mailing list
http://lists.nuxeo.com/mailman/listinfo/cps-devel

Reply via email to