;ò q=4Ac@sôdkZdkZdklZlZdklZdklZdk l Z dk l Z l Z dklZdklZdkZdkTd klZed eƒƒZd efd „ƒYZd d ed„Zeeƒde fd„ƒYZdS(N(sDTMLFilesInitializeClass(saq_base(sClassSecurityInfo(s SimpleUser(sview_management_screenss manage_users(s SimpleItem(sDateTime(s*(s SimpleCachesdtml/addLDAPGroupFoldersLDAPGroupFoldercBstZdZeƒZdZdZdZdZhdd<dd %ssmanage_tabs_messageN( sselfs_cachesremoves group_namesgetLUFsmanage_addGroupMappings role_namesNonesREQUESTsmsgs manage_main(sselfs group_names role_namesREQUESTsmsg((sS/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/LDAPGroupFolder.pysmanage_addGroupMappingas smanage_deleteGroupMappingscCsU|iiƒ|iƒi|tƒ|o'ddi|ƒ}|i d|ƒSndS(s. Delete mappings from LDAP group to Zope role s/Deleted LDAP group to Zope role mapping for: %ss, smanage_tabs_messageN( sselfs_cachesclearsgetLUFsmanage_deleteGroupMappingss group_namessNonesREQUESTsjoinsmsgs manage_main(sselfs group_namessREQUESTsmsg((sS/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/LDAPGroupFolder.pysmanage_deleteGroupMappingsls  smanage_addGroupsgroupOfUniqueNamescCsB|iƒi||tƒ|od|}|id|ƒSndS(s(Add a new group in groups_base. sAdded new group %ssmanage_tabs_messageN( sselfsgetLUFsmanage_addGroups newgroup_names newgroup_typesNonesREQUESTsmsgs manage_main(sselfs newgroup_names newgroup_typesREQUESTsmsg((sS/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/LDAPGroupFolder.pysmanage_addGroupws  smanage_deleteGroupscCsU|iƒi|tƒ|iiƒ|o'ddi|ƒ}|i d|ƒSndS(s Delete groups from groups_base sDeleted group(s):
%ss
smanage_tabs_messageN( sselfsgetLUFsmanage_deleteGroupssdnssNones_cachesclearsREQUESTsjoinsmsgs manage_main(sselfsdnssREQUESTsmsg((sS/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/LDAPGroupFolder.pysmanage_deleteGroups†s  sgetUserc CsÄ|ii|dƒ}|o|Sn|iƒiƒ} |iƒ} t }x,| D]$\}}||jo |}PqOqOW| ot Sn|iƒi|gƒ}t|iƒid|ddƒƒ} |i|iƒi| ƒƒtt|d| |ƒtt|dt|iƒdhƒƒg}x^|D]V}|| jo|i|ƒq'dt|f| jo|idt|fƒq'q'Wtt|d |ƒt|d|gƒ}|ii||ƒ|Sd S( s ssdnsattrscnsrolessmappings_groups_mappingss%s%ss actual rolesN(sselfs_cachesgetsnamesusersgetLUFs getGroupssgrpssuserFolderGetRoless valid_rolessNonesdnsnsg_dns _mapRolessrolesslistsgroupssextendsLogs LOG_DEBUGsgetattrs actual_rolessrsappends GROUP_PREFIXs GroupUsersset( sselfsnamesdnsg_dnsrolessns actual_rolessrsusersgroupssgrpss valid_roles((sS/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/LDAPGroupFolder.pysgetUsers<    $% s getUserNamescCs9gi}|iƒiƒD]}||dƒq~SdS(s iN(sappends_[1]sselfsgetLUFs getGroupssg(sselfs_[1]sg((sS/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/LDAPGroupFolder.pys getUserNames»ssgetUsersc Cs$g} |iƒiƒ} |iƒ} xõ| D]í\}}|iƒi |gƒ}t |iƒid|ddƒƒ}|i |iƒi |ƒƒg}x^|D]V}|| jo|i|ƒqœdt|f| jo|idt|fƒqœqœWt|d|gƒ}| i|ƒq+W| SdS(s sdnsattrscns%s%ssN(sdatasselfsgetLUFs getGroupssgrpssuserFolderGetRoless valid_rolessnsdns _mapRolessrolesslistsgroupssextends actual_rolessrsappends GROUP_PREFIXs GroupUsersuser( sselfs authenticatedsdnsrolessns actual_rolessrsusersgroupssgrpss valid_rolessdata((sS/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/LDAPGroupFolder.pysgetUsersÀs&  $ s _doAddUsercKs0|iƒi|ƒ|i|||||dS(sRWARNING: If a role with exists with the same name as the group, we do not add the group mapping for it, but we create it as if it were a Zope ROLE. Ie. it's not possible to have a GRUF Group name = a Zope role name, BUT, with this system, it's possible to differenciate between LDAP groups and LDAP roles. N( sselfsgetLUFsmanage_addGroupsnames _doChangeUserspasswordsrolessdomainsskw(sselfsnamespasswordsrolessdomainsskw((sS/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/LDAPGroupFolder.pys _doAddUserÛss _doDelUserscCskg}|iƒ}x8|iƒD]*\}}||jo|i|ƒqqW|i i ƒ|i |ƒSdS(N( sdnssselfsgetLUFslufs getGroupssg_namesdnsnamessappends_cachesclearsmanage_deleteGroups(sselfsnamessdnslufsdnssg_name((sS/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/LDAPGroupFolder.pys _doDelUsersås    s _doChangeUsercKs‰|iƒ} |ii|ƒt} x2| iƒD]$\}}||jo |} Pq/q/W| ot d|f‚n| i o| i | |ƒnõg}| iƒ} | iƒ}h} x | D]} | d| | dx;|i ƒD])}|i djo|i i ƒ}qNqNWn| o td‚nt||ƒ}|id|ƒ|i|_d}|o2|d}d|} |iid|| fƒnd S( s s acl_userss*This+object+already+contains+a+User+FoldersLDAPUserFoldersJYou must be within GRUF with a LDAPUserFolder as one of your user sources.sAdded+LDAPGroupFoldersURL1smanage_tabs_message=%ss%s/manage_main?%sN(sselfsthiss this_foldershasattrsaq_basesREQUESTsNonesmsgslufslistUserSourcesssrcs meta_types aq_parentsgetIdsKeyErrorsLDAPGroupFolderstitlesns _setObjects acl_userss__allow_groups__surlsqssRESPONSEsredirect( sselfstitleslufsREQUESTs this_folderssrcsurlsnsmsgsqs((sS/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/LDAPGroupFolder.pysmanage_addLDAPGroupFolder0s& #      s GroupUsercBs tZdZd„Zd„ZRS(s cCs,ti|||||ƒtiƒ|_dS(N( s SimpleUsers__init__sselfsnamespasswordsrolessdomainsstimes_created(sselfsnamespasswordsrolessdomains((sS/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/LDAPGroupFolder.pys__init__VscCst|iƒSdS(s N(sDateTimesselfs_created(sself((sS/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/LDAPGroupFolder.pysgetCreationTimeZs(s__name__s __module__s__doc__s__init__sgetCreationTime(((sS/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/LDAPGroupFolder.pys GroupUserSs  (stimes tracebacksGlobalssDTMLFilesInitializeClasss Acquisitionsaq_bases AccessControlsClassSecurityInfosAccessControl.Users SimpleUsersAccessControl.Permissionssview_management_screenss manage_userssOFS.SimpleItems SimpleItemsDateTimesGroupUserFoldersglobal_symbolss#Products.LDAPUserFolder.SimpleCaches SimpleCachesglobalssaddLDAPGroupFolderFormsLDAPGroupFoldersNonesmanage_addLDAPGroupFolders GroupUser(sview_management_screenss tracebacks manage_userssaq_basesClassSecurityInfosaddLDAPGroupFolderFormsInitializeClasssDTMLFilesLDAPGroupFolders SimpleItems SimpleCachesGroupUserFolders SimpleUsersmanage_addLDAPGroupFolderstimes GroupUsersDateTime((sS/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/LDAPGroupFolder.pys?s        ÿ