; H?c@sdkZdkZdkZdkZdkZdkZdkZdkZdk Z dkl Z l Z dkl Z l Z lZlZlZlZdklZdklZdklZlZdklZlZdklZdklZd k l!Z!l"Z"l#Z#d k$l%Z%d k&l'Z'd k(l)Z)d k*l*Z*dk+l,Z,dk-l.Z.dk/Tdk0l0Z0l1Z1dk2l3Z3l4Z4l5Z5l6Z6dk7l7Z7ydk8l9Z9l:Z:Wn,e;j o dfdYZ9e<Z:nXdZ=e de>ddZ?ddde<e<he<dZ@e3ZAe4ZBe5ZCdee"e9efdYZDdZEd ZFd!ZGd"ZHd#ZId$ZJd%ZKd&ZLd'ZMd(kNlOZOlPZPlQZQlRZRlSZSlTZTlUZUd)ZVd*ZWdS(+N(sDTMLFilesPersistentMapping(sjoinsstripssplitslowersuppersfind(sFolder(s CopyContainer(s decodestrings encodestring(squotesunquote(sClassSecurityInfo(s RoleManager(s BasicUsersBasicUserFoldersreadUserAccessFile(sPermissionRole(s_noroles(s DTMLMethod(stime(s REPLACEABLE(s Persistent(s*(sUsersAnonUser(sGlobalUserCachesGlobalNegativeUserCachesGlobalAdvancedCookieCachesSessionExpiredException(sLoginRequiredMessages(sBasicGroupFolderMixins_markersBasicGroupFolderMixincBstZRS(N(s__name__s __module__(((sJ/mnt/gmirror/ports/www/zope-exuserfolder/work/exUserFolder/exUserFolder.pysBasicGroupFolderMixin{scCsEt}t}t}d}|||d}d|}|SdS(Nf0.0isAnonymous %.0f(stimestst1st2st3sun(st2st3st1sunst((sJ/mnt/gmirror/ports/www/zope-exuserfolder/work/exUserFolder/exUserFolder.pyscreateTempNames    sdtml/manage_addexUserFolders__name__smanage_addexUserFolderFormic Cst|ido.ti|| dddddd| dSnt|||| ||||| } |id| ttd |i|_t|d} | i| | o|i|| Snd Sd S( s s acl_usersstitles Item Existssmessages*This object already contains a User Foldersactions%s/manage_mainsURL1isN(shasattrsselfsaq_basesGlobalss MessageDialogsREQUESTs exUserFoldersauthIdspropIdsmemberIdsgroupIds cookie_modessession_lengthssessionTrackings idleTimeoutsnot_session_lengthsobs _setObjectsNones acl_userss__allow_groups__sgetattrspostInitialisations manage_main( sselfsauthIdspropIdsmemberIds cookie_modessession_lengthsnot_session_lengthssessionTrackings idleTimeoutsREQUESTsgroupIdsob((sJ/mnt/gmirror/ports/www/zope-exuserfolder/work/exUserFolder/exUserFolder.pysmanage_addexUserFolders   s exUserFoldercBstZdZdZdZdZdZdZdZdZ hZ hZ hZ hZ hdd<dd d&fd-ffd?d@dAdBdCdDdEdFdGdHdIdJdKf dLdMd-ffdNdOdPdQdRdSdTdUfd-ffdVdWdXdYdZd[d\d]dBdCdFdGdIdJf dLdMd-fffZed^eZed_eZed`eZedaeZeiZedbeZedceZyeidWnej onXeddeZee_edeeZedfeZ fZ!edgeZ"fZ#edheZ$edieZ%edjeZ&edkeZ'edleZ(edmeZ)edneZ*edoeZ+edpeZ,edqeZ-ye.i/Z/e.i0Z0Wne1Z/e1Z0nXdrdre1drdrdsZ2dtZ3duZ4dvZ5dwZ6dxZ7dyZ8dzZ9d{Z:hd|Z;hd}Z<hd~Z=hdZ>dZ?dZ@e1dZAdZBdZCdZDdZEdZFdZGdZHdZIdZJdZKdZLdZMdZNdZOdZPhdZQdZRdZSdZTdZUdZVdZWdZXdfdZYdfdZZdZ[dZ\dZ]dLdMfZ^dZ_e1e1hdZ`dZadZbdecdZddZedddZfdZgdZhdZidZjdZkdZldZmdZndZoe1drdre1e1dZpdZqdZrdZsdZtdZudZvdZwdZxdZydZzdZ{dZ|ddZ}dZ~dZedZdZdZdZdZdZdZRS(s s User Folders acl_userssExtensible User Folders#misc_/exUserFolder/exUserFolder.gifislabelsUserssactions manage_mainsGroupssmanage_userGroupss Parameterssmanage_editexUserFolderFormsAuthentication Sourcesmanage_editAuthSourceFormsProperties Sourcesmanage_editPropSourceFormsMembership Sourcesmanage_editMembershipSourceForms Groups Sourcesmanage_editGroupSourceForms Cache Datasmanage_showCacheDatasSecuritys manage_accesssContentssmanage_contentss Ownerships manage_ownersUndosmanage_UndoFormsView management screenssmanages manage_menusmanage_copyrights manage_tabssmanage_propertiess manage_editsmanage_cutObjectssmanage_copyObjectssmanage_pasteObjectssmanage_renameFormsmanage_renameObjectsmanage_renameObjectssManagers Undo changessmanage_undo_transactionssChange permissionss Manage userss manage_userssmanage_editUserFormsmanage_editUsersmanage_addUserFormsmanage_addUsersmanage_userActionssuserFolderAddGroupsuserFolderDelGroupss getGroupNamess getGroupByIdsmanage_addGroupsmanage_showGroupsChange exUser FolderssViewsmanage_changePasswordsmanage_forgotPasswordsdocLoginsdocLoginRedirects docLogoutslogouts DialogHeaders DialogFootersmanage_signupUsers MessageDialogsredirectToLoginsmanage_changePropss Anonymouss AuthenticatedsManage propertiessmanage_addPropertysmanage_editPropertiessmanage_delPropertiessmanage_changePropertiessmanage_propertiesFormsmanage_propertyTypeFormsmanage_changePropertyTypessAccess contents informations hasPropertys propertyIdsspropertyValuess propertyItemss getPropertysgetPropertyTypes propertyMaps dtml/accessscommon/manage_tabssdtml/propertiess dtml/mainUsersdtml/manage_showCacheDatasdtml/docLoginRedirectscommon/MessageDialogsdtml/manage_addUserFormsdtml/manage_editUserFormscommon/DialogHeaderscommon/DialogFootersdtml/manage_editAuthSourceFormsdtml/manage_editPropSourceForms$dtml/manage_editMembershipSourceFormsdtml/manage_editGroupSourceFormsdtml/manage_addPropertyFormsdtml/manage_createPropertyForms dtml/manage_editUserPropertyForms dtml/manage_editexUserFolderFormsdtml/mainGroupic Csx||_||_| |_||_||_tdt } tdt }t dd} | id| dd|id| ttdt dd } | id|dd |id | ttdt dd } | idtdd |id | ttd|i|i|_|i|i|_|i|i|_|o|i|i|_ nt|_ t|_!dS( Ns dtml/docLoginsdtml/docLogouts__name__sdocLoginsdatastitles Login Pageis docLogouts Logout PagespostUserCreatesPost User Creation methods("s cookie_modesselfssession_lengths sessionLengthsnot_session_lengthsnotSessionLengthssessionTrackings idleTimeoutsDTMLFilesglobalss _docLogins _docLogouts DTMLMethodsdocLogins manage_edits _setObjectsNones docLogoutspostUserCreates_postUserCreates authSourcessauthIdsmanage_addMethodsmanage_addAuthSources propSourcesspropIdsmanage_addPropSourcesmembershipSourcessmemberIdsmanage_addMembershipSourcesgroupIds groupSourcessmanage_addGroupSourcescurrentGroupsSource(sselfsauthIdspropIdsmemberIdsgroupIds cookie_modessession_lengthssessionTrackings idleTimeoutsnot_session_lengthsdocLogins _docLogins docLogoutspostUserCreates _docLogout((sJ/mnt/gmirror/ports/www/zope-exuserfolder/work/exUserFolder/exUserFolder.pys__init__As.      cCsti||t|d o t|_nt|d o d|_nt|d o d|_nt|d o d|_ nt|d o t|_ nt|d o d|_ ndS(NscurrentGroupSources sessionLengthisnotSessionLengths cookie_modessessionTrainings idleTimeout( s Persistents __setstate__sselfsstateshasattrsNonescurrentGroupSources sessionLengthsnotSessionLengths cookie_modessessionTrackings idleTimeout(sselfsstate((sJ/mnt/gmirror/ports/www/zope-exuserfolder/work/exUserFolder/exUserFolder.pys __setstate__bs     cCstidtid||joy.|i|itidtidWntidtidnXy |`tidtidWqtidtidqXndS(Ns exUserFolders-Attempting to delete an exUserFolder instances-- Caches deleteds-- Cache deletion faileds$-- container.__allow_groups_ deleteds,-- container.__allow_groups_ deletion failed( szLOGsLOGsBLATHERsitemsselfscache_deleteCachesxcache_deleteCaches containers__allow_groups__(sselfsitems container((sJ/mnt/gmirror/ports/www/zope-exuserfolder/work/exUserFolder/exUserFolder.pysmanage_beforeDeleteqs   cCsQtidtid||jo*t|do |i}n||_ndS(Ns exUserFoldersAdding an exUserFoldersaq_base( szLOGsLOGsBLATHERsitemsselfshasattrsaq_bases containers__allow_groups__(sselfsitems container((sJ/mnt/gmirror/ports/www/zope-exuserfolder/work/exUserFolder/exUserFolder.pysmanage_afterAdds   cCs2|io|ii|n|i||SdS(s Edit Prop Source N(sselfscurrentPropSourcesmanage_editPropSourcesREQUESTs manage_main(sselfsREQUEST((sJ/mnt/gmirror/ports/www/zope-exuserfolder/work/exUserFolder/exUserFolder.pysmanage_editPropSources cCs$|ii||i||SdS(s Edit Auth Source N(sselfscurrentAuthSourcesmanage_editAuthSourcesREQUESTs manage_main(sselfsREQUEST((sJ/mnt/gmirror/ports/www/zope-exuserfolder/work/exUserFolder/exUserFolder.pysmanage_editAuthSourcescCs"|io|ii|SndS(s Edit Membership Source N(sselfscurrentMembershipSourcesmanage_editMembershipSourcesREQUEST(sselfsREQUEST((sJ/mnt/gmirror/ports/www/zope-exuserfolder/work/exUserFolder/exUserFolder.pysmanage_editMembershipSources cCs2|io|ii|n|i||SdS(s Edit Group Source N(sselfscurrentGroupSourcesmanage_editGroupSourcesREQUESTs manage_main(sselfsREQUEST((sJ/mnt/gmirror/ports/www/zope-exuserfolder/work/exUserFolder/exUserFolder.pysmanage_editGroupSources cCss|id|d||id|d||id|d||io|id|d|n t|_dS(NsselfsREQUEST(sselfsmanage_addAuthSourcesREQUESTsmanage_addPropSourcesmanage_addMembershipSourcesmanage_addGroupSourcesNonescurrentGroupSource(sselfsREQUEST((sJ/mnt/gmirror/ports/www/zope-exuserfolder/work/exUserFolder/exUserFolder.pyspostInitialisations  cCs|i||SdS(N(sselfsmanage_addAuthSourceFormsREQUEST(sselfsREQUEST((sJ/mnt/gmirror/ports/www/zope-exuserfolder/work/exUserFolder/exUserFolder.pys addAuthSourcescCs|i||SdS(N(sselfsmanage_addPropSourceFormsREQUEST(sselfsREQUEST((sJ/mnt/gmirror/ports/www/zope-exuserfolder/work/exUserFolder/exUserFolder.pys addPropSourcescCs|i||SdS(N(sselfsmanage_editMembershipSourceFormsREQUEST(sselfsREQUEST((sJ/mnt/gmirror/ports/www/zope-exuserfolder/work/exUserFolder/exUserFolder.pysaddMembershipSourcescCs|i||SdS(N(sselfsmanage_addGroupSourceFormsREQUEST(sselfsREQUEST((sJ/mnt/gmirror/ports/www/zope-exuserfolder/work/exUserFolder/exUserFolder.pysaddGroupSourcescCs%|io|iid|SndS(Nsusername(sselfscurrentPropSourceslistUserPropertiessusername(sselfsusername((sJ/mnt/gmirror/ports/www/zope-exuserfolder/work/exUserFolder/exUserFolder.pyslistUserPropertiess cCs+|io|iid|d|SndS(Nskeysusername(sselfscurrentPropSourcesgetUserPropertyskeysusername(sselfsusernameskey((sJ/mnt/gmirror/ports/www/zope-exuserfolder/work/exUserFolder/exUserFolder.pysgetUserPropertys cCsy ||SWn |SnXdS(N(srequestsattrsdefault(sselfsrequestsattrsdefault((sJ/mnt/gmirror/ports/www/zope-exuserfolder/work/exUserFolder/exUserFolder.pysreqattrs cCs$ti|o t|SndSdS(s Return a code sLogin RequiredN(sLoginRequiredMessagesshas_keyscode(sselfscode((sJ/mnt/gmirror/ports/www/zope-exuserfolder/work/exUserFolder/exUserFolder.pysgetAuthFailedMessages cCs)ti|id}ti|dS(Ns/(sstringsjoinsselfsgetPhysicalPathspps XUFUserCaches deleteCache(sselfspp((sJ/mnt/gmirror/ports/www/zope-exuserfolder/work/exUserFolder/exUserFolder.pyscache_deleteCachescCsr|i odSnti|id}ti|}| oti ||i}n|i |||dS(Ns/(sselfs sessionLengthsstringsjoinsgetPhysicalPathspps XUFUserCachesgetCachesxs createCaches addToCachesusernamespasswordsuser(sselfsusernamespasswordsusersppsx((sJ/mnt/gmirror/ports/www/zope-exuserfolder/work/exUserFolder/exUserFolder.pyscache_addToCaches cCs|i otSnti|id}ti|}| otSn|i |||}|tj o|i|}n|SdS(Ns/(sselfs sessionLengthsNonesstringsjoinsgetPhysicalPathspps XUFUserCachesgetCachesxsgetUsersusernamespasswordsus__of__(sselfsusernamespasswordsppsusx((sJ/mnt/gmirror/ports/www/zope-exuserfolder/work/exUserFolder/exUserFolder.pys cache_getUsers  cCsV|i odSnti|id}ti|}|o|i |ndS(Ns/( sselfs sessionLengthsstringsjoinsgetPhysicalPathspps XUFUserCachesgetCachesxs removeUsersusername(sselfsusernamesppsx((sJ/mnt/gmirror/ports/www/zope-exuserfolder/work/exUserFolder/exUserFolder.pyscache_removeUsers  cCsati|id}ti|}| oti||i }n|o|i SndS(Ns/( sstringsjoinsselfsgetPhysicalPathspps XUFUserCachesgetCachesxs createCaches sessionLengths getCacheStats(sselfsxspp((sJ/mnt/gmirror/ports/www/zope-exuserfolder/work/exUserFolder/exUserFolder.pyscache_getCacheStatss cCsCti|id}ti|}|o|i|SndS(Ns/( sstringsjoinsselfsgetPhysicalPathspps XUFUserCachesgetCachesxsgetCurrentUsers(sselfsxspp((sJ/mnt/gmirror/ports/www/zope-exuserfolder/work/exUserFolder/exUserFolder.pyscache_getCurrentUsersscCs)ti|id}ti|dS(Ns/(sstringsjoinsselfsgetPhysicalPathsppsXUFNotUserCaches deleteCache(sselfspp((sJ/mnt/gmirror/ports/www/zope-exuserfolder/work/exUserFolder/exUserFolder.pysxcache_deleteCachescCsl|i odSnti|id}ti|}| oti ||i}n|i |dS(Ns/( sselfsnotSessionLengthsstringsjoinsgetPhysicalPathsppsXUFNotUserCachesgetCachesxs createCaches addToCachesusername(sselfsusernamesppsx((sJ/mnt/gmirror/ports/www/zope-exuserfolder/work/exUserFolder/exUserFolder.pysxcache_addToCaches cCs[|i otSnti|id}ti|}| otSn|i |SdS(Ns/( sselfsnotSessionLengthsNonesstringsjoinsgetPhysicalPathsppsXUFNotUserCachesgetCachesxsgetUsersusername(sselfsusernamesppsx((sJ/mnt/gmirror/ports/www/zope-exuserfolder/work/exUserFolder/exUserFolder.pysxcache_getUsers cCsV|i odSnti|id}ti|}|o|i |ndS(Ns/( sselfsnotSessionLengthsstringsjoinsgetPhysicalPathsppsXUFNotUserCachesgetCachesxs removeUsersusername(sselfsusernamesppsx((sJ/mnt/gmirror/ports/www/zope-exuserfolder/work/exUserFolder/exUserFolder.pysxcache_removeUsers  cCs)ti|id}ti|dS(Ns/(sstringsjoinsselfsgetPhysicalPathsppsXUFCookieCaches deleteCache(sselfspp((sJ/mnt/gmirror/ports/www/zope-exuserfolder/work/exUserFolder/exUserFolder.pyscache_deleteCookieCachescCs\ti|id}ti|}| oti|d}n|i |||dS(Ns/iQ( sstringsjoinsselfsgetPhysicalPathsppsXUFCookieCachesgetCachescs createCaches addToCachesusernamespasswordskey(sselfsusernamespasswordskeysppsc((sJ/mnt/gmirror/ports/www/zope-exuserfolder/work/exUserFolder/exUserFolder.pyscache_addToCookieCaches cCsHti|id}ti|}| otSn|i |SdS(Ns/( sstringsjoinsselfsgetPhysicalPathsppsXUFCookieCachesgetCachescsNonesgetUserskey(sselfskeyscspp((sJ/mnt/gmirror/ports/www/zope-exuserfolder/work/exUserFolder/exUserFolder.pyscache_getCookieCacheUser%s cCsCti|id}ti|}|o|i|ndS(Ns/( sstringsjoinsselfsgetPhysicalPathsppsXUFCookieCachesgetCachescs removeUserskey(sselfskeyscspp((sJ/mnt/gmirror/ports/www/zope-exuserfolder/work/exUserFolder/exUserFolder.pyscache_removeCookieCacheUser,sc Cs|i|d}|i|d}|i|dg}|i|dg}| o)|i|d|dddd d d Sn|p|o ||jo)|i|d|dddd d d Sn|i |||d dd|d||i|d|dddd|d d SdS(s Edit a User spasswordspassword_confirmsroless groupnamessREQUESTstitles Illegal valuesmessagesA username must be specifiedsactions manage_mains&Password and confirmation do not matchsdomainsssgroupss User UpdatedsUser %s was updated.N( sselfsreqattrsREQUESTspasswordspassword_confirmsrolessgroupssusernames MessageDialogs _doChangeUser(sselfsusernamesREQUESTsrolessgroupsspasswordspassword_confirm((sJ/mnt/gmirror/ports/www/zope-exuserfolder/work/exUserFolder/exUserFolder.pysmanage_editUser2s(% cCs%|io|ii||ndS(s Go to home directory N(sselfscurrentMembershipSourcesgoHomesREQUESTsRESPONSE(sselfsREQUESTsRESPONSE((sJ/mnt/gmirror/ports/www/zope-exuserfolder/work/exUserFolder/exUserFolder.pysgoHomeQs c CsD|io|ii|Sn#|i||ddddddSdS(s Change Properties stitlesThis is a testsmessagesThis was a testsactions..N(sselfscurrentMembershipSourceschangePropertiessREQUESTs MessageDialog(sselfsREQUEST((sJ/mnt/gmirror/ports/www/zope-exuserfolder/work/exUserFolder/exUserFolder.pysmanage_changeProps[s  c Cs|i|d}|i|d}| o)|i|d|dddddd Sn|i|p|io||iijo)|i|d|dddd dd Sn|i o|i i |Snd S( s Signup a new user susernamesrolessREQUESTstitles Illegal valuesmessagesA username must be specifiedsactions manage_mains-A user with the specified name already existsN( sselfsreqattrsREQUESTsusernamesroless MessageDialogsgetUsers_emergency_users getUserNamescurrentMembershipSources createUser(sselfsREQUESTsusernamesroles((sJ/mnt/gmirror/ports/www/zope-exuserfolder/work/exUserFolder/exUserFolder.pysmanage_signupUserls"0 cCs"|io|ii|SndS(s Change a password N(sselfscurrentMembershipSourceschangePasswordsREQUEST(sselfsREQUEST((sJ/mnt/gmirror/ports/www/zope-exuserfolder/work/exUserFolder/exUserFolder.pysmanage_changePasswords cCs"|io|ii|SndS(s- So something about forgetting your password N(sselfscurrentMembershipSourcesforgotPasswordsREQUEST(sselfsREQUEST((sJ/mnt/gmirror/ports/www/zope-exuserfolder/work/exUserFolder/exUserFolder.pysmanage_forgotPasswords cCsdSdS(Ni((sself((sJ/mnt/gmirror/ports/www/zope-exuserfolder/work/exUserFolder/exUserFolder.pys__creatable_by_emergency_user__sc Cs|i|d}|i|d}|i|d}|i|d}|i|dg}| o)|i|d|ddd d d d Sn| p| o)|i|d|ddd d d d Sn|i |p|i o||i i jo)|i|d|ddd dd d Sn|p|o ||jo)|i|d|ddd dd d Sn|i |||ddd|d|d|i jo|i||n|i|d|ddd d|d d SdS(s Add a New User susernamespasswordspassword_confirmsroless groupnamessREQUESTstitles Illegal valuesmessagesA username must be specifiedsactions manage_mains+Password and confirmation must be specifieds-A user with the specified name already existss&Password and confirmation do not matchsdomainsssgroupsspostUserCreates User CreatedsUser %s was created.N(sselfsreqattrsREQUESTsusernamespasswordspassword_confirmsrolessgroupss MessageDialogsgetUsers_emergency_users getUserNames _doAddUsers objectIdsspostUserCreate(sselfsREQUESTsusernamesrolessgroupsspasswordspassword_confirm((sJ/mnt/gmirror/ports/www/zope-exuserfolder/work/exUserFolder/exUserFolder.pysmanage_addUsersB0% scKs|ii||||ioK|id|i }t |i |i |i |ii||n|io|ii||ndS(s) For programatically adding simple users sREQUESTN(sselfscurrentAuthSources createUsersnamespasswordsrolesscurrentPropSourceskwsgetsREQUESTsmaps setdefaultskeyssvaluesscurrentGroupSourcessetGroupsOfUsersgroups(sselfsnamespasswordsrolessdomainssgroupsskwsREQUEST((sJ/mnt/gmirror/ports/www/zope-exuserfolder/work/exUserFolder/exUserFolder.pys _doAddUsers  cKs|ii||||ioK|id|i }t |i |i |i |ii||n|i||i||io|ii||ndS(NsREQUEST(sselfscurrentAuthSources updateUsersnamespasswordsrolesscurrentPropSourceskwsgetsREQUESTsmaps setdefaultskeyssvaluesscache_removeUsersxcache_removeUserscurrentGroupSourcessetGroupsOfUsersgroups(sselfsnamespasswordsrolessdomainssgroupsskwsREQUEST((sJ/mnt/gmirror/ports/www/zope-exuserfolder/work/exUserFolder/exUserFolder.pys _doChangeUsers    cCs|i|dS(N(sselfs deleteUserssnames(sselfsnames((sJ/mnt/gmirror/ports/www/zope-exuserfolder/work/exUserFolder/exUserFolder.pys _doDelUsersscCsct|idjoFtd}|o/|\}}}}|i ||df|q_ndS(NisinitusersManager( slensselfs getUserNamessreadUserAccessFilesinfosnamespasswordsdomainssremote_user_modes _doAddUser(sselfsinfosnamesremote_user_modesdomainsspassword((sJ/mnt/gmirror/ports/www/zope-exuserfolder/work/exUserFolder/exUserFolder.pys_createInitialUsers  cCsg}y|i}xo|D]g}thd|d<d|d<d|d<dd<|i|i|i|i }|i |qWWndk }|i nX|SdS(s5Return a list of user objects or [] if no users existsnamesusernamespasswordsrolessdomainssN(sdatasselfs listUserssitemsspeoplesUserscurrentPropSources cryptPasswordscurrentAuthSourcescurrentGroupSourcesusersappends tracebacks print_exc(sselfspeoplesitemss tracebacksdatasuser((sJ/mnt/gmirror/ports/www/zope-exuserfolder/work/exUserFolder/exUserFolder.pysgetUserss" 6   cCsy|i|}Wn1tidtid|dtit SnX| ot Snxf|D]^}t hd|d<d|d<d|d<dd<|i |i |i|i}|Sq^Wt Sd S( s;Return the named user object or None if no such user existss exUserFolderserror trying to list user %sssnamesusernamespasswordsrolessdomainsN(sselfs listOneUsersnamesitemsszLOGsLOGsERRORssyssexc_infosNonespeoplesUserscurrentPropSources cryptPasswordscurrentAuthSourcescurrentGroupSourcesuser(sselfsnamespeoplesitemssuser((sJ/mnt/gmirror/ports/www/zope-exuserfolder/work/exUserFolder/exUserFolder.pysgetUsers( 6 c Cs|djo>t|ido|ii||SqK|i||Sn|djoD|i||i|d|ddddd |d d d d Sn|o|i ||SndSdS(s Do things to users s Add smanage_addUserForms Delete sREQUESTstitles Users Deletedsmessages Selected Users have been deletedsactionsURL1s /manage_mainstargets manage_mainsN( ssubmitshasattrsselfscurrentAuthSourcesmanage_addUserFormsREQUESTs deleteUserssuseridss MessageDialogs manage_main(sselfssubmitsuseridssREQUEST((sJ/mnt/gmirror/ports/www/zope-exuserfolder/work/exUserFolder/exUserFolder.pysmanage_userActionss   cCs|io| o|i}|i}|ido |ido|d|dfSq|ido |idjo|i||Sq|ido |idjo|i ||Sqn|ot |d djo*t t t t |d d dSnttfSdS( Ns __ac_names __ac_passwords__acis__acaiisbasic is:(sselfs cookie_modesauthsREQUESTsrequestsRESPONSEsresponseshas_keysdecodeBasicCookiesdecodeAdvancedCookieslowerstuplessplits decodestringsNone(sselfsauthsrequestsresponse((sJ/mnt/gmirror/ports/www/zope-exuserfolder/work/exUserFolder/exUserFolder.pysidentify-s     *cCs|idSdS(Ns(sselfsidentify(sselfsrequestsresponse((sJ/mnt/gmirror/ports/www/zope-exuserfolder/work/exUserFolder/exUserFolder.pysdecodeUserCookieCscCs|d} |i| |\}}}} |i|\}} t i dt i d|| f|i} |tj oy"|i|} | otSnWn-t i dt id|dtinX|i|| |} | tjo2|i|o|i|| d|ntSn|i|| ||i|| | |i}|o | |jo&|io|i|SqtSn|i | |||| |o| i|Sn|io|i |i"|||| |o|i"i|Sn|i|| dtSn|i#o|i$oF|i%|| } |i | |||| |o| i|Sqjn|i |i"|||| |o)|io|i"i|SqtSn|i|| d|tSdS( s@ Perform identification, authentication, and authorization. s PUBLISHEDs exUserFoldersidentify returned %s, %ss)error while looking up '%s' on the xcachess login_faileds unauthorizedN(&srequestsvsselfs _getobcontextsascsnsidentifysauthsnamespasswordszLOGsLOGsDEBUGsRESPONSEsresponsesNonesxcache_getUsers xcached_usersERRORssyssexc_infos authenticatesusers listOneUsers challengesrememberscache_addToCaches_emergency_users emergencys_isTops__of__s authorizesroless_nobodyssessionTrackingscurrentPropSourcescreateAnonymousUser(sselfsrequestsauthsrolessascsnames emergencysns xcached_usersusersvspasswordsresponse((sJ/mnt/gmirror/ports/www/zope-exuserfolder/work/exUserFolder/exUserFolder.pysvalidateFsX        /" cCs|i}|o||ijo|Sny%|i||}|o|SnWnHtj o<|i o+|i ||i ||i dtSqnX|i|}|tj o1|i|ii|||iio|SqntSdS(Nssession_expired(sselfs_emergency_users emergencysnames getUserNames cache_getUserspasswordsusersSessionExpiredExceptions idleTimeoutslogoutsrequests challengesRESPONSEsNonesgetUsers authenticatescurrentAuthSources listOneUsersremoteAuthMethod(sselfsnamespasswordsrequests emergencysuser((sJ/mnt/gmirror/ports/www/zope-exuserfolder/work/exUserFolder/exUserFolder.pys authenticates(       s unauthorizedcCs|io| oztidtid||djo*|iddd|idddn|i d|d |i ||ntidtid |dS( Ns exUserFoldersraising LoginRequired for %ss login_faileds__acspaths/s__acasauthFailedCodes LoginRequireds not raising LoginRequired for %s( sselfs cookie_modesauthszLOGsLOGsDEBUGs reason_codesresponses expireCookiesrequestssetsdocLoginRedirect(sselfsrequestsresponses reason_codesauth((sJ/mnt/gmirror/ports/www/zope-exuserfolder/work/exUserFolder/exUserFolder.pys challenges cCs|i}|idjo|i||||n+|idjo|i||||n|io2y|i d=|i d=Wqt j oqXndS(Niis __ac_names __ac_password( srequestsRESPONSEsresponsesselfs cookie_modessetBasicCookiesnamespasswordssetAdvancedCookiesformsKeyError(sselfsnamespasswordsrequestsresponse((sJ/mnt/gmirror/ports/www/zope-exuserfolder/work/exUserFolder/exUserFolder.pysremembers   cCs||i}|id o^|d}|d}||}|ido"dt|d}||}n||d   #                       cCsti|iSdS(s la de da N(s exUserFolders authSourcessauthIdsmanage_addForm(sselfsauthId((sJ/mnt/gmirror/ports/www/zope-exuserfolder/work/exUserFolder/exUserFolder.pysdoAuthSourceFormscCsti|iSdS(s la de da N(s exUserFolders propSourcesspropIdsmanage_addForm(sselfspropId((sJ/mnt/gmirror/ports/www/zope-exuserfolder/work/exUserFolder/exUserFolder.pysdoPropSourceFormscCsti|iSdS(s doot de doo N(s exUserFoldersmembershipSourcessmemberIdsmanage_addForm(sselfsmemberId((sJ/mnt/gmirror/ports/www/zope-exuserfolder/work/exUserFolder/exUserFolder.pysdoMembershipSourceFormscCsti|iSdS(s la de da N(s exUserFolders groupSourcessgroupIdsmanage_addForm(sselfsgroupId((sJ/mnt/gmirror/ports/www/zope-exuserfolder/work/exUserFolder/exUserFolder.pysdoGroupSourceFormscCs<g}x+tiiD]}|iti|qW|SdS(s Hrm I need a docstring N(sls exUserFolders authSourcesskeyssosappend(sselfslso((sJ/mnt/gmirror/ports/www/zope-exuserfolder/work/exUserFolder/exUserFolder.pysgetAuthSourcess cCs<g}x+tiiD]}|iti|qW|SdS(s Hrm I need a docstring N(sls exUserFolders propSourcesskeyssosappend(sselfslso((sJ/mnt/gmirror/ports/www/zope-exuserfolder/work/exUserFolder/exUserFolder.pysgetPropSourcess cCs<g}x+tiiD]}|iti|qW|SdS(s Hrm I need a docstring N(sls exUserFoldersmembershipSourcesskeyssosappend(sselfslso((sJ/mnt/gmirror/ports/www/zope-exuserfolder/work/exUserFolder/exUserFolder.pysgetMembershipSourcess cCs<g}x+tiiD]}|iti|qW|SdS(s Hrm I need a docstring N(sls exUserFolders groupSourcesskeyssosappend(sselfslso((sJ/mnt/gmirror/ports/www/zope-exuserfolder/work/exUserFolder/exUserFolder.pysgetGroupSourcess cCsGh}|i}td}x|tj ot|dox|iD]}t|do|i djo t|doo|i }t||j o |}n|| o4t|do|i }n|}|||sN(sidsshas_keyshave_idstypes StringTypesselfsNoneshasattrs objectValuessos meta_typesids title_and_ids aq_parentsmapsitemsssort(sselfs StringTypesidssoshave_idsid((sJ/mnt/gmirror/ports/www/zope-exuserfolder/work/exUserFolder/exUserFolder.pys MailHostIDss0    0     (sListTypesIntTypesLongTypes FloatTypesNoneTypesDictTypes StringTypecCst|tjodSnt|tjodSnt|tjodSnt|tjodSnt|tjodSnt|tjodSnt|tjodSndSdS( NsListsIntsLongsFloatsNonesDictsStringsUnknown or Restricted( stypesosListTypesIntTypesLongTypes FloatTypesNoneTypesDictTypes StringType(sselfso((sJ/mnt/gmirror/ports/www/zope-exuserfolder/work/exUserFolder/exUserFolder.pysgetVariableType!ss Replace this method with whatever you want to do when a user is created, you can use a Python Script, or External Method, or keep it as a DTML Method if you want to (XsGlobalssApp.UndosAppssocketsossstringsshaswhrandomssysszLOGsDTMLFilesPersistentMappingsjoinsstripssplitslowersuppersfinds OFS.FoldersFoldersOFS.CopySupports CopyContainersbase64s decodestrings encodestringsurllibsquotesunquotes AccessControlsClassSecurityInfosAccessControl.Roles RoleManagersAccessControl.Users BasicUsersBasicUserFoldersreadUserAccessFilesAccessControl.PermissionRolesPermissionRoles AccessControl.ZopeSecurityPolicys_norolessOFS.DTMLMethods DTMLMethodstimesOFS.ObjectManagers REPLACEABLEs Persistences PersistentsPropertyEditorsUsersAnonUsersUserCache.UserCachesGlobalUserCachesGlobalNegativeUserCachesGlobalAdvancedCookieCachesSessionExpiredExceptionsLoginRequiredMessagess+Products.NuxUserGroups.UserFolderWithGroupssBasicGroupFolderMixins_markers ImportErrorsNonescreateTempNamesglobalssmanage_addexUserFolderFormsmanage_addexUserFolders XUFUserCachesXUFNotUserCachesXUFCookieCaches exUserFoldersdoAuthSourceFormsdoPropSourceFormsdoMembershipSourceFormsdoGroupSourceFormsgetAuthSourcessgetPropSourcessgetMembershipSourcessgetGroupSourcess MailHostIDsstypessListTypesIntTypesLongTypes FloatTypesNoneTypesDictTypes StringTypesgetVariableTypes_postUserCreate(Dsunquotesuppers XUFUserCachesIntTypesXUFNotUserCachesgetAuthSourcess_postUserCreatesBasicUserFolders RoleManagersBasicGroupFolderMixinsLongTypesdoMembershipSourceFormsgetPropSourcessPersistentMappingsstrips_norolessFoldersgetVariableTypes MailHostIDssfindsstrings StringTypesgetGroupSourcesscreateTempNames FloatTypes CopyContainersXUFCookieCaches exUserFoldersGlobalUserCachessplits BasicUsersGlobalNegativeUserCachesUsersDictTypes_markersmanage_addexUserFolderForms decodestringsgetMembershipSourcessquotesClassSecurityInfosdoGroupSourceFormsDTMLFiles Persistentssyss DTMLMethodsListTypesGlobalAdvancedCookieCaches encodestringsdoAuthSourceFormslowersreadUserAccessFilesjoinssocketsApps REPLACEABLEsdoPropSourceFormsAnonUserswhrandomsshasGlobalssmanage_addexUserFolderstimeszLOGsLoginRequiredMessagessossSessionExpiredExceptionsNoneTypesPermissionRole((sJ/mnt/gmirror/ports/www/zope-exuserfolder/work/exUserFolder/exUserFolder.pys?Zs^Q+                '     1