equal
deleted
inserted
replaced
7 # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED |
7 # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED |
8 # WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
8 # WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
9 # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS |
9 # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS |
10 # FOR A PARTICULAR PURPOSE. |
10 # FOR A PARTICULAR PURPOSE. |
11 # |
11 # |
12 from zope.component.interfaces import ISite |
|
13 from pyams_utils.traversing import get_parent |
|
14 |
12 |
15 __docformat__ = 'restructuredtext' |
13 __docformat__ = 'restructuredtext' |
16 |
14 |
17 |
15 |
18 # import standard library |
16 # import standard library |
28 # import interfaces |
26 # import interfaces |
29 from pyams_security.interfaces import ISecurityManager, IUsersFolderPlugin, ILocalUser, IPrincipalInfo |
27 from pyams_security.interfaces import ISecurityManager, IUsersFolderPlugin, ILocalUser, IPrincipalInfo |
30 from pyams_security.interfaces.notification import INotificationSettings |
28 from pyams_security.interfaces.notification import INotificationSettings |
31 from pyramid_chameleon.interfaces import IChameleonTranslate |
29 from pyramid_chameleon.interfaces import IChameleonTranslate |
32 from pyramid_mailer.interfaces import IMailer |
30 from pyramid_mailer.interfaces import IMailer |
|
31 from zope.component.interfaces import ISite |
33 from zope.lifecycleevent.interfaces import IObjectAddedEvent |
32 from zope.lifecycleevent.interfaces import IObjectAddedEvent |
34 from zope.password.interfaces import IPasswordManager |
33 from zope.password.interfaces import IPasswordManager |
35 from zope.schema.interfaces import IVocabularyRegistry |
34 from zope.schema.interfaces import IVocabularyRegistry |
36 |
35 |
37 # import packages |
36 # import packages |
40 from pyams_security.principal import PrincipalInfo |
39 from pyams_security.principal import PrincipalInfo |
41 from pyams_utils.adapter import adapter_config |
40 from pyams_utils.adapter import adapter_config |
42 from pyams_utils.html import html_to_text |
41 from pyams_utils.html import html_to_text |
43 from pyams_utils.registry import query_utility, get_utility |
42 from pyams_utils.registry import query_utility, get_utility |
44 from pyams_utils.request import check_request |
43 from pyams_utils.request import check_request |
|
44 from pyams_utils.traversing import get_parent |
45 from pyramid.events import subscriber |
45 from pyramid.events import subscriber |
46 from pyramid_mailer.message import Message, Attachment |
46 from pyramid_mailer.message import Message, Attachment |
47 from zope.container.contained import Contained |
47 from zope.container.contained import Contained |
48 from zope.container.folder import Folder |
48 from zope.container.folder import Folder |
49 from zope.interface import implementer, provider, Invalid |
49 from zope.interface import implementer, provider, Invalid |
156 def check_login(self, login): |
156 def check_login(self, login): |
157 if not login: |
157 if not login: |
158 return False |
158 return False |
159 return login not in self |
159 return login not in self |
160 |
160 |
161 def get_principal(self, principal_id): |
161 def get_principal(self, principal_id, info=True): |
162 if not self.enabled: |
162 if not self.enabled: |
163 return None |
163 return None |
164 if not principal_id.startswith(self.prefix + ':'): |
164 if not principal_id.startswith(self.prefix + ':'): |
165 return None |
165 return None |
166 prefix, login = principal_id.split(':', 1) |
166 prefix, login = principal_id.split(':', 1) |
167 user = self.get(login) |
167 user = self.get(login) |
168 if user is not None: |
168 if user is not None: |
169 return PrincipalInfo(id='{prefix}:{login}'.format(prefix=self.prefix, |
169 if info: |
170 login=user.login), |
170 return PrincipalInfo(id='{prefix}:{login}'.format(prefix=self.prefix, |
171 title=user.title) |
171 login=user.login), |
|
172 title=user.title) |
|
173 else: |
|
174 return user |
172 |
175 |
173 def get_all_principals(self, principal_id): |
176 def get_all_principals(self, principal_id): |
174 if not self.enabled: |
177 if not self.enabled: |
175 return set() |
178 return set() |
176 if self.get_principal(principal_id) is not None: |
179 if self.get_principal(principal_id) is not None: |