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""" |