;ò êDc@s6dZdkZdklZlZdklZdklZdklZdkl Z dkl Z dk l Z d efd „ƒYZd efd „ƒYZd eifd„ƒYZdklZdk lZdfd„ƒYZdfd„ƒYZdklZdklZdklZdklZd„ZdS(ss How to access the session from guard's logout function, with an example of remembering values within the session. N(s implementss Interface(sguard(srend(sloaders(stags(surl(sISessions IValueHistorycBstZRS(N(s__name__s __module__(((sX/mnt/gmirror/ports/www/py-nevow/work/Nevow-0.9.18/examples/logout_guard/logout_guard2.pys IValueHistoryss ISessionValuecBstZRS(N(s__name__s __module__(((sX/mnt/gmirror/ports/www/py-nevow/work/Nevow-0.9.18/examples/logout_guard/logout_guard2.pys ISessionValuessMyRootResourcec Bs©tZdZeZd„Zd„Zeie i e i e i defe i defe i e ideiƒde i e ideiieiƒƒdfƒZRS(sSome resource.cCst|ƒ}tiddƒ}|it|ƒ|it ƒ}|t jo g}n|i |ƒ|it |ƒt |ƒSdS(Niid(sISessionsctxssessionsrandoms randrangesnumbers setComponents ISessionValues getComponents IValueHistoryshistorysNonesappendsstr(sselfsctxsdatasnumberssessionshistory((sX/mnt/gmirror/ports/www/py-nevow/work/Nevow-0.9.18/examples/logout_guard/logout_guard2.pysrender_randomNumbers    cCs3t|ƒ}|itdgƒ}t|d ƒSdS(Nsdefaultiÿÿÿÿ(sISessionsctxssessions getComponents IValueHistoryshistorysrepr(sselfsctxsdatassessionshistory((sX/mnt/gmirror/ports/www/py-nevow/work/Nevow-0.9.18/examples/logout_guard/logout_guard2.pysrender_valueHistory,s sYour random number is: sPrevious random numbers were: shrefsClick here to get a new numbersClick here to log out(s__name__s __module__s__doc__sTruesaddSlashsrender_randomNumbersrender_valueHistorysloaderssstansTshtmlsbodyspsdivsasurlshereschildsguards LOGOUT_AVATARs docFactory(((sX/mnt/gmirror/ports/www/py-nevow/work/Nevow-0.9.18/examples/logout_guard/logout_guard2.pysMyRootResources   (sIRealm(s IResourcesMindcBstZd„ZRS(NcCs||_||_dS(N(srequestsselfs credentials(sselfsrequests credentials((sX/mnt/gmirror/ports/www/py-nevow/work/Nevow-0.9.18/examples/logout_guard/logout_guard2.pys__init__Cs (s__name__s __module__s__init__(((sX/mnt/gmirror/ports/www/py-nevow/work/Nevow-0.9.18/examples/logout_guard/logout_guard2.pysMindBssMyRealmcBs$tZeeƒd„Zd„ZRS(NcGs7t|jo ttƒ|i||ƒfSnt‚dS(N(s IResources interfacessMyRootResourcesselfs createLogouts avatar_idsmindsNotImplementedError(sselfs avatar_idsminds interfaces((sX/mnt/gmirror/ports/www/py-nevow/work/Nevow-0.9.18/examples/logout_guard/logout_guard2.pys requestAvatarJs  cs‡‡d†}|SdS(NcsIˆiiƒ}|itƒ}|itƒdGˆGdG|GHdG|GHdS(NsLogging avatarsout of sessionsRandom numbers generated were( smindsrequests getSessionssessions getComponents IValueHistorysvaluessunsetComponents avatar_id(svaluesssession(sminds avatar_id(sX/mnt/gmirror/ports/www/py-nevow/work/Nevow-0.9.18/examples/logout_guard/logout_guard2.pyslogoutTs  (slogout(sselfs avatar_idsmindslogout((s avatar_idsmindsX/mnt/gmirror/ports/www/py-nevow/work/Nevow-0.9.18/examples/logout_guard/logout_guard2.pys createLogoutSs(s__name__s __module__s implementssIRealms requestAvatars createLogout(((sX/mnt/gmirror/ports/www/py-nevow/work/Nevow-0.9.18/examples/logout_guard/logout_guard2.pysMyRealmGs  (sPortal(sAllowAnonymousAccess(s IAnonymous(sSessionWrappercCs6ttƒƒ}|itƒtƒt|dtƒSdS(Ns mindFactory(sPortalsMyRealmsportalsregisterCheckersAllowAnonymousAccesss IAnonymoussSessionWrappersMind(sportal((sX/mnt/gmirror/ports/www/py-nevow/work/Nevow-0.9.18/examples/logout_guard/logout_guard2.pyscreateResourcees(s__doc__srandomszope.interfaces implementss InterfacesnevowsguardsrendsloadersstagssTsurls nevow.inevowsISessions IValueHistorys ISessionValuesPagesMyRootResourcestwisted.cred.portalsIRealms IResourcesMindsMyRealmsPortalstwisted.cred.checkerssAllowAnonymousAccessstwisted.cred.credentialss IAnonymouss nevow.guardsSessionWrapperscreateResource(s implementssMyRealms ISessionValues IResourcesrendsurlsIRealmsrandomsMinds IAnonymoussloaderssAllowAnonymousAccesssguardsPortalsTscreateResources InterfacesSessionWrappersMyRootResources IValueHistorysISession((sX/mnt/gmirror/ports/www/py-nevow/work/Nevow-0.9.18/examples/logout_guard/logout_guard2.pys?s(       &