zope.authentication obsahuje definici pojmů autentizace pro použití v Zope rámce.
Podrobná dokumentace
Odhlášení Support
Odhlášení podpora je definována jednoduchým rozhraním ILogout:
& Nbsp; >>> od zope.authentication.interfaces import ILogout
že má jedinou metodu "odhlášení".
Současné užívání ILogout je přizpůsobit s IAuthentication komponenty pro ILogout Pro ilustraci, budeme vytvořit jednoduchou implementaci odhlášení, která se přizpůsobuje IAuthentication:
& Nbsp; >>>adapter (IAuthentication)
& Nbsp; ...implementer (ILogout)
& Nbsp; ... třída SimpleLogout (objekt):
& Nbsp; ...
& Nbsp; ... def __init __ (self, auth):
& Nbsp; ... průkaz
& Nbsp; ...
& Nbsp; ... def odhlásit (self, dotaz):
& Nbsp; ... print "Uživatel odhlásili"
& Nbsp; >>> provideAdapter (SimpleLogout)
a něco reprezentovat ověřovací nástroje:
& Nbsp; >>>implementer (IAuthentication)
& Nbsp; ... třída Authentication (objekt):
& Nbsp; ... průkaz
& Nbsp; >>> auth = Authentication ()
Chcete-li provést odhlášení, jsme se přizpůsobit auth na ILogout a volat "logout":
& Nbsp; >>> logout = ILogout (auth)
& Nbsp; >>> logout.logout (TestRequest ())
& Nbsp; Uživatel odhlášen
The "NoLogout" Adapter
Třída:
& Nbsp; >>> od zope.authentication.logout dovozu NoLogout
může být registrována jako poskytovatel nouzovou o ILogout pro IAuthentication komponent, které jsou jinak přizpůsobit ILogout. NoLogout metoda logout je no-op:
& Nbsp; >>> NoLogout (auth) .logout (TestRequest ())
Odhlásit Uživatelské rozhraní
Vzhledem k tomu, některé ověřovací protokoly nejsou oficiálně podporovat odhlášení, nemusí být možné, aby uživatel odhlásit, jakmile on nebo ona se přihlásil. V takových případech by bylo vhodné prezentovat uživatelské rozhraní pro odhlášení.
Vzhledem k tomu, podpora logout je site-konfigurovatelný, Zope poskytuje adaptér, který, když registrovaný, naznačuje, že místo je nakonfigurován pro odhlášení:
& Nbsp; >>> od zope.authentication.logout dovozu LogoutSupported
Tato třída slouží pouze jako vlajka, jak to provádí ILogoutSupported:
& Nbsp; >>> od zope.authentication.interfaces import ILogoutSupported
& Nbsp; >>> ILogoutSupported.implementedBy (LogoutSupported)
& Nbsp; pravda
& Nbsp; >>> request = objekt ()
& Nbsp; >>> ILogoutSupported.providedBy (LogoutSupported (žádost))
& Nbsp; pravda
Hlavní podmínky
Základní podmínky jsou použity na podporu rozhraní prohlížeče pro vyhledávání hlavních zdrojů. Poskytují přístup k tokeny a tituly pro hodnoty. Hlavní pohled termíny používá ověřovací nástroj, aby si hlavní tituly. Pojďme vytvořit ověřovací nástroje ukazují, jak to funguje:
& Nbsp; >>> třída Principal:
& Nbsp; ... def __init __ (self, id, title):
& Nbsp; ... self.id, self.title = id, název
& Nbsp; >>> od zope.interface dovozu realizátora
& Nbsp; >>> od zope.authentication.interfaces import IAuthentication
& Nbsp; >>> od zope.authentication.interfaces import PrincipalLookupError
& Nbsp; >>>implementer (IAuthentication)
& Nbsp; ... třída AuthUtility:
& Nbsp; ... data = {"Jim:" Jim Fulton "," Stephan ":" Stephan Richter '}
& Nbsp; ...
& Nbsp; ... def getPrincipal (self, id):
& Nbsp; ... title = self.data.get (id)
& Nbsp; ... pokud titul není None:
& Nbsp; ... návrat Principal (id, název)
& Nbsp; ... zvýšit PrincipalLookupError
Nyní se musíme nainstalovat ověřovací nástroje:
& Nbsp; >>> od zope.component dovozu provideUtility
& Nbsp; >>> provideUtility (AuthUtility (), IAuthentication)
Potřebujeme zásadní zdroj, takže můžeme vytvořit pohled z něj.
& Nbsp; >>> od zope.component dovozu getUtility
& Nbsp; >>> třída PrincipalSource:
& Nbsp; ... def __contains __ (self, id):
& Nbsp; ... auth = getUtility (IAuthentication)
& Nbsp; ... zkuste:
& Nbsp; ... auth.getPrincipal (id)
& Nbsp; ... kromě PrincipalLookupError:
& Nbsp; ... return false
& Nbsp; ... jinak:
& Nbsp; ... vrátí TRUE
Nyní můžeme vytvořit výhled termíny:
& Nbsp; >>> od zope.authentication.principal dovozních PrincipalTerms
& Nbsp; >>> termíny = PrincipalTerms (PrincipalSource (), None)
Teď se můžeme ptát podmínky zobrazení termínů:
& Nbsp; >>> termín = terms.getTerm ("Stephan")
& Nbsp; >>> term.title
& Nbsp; "Stephan Richter"
& Nbsp; >>> term.token
& Nbsp; "c3RlcGhhbg__"
Ptáme-li se o termín, který neexistuje, dostaneme chybu vyhledávání:
& Nbsp; >>> terms.getTerm ("bob")
& Nbsp; TraceBack (poslední hovor poslední):
& Nbsp; ...
& Nbsp; LookupError: bob
Máme-li token, můžeme získat hlavní id pro ni.
& Nbsp; >>> terms.getValue ("c3RlcGhhbg__")
& Nbsp; "Stephan"
Co je nového v této verzi:
- Broke nevhodnou testování závislosti na zope.component.nextutility.
- (Forward-kompatibilita s zope.component 4.0.0).
- Nahradil zastaralé použití zope.component.adapts s rovnocenným zope.component.adapter dekoratér.
- Nahradil zastaralé použití zope.interface.implements s rovnocenným zope.interface.implementer dekoratér.
- Ukončení podpory pro Python 2.4 a 2.5.
Požadavky na :
- Python
Komentáře nebyl nalezen