;ò >ªÉ@c@sîdkZdkZedjo$eeiieiddƒƒndklZdkl Z l Z l Z l Z l Z dklZlZlZdklZdklZdkZeiƒZeiieƒeieƒeiid ƒ\ZZd eeeifZd k l!Z!d k"l#Z#ei$d ƒei$dƒdk%Z%dk&Z&dk'Z'dk(Tydk)l*Z*Wn e+j oe(e,dƒnXe*i-Z.de'i/fd„ƒYZ0edjoe1ddddƒndk2Z2d„Z3dS(Ns__main__is framework.py(s ZopeTestCase(saccess_contents_informationsviewsadd_documents_images_and_filesschange_images_and_filessview_management_screens(snewSecurityManagersnoSecurityManagersgetSecurityManager(s Unauthorized(sUnrestrictedUserishttp://%s:%d/%s(s IUserFolder(sVerifysGroupUserFoldersLDAPUserFolder(s*(sdefaultssÿ To perform this test case, you must provide a 'LDAPconfig.py' file with the following structure: defaults = { 'title' : 'LDAP User Folder' , 'server' : 'localhost:389' , 'login_attr' : 'cn' , 'uid_attr': 'cn' , 'users_base' : 'ou=people,dc=dataflake,dc=org' , 'users_scope' : 2 , 'roles' : 'Anonymous' , 'groups_base' : 'ou=groups,dc=dataflake,dc=org' , 'groups_scope' : 2 , 'binduid' : 'cn=Manager,dc=dataflake,dc=org' , 'bindpwd' : 'mypass' , 'binduid_usage' : 1 , 'rdn_attr' : 'cn' , 'local_groups' : 1 # Keep this true , 'use_ssl' : 0 , 'encryption' : 'SHA' , 'read_only' : 0 } Of course, you've got to replace all values by some relevant ones for your project. This test case won't complete without. NEVER PUT THIS FILE INTO YOUR CVS ! Unless you want your password to be publicly known... sTestLDAPUserFolderGroupscBs°tZdZd„Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z d „Z d „Z d „Z d „Zd „Z d„Z d„Z d„Zd„Zd„ZRS(sÖ Now we create groups into LDAP. Groups won't be locally stored anymore. Remember that according to LDAPUF, a LDAP group = a zope role. However, for GRUF, a zope group = a zope role. So, by transitivity, we must be able at some point to say that a zope group = a LDAP group ;) The only caveat with this system is that we have to declare the zope roles we'll use in LDAP. That's why we create a few additional groups in gruf_sources_setup(). c&CsÓ|iidddtdƒdtdƒdtdƒdtdƒdtdƒd td ƒd td ƒd td ƒd td ƒd td ƒdtdƒdtdƒdtdƒdtdƒdtdƒdtdƒdtdƒƒ|iiddddddƒ|iiiidtdƒdtdƒdtdƒdtdƒd td ƒd td ƒddd td ƒd td ƒd td ƒdtdƒdtdƒdtdƒdddtdƒdtdƒƒ|iƒdS(sE Basic LDAP initialization inside gruf's user source sUserss9manage_addProduct/LDAPUserFolder/manage_addLDAPUserFolderstitles LDAP_serversservers login_attrsuid_attrs users_bases users_scopesroless groups_bases groups_scopesbinduidsbindpwds binduid_usagesrdn_attrs local_groupss encryptionsuse_ssls read_onlysGroupss;manage_addProduct/GroupUserFolder/manage_addLDAPGroupFoldersMyLDAPGFslufs obj_classesstop,inetOrgPersoniN(sselfsgrufsreplaceUserSourcesdgsUserss acl_userss manage_editsdelete_created_users(sself((s]/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/tests/testLDAPGroupFolder.pysgruf_sources_setup`sR                               cCsÊddddddddd d d d d dddddg}g}x1|D])}|id||iiiifƒqIW|iiii |ƒ|ii ddddddddddddd d!gƒd"S(#sldap-specify deletionsg1sg2sg3sg4sng1sng2sng3sng4sng5s created_groups test_prefixsextranetsintranetscomptasr1sr2sr3sr4scn=%s,%ssmanagersu1su2su3su4su5su6su7su8su9su10su11s created_usersgroup_test_prefixN( sgroupssg_dnsgroupsappendsselfsgrufsUserss acl_userss groups_basesmanage_deleteGroupssuserFolderDelUsers(sselfsgroupsg_dnsgroups((s]/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/tests/testLDAPGroupFolder.pysdelete_created_users–s<'cCss|iidƒ|iidƒ|iidƒ|iidƒ|iidfƒ|iiddfƒ|iiddfƒ|iidddfƒ|iid fdfƒ|iid fddfƒ|iid fdd fƒ|iid dfdd fƒ|iid fdd fƒ|iidffƒ|iidfdfƒ|iidfddfƒdS(s?create groups. We splitted to allow LDAP tests to override thissr1sr2sr3sr4sg1sg2sg3sg4sng1sng2sng3sng4sng5sextranetsintranetscomptaN(sselfsgrufsuserFolderAddGroup(sself((s]/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/tests/testLDAPGroupFolder.pyssecurity_context_setup_groupsÂs"cCs |i|iiiidƒ|iidƒ|iidƒ|i|iiiidƒ|iiƒ|ii ƒ|iidƒ|iiƒ|ii ƒdS(sEnsure that LDAPGroupFolder will still work correctly if we move a source. This caused core dumps or GRUF3Beta1. sLDAPUserFolders+manage_addProduct/OFSP/manage_addUserFoldersUsers01s User FolderN( sselfsfailUnlessEqualsgrufsUserss acl_userss meta_types addUserSourcesmoveUserSourceUpsgetUserss getUserNames(sself((s]/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/tests/testLDAPGroupFolder.pystestLDAPSourceMoveÜs   cCs|iiiiƒdS(s&Ensure LDAP is up and running N(sselfsgrufsUserss acl_userssgetUsers(sself((s]/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/tests/testLDAPGroupFolder.pys test01_LDAPUpüscCs>|id|iidƒiƒj|iidƒiƒƒdS(s(Test if a group can have a role sr1sg2N(sselfs failUnlesssgrufsgetGroupsgetRoles(sself((s]/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/tests/testLDAPGroupFolder.pystest02_groupHasRolescCsdS(N((sself((s]/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/tests/testLDAPGroupFolder.pystest_getGroupNamesscCsdS(N((sself((s]/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/tests/testLDAPGroupFolder.pystest_getGroupIds scCsdS(N((sself((s]/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/tests/testLDAPGroupFolder.pystest_getUserNames scCsdS(N((sself((s]/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/tests/testLDAPGroupFolder.pystest_getUserIdsscCsdS(N((sself((s]/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/tests/testLDAPGroupFolder.pystest_getGroupsscCsdS(sf We cannot create additional roles easily with LDAP... So we don't test this. N((sself((s]/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/tests/testLDAPGroupFolder.pystest_userFolderDelRolesscCs¹|iiƒ}ddddddddd d d d d dddg}|iƒ|iƒx+|D]#}|i||jd|fƒq`Wx+|D]#}|i||jd|fƒqŽWdS(s7Same as getUserNames() but without pure users. sg1sg2sg3sg4sng1sng2sng3sng4sng5sextranetsintranetscomptasr1sr2sr3sr4s-Invalid users list: '%s' is not in acl_users.s@Invalid users list: '%s' is in acl_users but shouldn't be there.N(sselfsgrufs getGroupNamessunsusersssortsus failUnless(sselfsunsususers((s]/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/tests/testLDAPGroupFolder.pystest_getGroupNames!s6  !cCs¹|iiƒ}ddddddddd d d d d dddg}|iƒ|iƒx+|D]#}|i||jd|fƒq`Wx+|D]#}|i||jd|fƒqŽWdS(Nsgroup_g1sgroup_g2sgroup_g3sgroup_g4s group_ng1s group_ng2s group_ng3s group_ng4s group_ng5sgroup_extranetsgroup_intranets group_comptasgroup_r1sgroup_r2sgroup_r3sgroup_r4s-Invalid users list: '%s' is not in acl_users.s@Invalid users list: '%s' is in acl_users but shouldn't be there.(sselfsgrufs getGroupIdssunsusersssortsus failUnless(sselfsunsususers((s]/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/tests/testLDAPGroupFolder.pystest_getGroupIds2s6  !cCsË|iiƒ}td„|ƒ}dddddddd d d d d ddddg}|iƒ|iƒx+|D]#}|i ||jd|fƒqrWx+|D]#}|i ||jd|fƒq WdS(s#Overloaded because roles are groupscCs |iƒS(N(sxsgetId(sx((s]/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/tests/testLDAPGroupFolder.pysEssgroup_g1sgroup_g2sgroup_g3sgroup_g4s group_ng1s group_ng2s group_ng3s group_ng4s group_ng5sgroup_extranetsgroup_intranets group_comptasgroup_r1sgroup_r2sgroup_r3sgroup_r4s-Invalid users list: '%s' is not in acl_users.s@Invalid users list: '%s' is in acl_users but shouldn't be there.N( sselfsgrufs getGroupssobjectssmapsunsusersssortsus failUnless(sselfsuserssobjectssusun((s]/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/tests/testLDAPGroupFolder.pystest_getGroupsBs6  !cCs´|iidddgddgƒx‹dddfD]z}|i||iidƒiƒj|iidƒiƒƒ|i||iidƒiƒj|iidƒiƒƒq2WdS(s²Set a common set of roles for a bunch of user atoms. We changed this because LDAPUF add garbage roles :( See http://www.dataflake.org/tracker/issue_00376 sr1sr2sr3su1su2N(sselfsgrufssetRolesOnUserssrs failUnlesssgetUsersgetRoles(sselfsr((s]/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/tests/testLDAPGroupFolder.pystest_setRolesOnUsersTs ":c CsH|iiddddddgddgƒ|itdddgƒd S( sHChanged because of http://www.dataflake.org/tracker/issue_00376 snamesu1spasswordssecret2srolessr1sgroupssg1N(sselfsgrufsuserFolderEditUsers compareRolessNone(sself((s]/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/tests/testLDAPGroupFolder.pystest_userFolderEditUser`s   c Csyddddddddd d d d d g }|iƒt|iidƒƒ}|iƒ|i||j||fƒdS(Ns group_ng2s group_ng3s group_ng4s group_ng5su9su5su4su7su6su11su10sgroup_g3sgroup_g4sr2(s should_bessortslistsselfsgrufsgetUsersOfRolesuserss failUnless(sselfsuserss should_be((s]/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/tests/testLDAPGroupFolder.pystest_getUsersOfRoleks -  (s__name__s __module__s__doc__sgruf_sources_setupsdelete_created_usersssecurity_context_setup_groupsstestLDAPSourceMoves test01_LDAPUpstest02_groupHasRolestest_getGroupNamesstest_getGroupIdsstest_getUserNamesstest_getUserIdsstest_getGroupsstest_userFolderDelRolesstest_setRolesOnUsersstest_userFolderEditUserstest_getUsersOfRole(((s]/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/tests/testLDAPGroupFolder.pysTestLDAPUserFolderGroupsUs&  6 ,            s descriptionsis verbositycCs*tiƒ}|ititƒƒ|SdS(N(sunittests TestSuitessuitesaddTests makeSuitesTestLDAPUserFolderGroups(ssuite((s]/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/tests/testLDAPGroupFolder.pys test_suite„s (4sosssyss__name__sexecfilespathsjoinsTestings ZopeTestCasesAccessControl.Permissionssaccess_contents_informationsviewsadd_documents_images_and_filesschange_images_and_filessview_management_screenss AccessControl.SecurityManagementsnewSecurityManagersnoSecurityManagersgetSecurityManagers AccessControls UnauthorizedsAccessControl.UsersUnrestrictedUsersurllibsappsutilsssetupSiteErrorLogscloses startZServershostsports _folder_namesbases#Products.GroupUserFolder.interfacess IUserFolders InterfacesVerifysinstallProducts GRUFTestCasestestGroupUserFolderAPIstestLDAPUserFoldersLogs LDAPconfigsdefaultss ImportErrors LOG_ERRORsgetsdgsTestLDAPUserFolderAPIsTestLDAPUserFolderGroupss frameworksunittests test_suite(saccess_contents_informationstestGroupUserFolderAPIsnoSecurityManagersappsports ZopeTestCasesurllibsVerifysunittestsview_management_screensschange_images_and_filessdefaultss UnauthorizedsnewSecurityManagersdgsUnrestrictedUserssysshostsbasestestLDAPUserFolders IUserFoldersgetSecurityManagersadd_documents_images_and_filessTestLDAPUserFolderGroupss test_suites GRUFTestCasesossview((s]/mnt/gmirror/ports/www/zope-groupuserfolder/work/GroupUserFolder/tests/testLDAPGroupFolder.pys?sB $ %              ÿ,