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/>.
20 __author__
= "Florian Friesdorf <flo@chaoflow.net>"
21 __docformat__
= "plaintext"
23 from zope
.interface
import Interface
, alsoProvides
24 from zope
.schema
import List
, Object
, TextLine
, Password
26 from paula
.properties
.interfaces
import IPropertyInterface
29 class IBasicUser(Interface
):
32 Everything needed to do authentication, nothing more or less.
36 description
=u
"The user's login name (unique within an"
37 "authentication realm).",
43 description
=u
"The user password.",
48 class IMinimalPloneProperties(Interface
):
49 """Minimal properties for plone
53 description
=u
"The user's realname.",
59 description
=u
"Email for user contact and password reset.",
63 alsoProvides(IMinimalPloneProperties
, IPropertyInterface
)
66 class IMinimalPloneUser(IBasicUser
,IMinimalPloneProperties
):
67 """A user with minimal properties needed for plone
71 class IBasicGroup(Interface
):
72 """Basic group content type
74 Everything needed to store information about group members in one place.
75 This is a good thing to inherit from, for more sophisticated content types.
80 description
=u
"The group name (unique within an authentication realm).",
86 description
=u
"List of member principal ids.",