zope.authentication дава определение на понятията за удостоверяване за използване в Zope Framework.
<Силен> подробна документация
Изход Support
Изход подкрепа се определя от един прост интерфейс ILogout:
& Nbsp; >>> от zope.authentication.interfaces внасят ILogout
че има единен метод на "Изход".
Настоящата употреба на ILogout е да се адаптират на IAuthentication компонент да ILogout За да се убедите, че ще се създаде проста изпълнение Изход, която се адаптира IAuthentication:
& Nbsp; >>>adapter (IAuthentication)
& Nbsp; ...implementer (ILogout)
& Nbsp; ... клас SimpleLogout (обект):
& Nbsp; ...
& Nbsp; ... Def __init __ (самостоятелно, AUTH):
& Nbsp; ... пас
& Nbsp; ...
& Nbsp; ... Def излезете (самостоятелно, молба):
& Nbsp; ... печат "Потребителят е Излязохте"
& Nbsp; >>> provideAdapter (SimpleLogout)
и нещо, което да представлява програма за удостоверяване:
& Nbsp; >>>implementer (IAuthentication)
& Nbsp; ... клас Authentication (обект):
& Nbsp; ... пас
& Nbsp; >>> AUTH = Authentication ()
За да изпълните Изход, ние се адаптират AUTH да ILogout и наричаме "Изход":
& Nbsp; >>> Изход = ILogout (AUTH)
& Nbsp; >>> logout.logout (TestRequest ())
& Nbsp; Потребителят е Излязохте
Адаптер за "NoLogout"
Класът:
& Nbsp; >>> от zope.authentication.logout внос NoLogout
може да бъде регистрирана като аварийната доставчик на ILogout за IAuthentication компоненти, които не са по друг начин се приспособява към ILogout. Метод Изход NoLogout е не-операция:
& Nbsp; >>> NoLogout (AUTH) .logout (TestRequest ())
Изход User Interface
Защото някои протоколи за удостоверяване официално не подкрепят Изход, може да не е възможно за потребителя да излезете след като той или тя са се идентифицирали. В такива случаи би било неуместно да представи потребителски интерфейс за излиза.
Защото подкрепа Изход е сайт конфигурируеми, Zope осигурява адаптер, който, когато регистриран, показва, че сайтът е конфигуриран за изход:
& Nbsp; >>> от zope.authentication.logout внос LogoutSupported
Този клас служи само като знаме, тъй като изпълнява ILogoutSupported:
& Nbsp; >>> от zope.authentication.interfaces внасят ILogoutSupported
& Nbsp; >>> ILogoutSupported.implementedBy (LogoutSupported)
& Nbsp; True
& Nbsp; >>> поискване = обект ()
& Nbsp; >>> ILogoutSupported.providedBy (LogoutSupported (искане))
& Nbsp; True
Принципни условия
Основни термини се използват за подпомагане на интерфейси на браузъра, за да търсите основните източници. Те осигуряват достъп до символите и заглавия за ценности. Принципни условия Екранът използва помощна програма за удостоверяване, за да получите основни заглавия. Да се създаде програма, удостоверяване, за да покаже как става това:
& Nbsp; >>> клас Водещ:
& Nbsp; ... Def __init __ (самостоятелно, ID, заглавието):
& Nbsp; ... self.id, self.title = ID, заглавието
& Nbsp; >>> от zope.interface внос изпълнител
& Nbsp; >>> от zope.authentication.interfaces внасят IAuthentication
& Nbsp; >>> от zope.authentication.interfaces внасят PrincipalLookupError
& Nbsp; >>>implementer (IAuthentication)
& Nbsp; ... клас AuthUtility:
& Nbsp; ... данни = {"Джим": "Джим Fulton", "Стефан": "Stephan Рихтер"}
& Nbsp; ...
& Nbsp; ... Def getPrincipal (самостоятелно, ID):
& Nbsp; ... заглавие = self.data.get (ID)
& Nbsp; ... ако заглавието не е None:
& Nbsp; ... завръщане Principal (ID, заглавие)
& Nbsp; ... повиши PrincipalLookupError
Сега ние трябва да инсталирате помощната програма за удостоверяване:
& Nbsp; >>> от zope.component внос provideUtility
& Nbsp; >>> provideUtility (AuthUtility (), IAuthentication)
Имаме нужда от основен източник, така че ние можем да създадем гледка от нея.
& Nbsp; >>> от zope.component внос getUtility
& Nbsp; >>> клас PrincipalSource:
& Nbsp; ... Def __contains __ (самостоятелно, ID):
& Nbsp; ... AUTH = getUtility (IAuthentication)
& Nbsp; ... опитайте:
& Nbsp; ... auth.getPrincipal (ID)
& Nbsp; ... освен PrincipalLookupError:
& Nbsp; ... върне False
& Nbsp; ... друго:
& Nbsp; ... върне True
Сега ние можем да създадем условия изглед:
& Nbsp; >>> от zope.authentication.principal PrincipalTerms внос
& Nbsp; >>> условия = PrincipalTerms (PrincipalSource (), None)
Сега можем да попитам условията изглед за термини:
& Nbsp; >>> термин = terms.getTerm ("Стефан")
& Nbsp; >>> term.title
& Nbsp; "Stephan Рихтер"
& Nbsp; >>> term.token
& Nbsp; "c3RlcGhhbg__"
Ако попитаме за срок, който не съществува, ние се грешка за справка:
& Nbsp; >>> terms.getTerm ("Боб")
& Nbsp; Traceback (последното повикване последната):
& Nbsp; ...
& Nbsp; LookupError: Боб
Ако имаме символично, може да получите на главния ID за него.
& Nbsp; >>> terms.getValue ("c3RlcGhhbg__")
& Nbsp; "Стефан"
Какво ново в тази версия:
- Счупи неподходящо зависимостта тестване на zope.component.nextutility.
- (Forward-съвместимост с zope.component 4.0.0).
- Заменен отхвърлена ползване zope.component.adapts с равностоен zope.component.adapter декоратор.
- Заменен отхвърлена ползване zope.interface.implements с равностоен zope.interface.implementer декоратор.
- Окачен подкрепа за Python 2.4 и 2.5.
<силни> Изисквания :
- Python
Коментари не е намерена