paula: removed old per-repo trunk subdirs
[paula.git] / paula.authentication / src / paula / authentication / interfaces.py
blobded7340c6eb967c971505bd762fa9e729f4d6911
1 # Copyright (c) 2008 by Florian Friesdorf
3 # GNU Affero General Public License (AGPL)
5 # This program is free software; you can redistribute it and/or modify
6 # it under the terms of the GNU Affero General Public License as
7 # published by the Free Software Foundation; either version 3 of the
8 # License, or (at your option) any later version.
10 # This program is distributed in the hope that it will be useful,
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 # GNU Affero General Public License for more details.
15 # You should have received a copy of the GNU Affero General Public
16 # License along with this program. If not, see
17 # <http://www.gnu.org/licenses/>.
18 """
19 """
20 __author__ = "Florian Friesdorf <flo@chaoflow.net>"
21 __docformat__ = "plaintext"
23 from zope.interface import Interface
24 from zope.schema import TextLine
26 from zope.app.authentication.interfaces import IAuthenticatorPlugin as IPauAP
27 from zope.app.authentication.interfaces import ICredentialsPlugin
29 class IAuthenticatorPlugin(IPauAP):
30 """A paula authenticator plugin for PAU
31 """
33 class ILocalAuthenticatorPlugin(IAuthenticatorPlugin):
34 """A context-aware paula authenticator plugin for PAU
35 """
37 class ICredentialsFromMappingPlugin(ICredentialsPlugin):
38 """Marks a credentials plugin, that simply returns a mapping it
39 receives, after making sure, that it provides IRequest
41 This is needed by PAU to find its factories.
42 """
45 class IPrincipalId(Interface):
46 """A principals unique id
47 """
48 id = TextLine(
49 title=u"Id",
50 description=u"The unique principal id.",
51 required=True,
55 class IAuthProvider(IPrincipalId):
56 """
57 """
58 def validate(login=u"", password=u""):
59 """validates the password against a stored password
60 """
63 class IAuthProviders(Interface):
64 """auth providers for authenticatable principals known to paula
65 """
66 def __getitem__(id):
67 """returns a paula IAuthProvider object for the principal id
68 """