src/pyams_security/site.py
changeset 42 07229ac2497b
parent 40 5ff311e24fdf
child 94 01d611aa7891
equal deleted inserted replaced
41:905e30f5467b 42:07229ac2497b
    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)