17 |
17 |
18 # import interfaces |
18 # import interfaces |
19 from pyams_security.interfaces import ISecurityManager |
19 from pyams_security.interfaces import ISecurityManager |
20 from pyams_utils.interfaces.site import ISiteGenerations |
20 from pyams_utils.interfaces.site import ISiteGenerations |
21 from zope.lifecycleevent.interfaces import IObjectCreatedEvent |
21 from zope.lifecycleevent.interfaces import IObjectCreatedEvent |
|
22 from zope.principalannotation.interfaces import IPrincipalAnnotationUtility |
22 from zope.site.interfaces import INewLocalSite |
23 from zope.site.interfaces import INewLocalSite |
23 |
24 |
24 # import packages |
25 # import packages |
25 from pyams_security.plugin.admin import AdminAuthenticationPlugin |
26 from pyams_security.plugin.admin import AdminAuthenticationPlugin |
26 from pyams_security.utility import SecurityManager |
27 from pyams_security.utility import SecurityManager |
27 from pyams_utils.registry import utility_config |
28 from pyams_utils.registry import utility_config |
28 from pyams_utils.site import check_required_utilities |
29 from pyams_utils.site import check_required_utilities |
29 from pyramid.events import subscriber |
30 from pyramid.events import subscriber |
30 from pyramid.threadlocal import get_current_registry |
31 from pyramid.threadlocal import get_current_registry |
31 from zope.lifecycleevent import ObjectCreatedEvent |
32 from zope.lifecycleevent import ObjectCreatedEvent |
|
33 from zope.principalannotation.utility import PrincipalAnnotationUtility |
32 |
34 |
33 |
35 |
34 REQUIRED_UTILITIES = ((ISecurityManager, '', SecurityManager, 'Security manager'),) |
36 REQUIRED_UTILITIES = ((ISecurityManager, '', SecurityManager, 'Security manager'), |
|
37 (IPrincipalAnnotationUtility, '', PrincipalAnnotationUtility, 'User profiles')) |
35 |
38 |
36 |
39 |
37 @subscriber(INewLocalSite) |
40 @subscriber(INewLocalSite) |
38 def handle_new_local_site(event): |
41 def handle_new_local_site(event): |
39 """Create a new negotiator when a site is created""" |
42 """Create a new security manager when a site is created""" |
40 site = event.manager.__parent__ |
43 site = event.manager.__parent__ |
41 check_required_utilities(site, REQUIRED_UTILITIES) |
44 check_required_utilities(site, REQUIRED_UTILITIES) |
42 |
45 |
43 |
46 |
44 @utility_config(name='PyAMS security', provides=ISiteGenerations) |
47 @utility_config(name='PyAMS security', provides=ISiteGenerations) |