src/pyams_content/root/__init__.py
changeset 705 6490cb72a126
parent 594 9386c04e9dec
child 714 dd257ef7fcaa
equal deleted inserted replaced
704:9a84fae4ec97 705:6490cb72a126
    27 from pyams_content.root.interfaces import ISiteRootRoles, ISiteRootConfiguration, ISiteRoot, \
    27 from pyams_content.root.interfaces import ISiteRootRoles, ISiteRootConfiguration, ISiteRoot, \
    28     ISiteRootToolsConfiguration, ISiteRootBackOfficeConfiguration
    28     ISiteRootToolsConfiguration, ISiteRootBackOfficeConfiguration
    29 from pyams_form.interfaces.form import IFormContextPermissionChecker
    29 from pyams_form.interfaces.form import IFormContextPermissionChecker
    30 from pyams_portal.interfaces import IPortalContext
    30 from pyams_portal.interfaces import IPortalContext
    31 from pyams_security.interfaces import IDefaultProtectionPolicy, IGrantedRoleEvent, ISecurityManager
    31 from pyams_security.interfaces import IDefaultProtectionPolicy, IGrantedRoleEvent, ISecurityManager
       
    32 from pyams_skin.interfaces.configuration import IConfiguration, IBackOfficeConfiguration
    32 from pyams_utils.interfaces import MANAGE_SYSTEM_PERMISSION
    33 from pyams_utils.interfaces import MANAGE_SYSTEM_PERMISSION
    33 from pyams_utils.interfaces.site import IConfigurationFactory, IBackOfficeConfigurationFactory, ISiteRootFactory
    34 from pyams_utils.interfaces.site import ISiteRootFactory
    34 
    35 
    35 # import packages
    36 # import packages
    36 from persistent import Persistent
    37 from persistent import Persistent
    37 from pyams_security.property import RolePrincipalsFieldProperty
    38 from pyams_security.property import RolePrincipalsFieldProperty
    38 from pyams_security.security import ProtectedObject
    39 from pyams_security.security import ProtectedObject
    39 from pyams_skin.configuration import Configuration, BackOfficeConfiguration
    40 from pyams_skin.configuration import Configuration, BackOfficeConfiguration
    40 from pyams_skin.skin import UserSkinnableContent
    41 from pyams_skin.skin import UserSkinnableContent
    41 from pyams_utils.adapter import adapter_config, ContextAdapter, get_annotation_adapter
    42 from pyams_utils.adapter import adapter_config, ContextAdapter, get_annotation_adapter
       
    43 from pyams_utils.factory import factory_config
    42 from pyams_utils.registry import get_utility, utility_config
    44 from pyams_utils.registry import get_utility, utility_config
    43 from pyams_utils.site import BaseSiteRoot
    45 from pyams_utils.site import BaseSiteRoot
    44 from pyams_utils.traversing import get_parent
    46 from pyams_utils.traversing import get_parent
    45 from pyramid.events import subscriber
    47 from pyramid.events import subscriber
    46 from zope.interface import implementer
    48 from zope.interface import implementer
    68     def __new__(cls):
    70     def __new__(cls):
    69         return SiteRoot
    71         return SiteRoot
    70 
    72 
    71 
    73 
    72 @implementer(ISiteRootConfiguration)
    74 @implementer(ISiteRootConfiguration)
       
    75 @factory_config(provided=IConfiguration)
    73 class SiteRootConfiguration(Configuration):
    76 class SiteRootConfiguration(Configuration):
    74     """Site root configuration"""
    77     """Site root configuration"""
    75 
    78 
    76 
    79 
    77 @adapter_config(context=ISiteRoot, provides=IConfigurationFactory)
       
    78 def site_root_configuration_factory(context):
       
    79     return SiteRootConfiguration
       
    80 
       
    81 
       
    82 @implementer(ISiteRootBackOfficeConfiguration)
    80 @implementer(ISiteRootBackOfficeConfiguration)
       
    81 @factory_config(provided=IBackOfficeConfiguration)
    83 class SiteRootBackOfficeConfiguration(BackOfficeConfiguration):
    82 class SiteRootBackOfficeConfiguration(BackOfficeConfiguration):
    84     """Site root back-office configuration"""
    83     """Site root back-office configuration"""
    85 
       
    86 
       
    87 @adapter_config(context=ISiteRoot, provides=IBackOfficeConfigurationFactory)
       
    88 def site_root_back_office_configuration_factory(context):
       
    89     return SiteRootBackOfficeConfiguration
       
    90 
    84 
    91 
    85 
    92 @subscriber(IGrantedRoleEvent)
    86 @subscriber(IGrantedRoleEvent)
    93 def handle_granted_role(event):
    87 def handle_granted_role(event):
    94     """Add principals to operators group when a role is granted"""
    88     """Add principals to operators group when a role is granted"""