24 ISiteRootToolsConfiguration, ISiteRootBackOfficeConfiguration |
24 ISiteRootToolsConfiguration, ISiteRootBackOfficeConfiguration |
25 from pyams_form.interfaces.form import IFormContextPermissionChecker |
25 from pyams_form.interfaces.form import IFormContextPermissionChecker |
26 from pyams_portal.interfaces import IPortalContext |
26 from pyams_portal.interfaces import IPortalContext |
27 from pyams_security.interfaces import IDefaultProtectionPolicy, IGrantedRoleEvent, ISecurityManager |
27 from pyams_security.interfaces import IDefaultProtectionPolicy, IGrantedRoleEvent, ISecurityManager |
28 from pyams_utils.interfaces import MANAGE_SYSTEM_PERMISSION |
28 from pyams_utils.interfaces import MANAGE_SYSTEM_PERMISSION |
29 from pyams_utils.interfaces.site import IConfigurationFactory, IBackOfficeConfigurationFactory |
29 from pyams_utils.interfaces.site import IConfigurationFactory, IBackOfficeConfigurationFactory, ISiteRootFactory |
30 from zope.annotation.interfaces import IAnnotations |
30 from zope.annotation.interfaces import IAnnotations |
31 |
31 |
32 # import packages |
32 # import packages |
33 from persistent import Persistent |
33 from persistent import Persistent |
34 from pyams_security.property import RolePrincipalsFieldProperty |
34 from pyams_security.property import RolePrincipalsFieldProperty |
35 from pyams_security.security import ProtectedObject |
35 from pyams_security.security import ProtectedObject |
36 from pyams_skin.configuration import Configuration, BackOfficeConfiguration |
36 from pyams_skin.configuration import Configuration, BackOfficeConfiguration |
37 from pyams_skin.skin import UserSkinnableContent |
37 from pyams_skin.skin import UserSkinnableContent |
38 from pyams_utils.adapter import adapter_config, ContextAdapter |
38 from pyams_utils.adapter import adapter_config, ContextAdapter |
39 from pyams_utils.registry import get_utility |
39 from pyams_utils.registry import get_utility, utility_config |
40 from pyams_utils.site import BaseSiteRoot |
40 from pyams_utils.site import BaseSiteRoot |
41 from pyams_utils.traversing import get_parent |
41 from pyams_utils.traversing import get_parent |
42 from pyramid.events import subscriber |
42 from pyramid.events import subscriber |
43 from zope.interface import implementer |
43 from zope.interface import implementer |
44 |
44 |
53 |
53 |
54 managers = RolePrincipalsFieldProperty(ISiteRootRoles['managers']) |
54 managers = RolePrincipalsFieldProperty(ISiteRootRoles['managers']) |
55 webmasters = RolePrincipalsFieldProperty(ISiteRootRoles['webmasters']) |
55 webmasters = RolePrincipalsFieldProperty(ISiteRootRoles['webmasters']) |
56 operators = RolePrincipalsFieldProperty(ISiteRootRoles['operators']) |
56 operators = RolePrincipalsFieldProperty(ISiteRootRoles['operators']) |
57 templates_managers = RolePrincipalsFieldProperty(ISiteRootRoles['templates_managers']) |
57 templates_managers = RolePrincipalsFieldProperty(ISiteRootRoles['templates_managers']) |
|
58 |
|
59 |
|
60 @utility_config(provides=ISiteRootFactory) |
|
61 class SiteRootFactory(object): |
|
62 """Default site root factory""" |
|
63 |
|
64 def __new__(cls): |
|
65 return SiteRoot |
58 |
66 |
59 |
67 |
60 @implementer(ISiteRootConfiguration) |
68 @implementer(ISiteRootConfiguration) |
61 class SiteRootConfiguration(Configuration): |
69 class SiteRootConfiguration(Configuration): |
62 """Site root configuration""" |
70 """Site root configuration""" |