; 7Cc@sdZdZdkZdkZdkZdkZdkZdkZdkZdk Z dei i fdYZ dei ie fdYZde fdYZeie eieeiedS( s User and session classes s $Rev: 73 $NsMiscDatacBsPtZdZeZdZeZdZeZdZ dZ dZ RS(NcCs ||_dS(N(sfoldersSelfs_MiscData__UserFolder(sSelfsfolder((sM/mnt/gmirror/ports/www/zope-mysqluserfolder/work/mysqlUserFolder/c_classes.pys_set_user_folderscCs&|ii|i|i||dS(N(sSelfs_MiscData__UserFolders miscdata_setsMClasssgetDBIdsmisc_ids misc_tuple(sSelfsmisc_ids misc_tuple((sM/mnt/gmirror/ports/www/zope-mysqluserfolder/work/mysqlUserFolder/c_classes.pys setMiscDatascCs#|ii|i|i|SdS(N(sSelfs_MiscData__UserFolders miscdata_getsMClasssgetDBIdsmisc_id(sSelfsmisc_id((sM/mnt/gmirror/ports/www/zope-mysqluserfolder/work/mysqlUserFolder/c_classes.pys getMiscDatascCs#|ii|i|i|dS(N(sSelfs_MiscData__UserFolders miscdata_delsMClasssgetDBIdsmisc_id(sSelfsmisc_id((sM/mnt/gmirror/ports/www/zope-mysqluserfolder/work/mysqlUserFolder/c_classes.pys delMiscData$scCs|ii|SdS(N(sSelfs_MiscData__UserFolders refresh_user(sSelf((sM/mnt/gmirror/ports/www/zope-mysqluserfolder/work/mysqlUserFolder/c_classes.pys refresh_user(scCs|ii|||SdS(N(sSelfs_MiscData__UserFolders user_logoutsREQUESTsRESPONSEspath(sSelfsREQUESTsRESPONSEspath((sM/mnt/gmirror/ports/www/zope-mysqluserfolder/work/mysqlUserFolder/c_classes.pys logout_user+s( s__name__s __module__s_set_user_foldersNonessetMiscData__roles__s setMiscDatasgetMiscData__roles__s getMiscDatasdelMiscData__roles__s delMiscDatas refresh_users logout_user(((sM/mnt/gmirror/ports/www/zope-mysqluserfolder/work/mysqlUserFolder/c_classes.pysMiscDatas     s mysqlUsercBs.tZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z eZd ZeZd ZeZdZeZdZeZdZeZdZeZdZeZdZeZdZ eZ!dZ"dZ#eZ$dZ%fZ&dZ'dZ(RS(s This class does not know anything about database. It's instances are created by dbConnection object which reads informations from the database. dbConnection object writes user data in the mysqlUser object using __setXXX () methods. Setting Cookis is not a problem because only UserFolder object sets cookies. mysqlUser object keeps dictionary of Cookies objects (keys are strings) and UserFolder uses only 'Session' and 'Global' strings. suserismisc_/mysqlUserFolder/user_iconcCsd|_||_||_dS(Ni(sSelfs refreshedsusernamesrealm(sSelfsusernamesrealm((sM/mnt/gmirror/ports/www/zope-mysqluserfolder/work/mysqlUserFolder/c_classes.pys__init__Ds  cCs|io d|_ndS(Ni(sSelfs refresh_users refreshed(sSelf((sM/mnt/gmirror/ports/www/zope-mysqluserfolder/work/mysqlUserFolder/c_classes.pys __refreshJs cCst|i|i}|i|i|i|i|i|i |i |i |i |i |i|i|i|SdS(N(s mysqlUsersSelfsusernamesrealmsrets_setDBIdsDBIds _setUserNames _setPasswords_mysqlUser__auth_passwords_mysqlUser__auth_password_types _setAuthDatasrolessdomainss _setOtherDatasrealnamesemail(sSelfsret((sM/mnt/gmirror/ports/www/zope-mysqluserfolder/work/mysqlUserFolder/c_classes.pys_copyMscCs||_||_dS(N(srealnamesSelfsemail(sSelfsrealnamesemail((sM/mnt/gmirror/ports/www/zope-mysqluserfolder/work/mysqlUserFolder/c_classes.pys _setOtherDataXs cCsut|tgjo dnt|tgjot|tfjo dn||_||_dS(Ns%_setAuthData (): roles is not a list.s'_setAuthData (): domains is not a list.(stypesrolessdomainssSelf(sSelfsrolessdomains((sM/mnt/gmirror/ports/www/zope-mysqluserfolder/work/mysqlUserFolder/c_classes.pys _setAuthData\s  2  cCs ||_dS(N(sIdsSelfsDBId(sSelfsId((sM/mnt/gmirror/ports/www/zope-mysqluserfolder/work/mysqlUserFolder/c_classes.pys_setDBIdfscCs||_||_dS(N(spasswordsSelfs_mysqlUser__auth_passwords password_types_mysqlUser__auth_password_type(sSelfspasswords password_type((sM/mnt/gmirror/ports/www/zope-mysqluserfolder/work/mysqlUserFolder/c_classes.pys _setPasswordis cCs ||_dS(N(susernamesSelf(sSelfsusername((sM/mnt/gmirror/ports/www/zope-mysqluserfolder/work/mysqlUserFolder/c_classes.pys _setUserNamemscCs |iSdS(N(sSelfsusername(sSelf((sM/mnt/gmirror/ports/www/zope-mysqluserfolder/work/mysqlUserFolder/c_classes.pys getUserNameqscCs |iSdS(s* For the timebeing, just return username. N(sSelfsusername(sSelf((sM/mnt/gmirror/ports/www/zope-mysqluserfolder/work/mysqlUserFolder/c_classes.pysgetIduscCs |iSdS(N(sSelfsrealm(sSelf((sM/mnt/gmirror/ports/www/zope-mysqluserfolder/work/mysqlUserFolder/c_classes.pysgetRealmzscCs$|i o|in|iSdS(N(sSelfs refresheds_mysqlUser__refreshsrealname(sSelf((sM/mnt/gmirror/ports/www/zope-mysqluserfolder/work/mysqlUserFolder/c_classes.pys getRealName~s cCst|iSdS(N(stuplesSelfsroles(sSelf((sM/mnt/gmirror/ports/www/zope-mysqluserfolder/work/mysqlUserFolder/c_classes.pysgetRolesscCst|iSdS(N(stuplesSelfsdomains(sSelf((sM/mnt/gmirror/ports/www/zope-mysqluserfolder/work/mysqlUserFolder/c_classes.pys getDomainsscCsti|iSdS(N(sstringsjoinsSelfsdomains(sSelf((sM/mnt/gmirror/ports/www/zope-mysqluserfolder/work/mysqlUserFolder/c_classes.pys getDomainsStrscCs$|i o|in|iSdS(N(sSelfs refresheds_mysqlUser__refreshsemail(sSelf((sM/mnt/gmirror/ports/www/zope-mysqluserfolder/work/mysqlUserFolder/c_classes.pysgetEMails cCs |iSdS(N(sSelfsDBId(sSelf((sM/mnt/gmirror/ports/www/zope-mysqluserfolder/work/mysqlUserFolder/c_classes.pysgetDBIdscCs|itijotiddSn|i}|tijotiddSn|djo|i |j}nt i ||i |}|SdS(Ns4mysqlUser.authenticate_password (): VDB_INVALID_ID. is?mysqlUser.authenticate_password (): VDB_INVALID_PASSWORD_TYPE. (sSelfsDBIdscfgsVDB_INVALID_IDsutils log_debugs_mysqlUser__auth_password_typesptypesVDB_INVALID_PASSWORD_TYPEs_mysqlUser__auth_passwordspasswordsrets passwordsscheck(sSelfspasswordsREQUESTsptypesret((sM/mnt/gmirror/ports/www/zope-mysqluserfolder/work/mysqlUserFolder/c_classes.pysauthenticate_passwords    cCsJ|igjodSn|idgjodSnti|i|SdS(Nis*(sSelfsdomainssutilsvalidate_domain_specsREQUEST(sSelfsREQUEST((sM/mnt/gmirror/ports/www/zope-mysqluserfolder/work/mysqlUserFolder/c_classes.pyscheck_domain_specs cCs |iSdS(N(sSelfs_mysqlUser__auth_password_type(sSelf((sM/mnt/gmirror/ports/www/zope-mysqluserfolder/work/mysqlUserFolder/c_classes.pysgetPasswordTypescCstiidS(N(s AccessControlsUsersNotImplemented(sSelf((sM/mnt/gmirror/ports/www/zope-mysqluserfolder/work/mysqlUserFolder/c_classes.pys authenticatescCs |iSdS(N(sSelfs_mysqlUser__auth_password(sSelf((sM/mnt/gmirror/ports/www/zope-mysqluserfolder/work/mysqlUserFolder/c_classes.pys _getPasswords()s__name__s __module__s__doc__sMClasssisAmysqlUserObjectsicons__init__s_mysqlUser__refreshs_copys _setOtherDatas _setAuthDatas_setDBIds _setPasswords _setUserNamesNonesgetUserName__roles__s getUserNamesgetId__roles__sgetIdsgetRealm__roles__sgetRealmsgetRealName__roles__s getRealNamesgetRoles__roles__sgetRolessgetDomains__roles__s getDomainssgetDomainsStr__roles__s getDomainsStrsgetEMail__roles__sgetEMailsgetDBId__roles__sgetDBIdsauthenticate_password__roles__sauthenticate_passwordscheck_domain_specsgetPasswordType__roles__sgetPasswordTypesauthenticate__roles__s authenticates _getPassword(((sM/mnt/gmirror/ports/www/zope-mysqluserfolder/work/mysqlUserFolder/c_classes.pys mysqlUser1sL                    s mysqlSessioncBsttZdZdZdZdZdZdZeZ dZ eZ dZ eZ dZeZd ZRS( s Session class. ssessioncCsti|_ti|_dS(N(scfgsVDB_INVALID_IDsSelfsuser_idsid(sSelf((sM/mnt/gmirror/ports/www/zope-mysqluserfolder/work/mysqlUserFolder/c_classes.pys__init__s cCs ||_dS(N(suser_idsSelf(sSelfsuser_id((sM/mnt/gmirror/ports/www/zope-mysqluserfolder/work/mysqlUserFolder/c_classes.pys _setUserIdscCs ||_dS(N(sidsSelf(sSelfsid((sM/mnt/gmirror/ports/www/zope-mysqluserfolder/work/mysqlUserFolder/c_classes.pys_setIdscCs)t}|i|_|i|_|SdS(N(s mysqlSessionsssSelfsuser_idsid(sSelfss((sM/mnt/gmirror/ports/www/zope-mysqluserfolder/work/mysqlUserFolder/c_classes.pys_copys   cCs |iSdS(N(sSelfsid(sSelf((sM/mnt/gmirror/ports/www/zope-mysqluserfolder/work/mysqlUserFolder/c_classes.pysgetIdscCs |iSdS(N(sSelfsid(sSelf((sM/mnt/gmirror/ports/www/zope-mysqluserfolder/work/mysqlUserFolder/c_classes.pysgetDBIdscCs |iSdS(N(sSelfsuser_id(sSelf((sM/mnt/gmirror/ports/www/zope-mysqluserfolder/work/mysqlUserFolder/c_classes.pys getUserIdscCs|itijSdS(N(sSelfsuser_idscfgsVDB_INVALID_ID(sSelf((sM/mnt/gmirror/ports/www/zope-mysqluserfolder/work/mysqlUserFolder/c_classes.pysisAnonymousUsers(s__name__s __module__s__doc__sMClasss__init__s _setUserIds_setIds_copysNonesgetId__roles__sgetIdsgetDBId__roles__sgetDBIdsgetUserId__roles__s getUserIdsisAnonymousUser__roles__sisAnonymousUser(((sM/mnt/gmirror/ports/www/zope-mysqluserfolder/work/mysqlUserFolder/c_classes.pys mysqlSessions        (s__doc__s __version__sGlobalss AccessControlstimesstringscfgsutilsdbs passwordssRoles RoleManagersMiscDatasUsers BasicUsers mysqlUsers mysqlSessionsdefault__class_init__( s AccessControls passwordssstringsMiscDatascfgsdbsutils mysqlSessionsGlobalsstimes mysqlUsers __version__((sM/mnt/gmirror/ports/www/zope-mysqluserfolder/work/mysqlUserFolder/c_classes.pys?s$+