def create_permission_from_permission_directive(permission, event): """When a new IPermission utility is registered (via the <permission /> directive), create the equivalent Zope2 style permission. """ # Zope 2 uses string, not unicode yet zope2_permission = str(permission.title) addPermission(zope2_permission)
def _registerPermission(): permission = Permission(id, title, '') config.registerUtility(permission, IPermission, id) z2_permission = str(title) if roles: addPermission(z2_permission, default_roles=tuple(roles)) else: addPermission(z2_permission)
def after(self): permission = Permission(self.id, self.title, self.description) utility(self.context, IPermission, permission, name=self.id) zope2_permission = str(self.title) if self.roles: addPermission(zope2_permission, default_roles=tuple(self.roles)) else: addPermission(zope2_permission)
def initialize(context): """Initializer called when used as a Zope 2 product.""" logger.info("*** Initializing SENAITE PATIENT Customization package ***") # Set add permissions for typename in DEFAULT_TYPES: permid = "Add" + typename permname = getattr(permissions, permid) security.declarePublic(permid) addPermission(permname, default_roles=DEFAULT_ROLES)
def setDefaultRoles(permission, roles): ''' Sets the defaults roles for a permission. ''' if addPermission is not None: addPermission(permission, roles) else: # BBB This is in AccessControl starting in Zope 2.13 import Products registered = _registeredPermissions if not registered.has_key(permission): registered[permission] = 1 Products.__ac_permissions__=( Products.__ac_permissions__+((permission,(),roles),)) mangled = pname(permission) setattr(ApplicationDefaultPermissions, mangled, roles)
def setDefaultRoles(permission, roles): ''' Sets the defaults roles for a permission. ''' if addPermission is not None: addPermission(permission, roles) else: # BBB This is in AccessControl starting in Zope 2.13 import Products registered = _registeredPermissions if not registered.has_key(permission): registered[permission] = 1 Products.__ac_permissions__ = (Products.__ac_permissions__ + ((permission, (), roles), )) mangled = pname(permission) setattr(ApplicationDefaultPermissions, mangled, roles)
def setDefaultRoles(permission, roles): """ Set the defaults roles for a permission. """ if addPermission is not None: addPermission(permission, roles) else: # BBB This is in AccessControl starting in Zope 2.13 from AccessControl.Permission import _registeredPermissions from AccessControl.Permission import pname from AccessControl.Permission import ApplicationDefaultPermissions import Products registered = _registeredPermissions if permission not in registered: registered[permission] = 1 Products.__ac_permissions__ = ( Products.__ac_permissions__ + ((permission, (), roles),)) mangled = pname(permission) setattr(ApplicationDefaultPermissions, mangled, roles)
def setDefaultRoles( permission, roles ): """ Set the defaults roles for a permission. """ if addPermission is not None: addPermission(permission, roles) else: # BBB This is in AccessControl starting in Zope 2.13 from AccessControl.Permission import _registeredPermissions from AccessControl.Permission import pname from AccessControl.Permission import ApplicationDefaultPermissions import Products registered = _registeredPermissions if not permission in registered: registered[ permission ] = 1 Products.__ac_permissions__=( Products.__ac_permissions__+((permission,(),roles),)) mangled = pname(permission) setattr(ApplicationDefaultPermissions, mangled, roles)
security.declarePublic('ViewManagementScreens') # NOQA: flake8: D001 ViewManagementScreens = Permissions.view_management_screens # Note that we can only use the default Zope roles in calls to # addPermission(). The default Zope roles are: # Anonymous, Manager, and Owner. # # CMF Base Permissions # security.declarePublic('ListFolderContents') # NOQA: flake8: D001 ListFolderContents = 'List folder contents' addPermission(ListFolderContents, ('Manager', 'Owner')) security.declarePublic('ListUndoableChanges') # NOQA: flake8: D001 ListUndoableChanges = 'List undoable changes' addPermission(ListUndoableChanges, ('Manager',)) # + Member security.declarePublic('AccessInactivePortalContent') # NOQA: flake8: D001 AccessInactivePortalContent = 'Access inactive portal content' addPermission(AccessInactivePortalContent, ('Manager',)) security.declarePublic('ModifyCookieCrumblers') # NOQA: flake8: D001 ModifyCookieCrumblers = 'Modify Cookie Crumblers' addPermission(ModifyCookieCrumblers, ('Manager',)) security.declarePublic('ReplyToItem') # NOQA: flake8: D001 ReplyToItem = 'Reply to item'
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS # FOR A PARTICULAR PURPOSE. # ############################################################################## """ CMFCalendar product permissions """ from AccessControl import ModuleSecurityInfo from AccessControl.Permission import addPermission security = ModuleSecurityInfo('Products.CMFCalendar.permissions') security.declarePublic('AddEvents') AddEvents = 'Add portal events' addPermission(AddEvents, ('Manager', 'Owner', 'Member')) security.declarePublic('ChangeEvents') ChangeEvents = 'Change portal events' addPermission(ChangeEvents, ('Manager', 'Owner',)) security.declarePublic('AddPortalContent') from Products.CMFCore.permissions import AddPortalContent security.declarePublic('ManagePortal') from Products.CMFCore.permissions import ManagePortal security.declarePublic('View') from Products.CMFCore.permissions import View security.declarePublic('ModifyPortalContent')
# (C) Copyright 2006 ObjectRealms, LLC # All Rights Reserved # # This file is part of iterate. # # iterate is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # iterate is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with CMFDeployment; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ################################################################## from AccessControl.Permission import addPermission CheckinPermission = 'iterate : Check in content' CheckoutPermission = 'iterate : Check out content' addPermission(CheckinPermission, default_roles=('Manager', 'Site Administrator', 'Reviewer')) addPermission(CheckoutPermission, default_roles=('Manager', 'Owner', 'Site Administrator', 'Editor'))
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED # WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS # FOR A PARTICULAR PURPOSE. # ############################################################################## """ Permissions used throughout CMFTopic. """ from AccessControl import ModuleSecurityInfo from AccessControl.Permission import addPermission security = ModuleSecurityInfo('Products.CMFTopic.permissions') security.declarePublic('AddTopics') AddTopics = 'Add portal topics' addPermission(AddTopics, ('Manager',)) security.declarePublic('ChangeTopics') ChangeTopics = 'Change portal topics' addPermission(ChangeTopics, ('Manager', 'Owner',)) security.declarePublic('AccessContentsInformation') from Products.CMFCore.permissions import AccessContentsInformation security.declarePublic('ListFolderContents') from Products.CMFCore.permissions import ListFolderContents security.declarePublic('View') from Products.CMFCore.permissions import View
from AccessControl.Permission import addPermission from zope.i18nmessageid import MessageFactory as mf MessageFactory = mf("euphorie") del mf addPermission("Euphorie: Manage country", ("Manager",)) addPermission("Euphorie: Add new RIE Content", ("Manager",)) addPermission("Euphorie: Delete published content", ("Manager",))
# Zope2 stuff EditorRate = "Content Ratings: Editor Rate" ViewEditorialRating = "Content Ratings: View Editorial Rating" UserRate = "Content Ratings: User Rate" ViewUserRating = "Content Ratings: View User Rating" try: # Set some default roles for zope2 from AccessControl.Permission import addPermission except ImportError: pass else: addPermission(EditorRate, default_roles=('Manager', 'Reviewer')) addPermission(ViewEditorialRating, default_roles=( 'Anonymous', 'Authenticated', )) addPermission(UserRate, default_roles=( 'Anonymous', 'Authenticated', )) addPermission(ViewUserRating, default_roles=( 'Anonymous', 'Authenticated', ))
def onEnabled(self, theme, settings, dependenciesSettings): # noqa res = queryResourceDirectory(THEME_RESOURCE_NAME, theme) if res is None: return # We need to get settings by ourselves to avoid p.a.theming caching settings = getSettings(res) if not isEnabled(settings): return # Remove imported folders not-required on run-time autocleanup = (settings.get('self-destruct') or '').lower() in ( 'true', 'yes', 'on', '1' ) # Register permissions sm = getSiteManager() for key, value in _getPermissions(settings).items(): util = sm.queryUtility(IPermission, name=key) if util is None: name = str('collective.themesitesetup.permission.' + key) util = LocalPermission(value, u'') util.id = key util.__name__ = name util.__parent__ = aq_base(sm) sm._setObject( name, util, set_owner=False, suppress_events=True) sm.registerUtility( util, provided=IPermission, name=key) addPermission(str(value)) # Import GS profile directoryName = DEFAULT_ENABLED_PROFILE_NAME if 'install' in settings: directoryName = settings['install'] directory = None if res.isDirectory(directoryName): directory = res[directoryName] if directory: tarball = createTarball(directory) portal_setup = api.portal.get_tool('portal_setup') portal_setup.runAllImportStepsFromProfile( None, purge_old=False, archive=tarball) # Self-destruct imported profile if autocleanup and IWritableResourceDirectory.providedBy(res): del res[directoryName] # Register locales localesDirectoryName = DEFAULT_ENABLED_LOCALES_NAME if 'locales' in settings: localesDirectoryName = settings['locales'] if res.isDirectory(localesDirectoryName): catalogs = getMessageCatalogs(res[localesDirectoryName]) for domain in catalogs: util = sm.queryUtility(ITranslationDomain, name=domain) if not isinstance(util, TranslationDomain): name = str('collective.themesitesetup.domain.' + domain) util = TranslationDomain() util.__name__ = name util.__parent__ = aq_base(sm) util.domain = domain sm._setObject( name, util, set_owner=False, suppress_events=True) sm.registerUtility( util, provided=ITranslationDomain, name=domain) for language in catalogs[domain]: name = '.'.join(['collective.themesitesetup.catalog', res.__name__, domain, language]) if name in util: try: del util[name] except ValueError: pass util[name] = catalogs[domain][language] # Self-destruct imported catalogs if autocleanup and IWritableResourceDirectory.providedBy(res): del res[localesDirectoryName] # Update Dexterity models modelsDirectoryName = DEFAULT_ENABLED_MODELS_NAME if 'models' in settings: modelsDirectoryName = settings['models'] overwrite = overwriteModels(settings) if res.isDirectory(modelsDirectoryName): types_tool = api.portal.get_tool('portal_types') directory = res[modelsDirectoryName] for name in directory.listDirectory(): if not name.endswith('.xml') or not directory.isFile(name): continue fti = types_tool.get(name[:-4]) if not fti: continue model = unicode(directory.readFile(name), 'utf-8', 'ignore') if fti.model_source == model: continue try: loadString(model, fti.schema_policy) # fail for errors except SupermodelParseError: logger.error( u'Error while parsing {0:s}/{1:s}/{2:s}'.format( res.__name__, modelsDirectoryName, name)) raise # Set model source when model is empty of override is enabled desc = DexterityFTIModificationDescription('model_source', fti.model_source) if not fti.model_source: fti.model_source = model notify(ObjectModifiedEvent(fti, desc)) elif not loadString(fti.model_source, fti.schema_policy).schema.names(): # noqa fti.model_source = model notify(ObjectModifiedEvent(fti, desc)) elif overwrite: fti.model_source = model notify(ObjectModifiedEvent(fti, desc)) # Self-destruct imported models if autocleanup and IWritableResourceDirectory.providedBy(res): del res[modelsDirectoryName] # Copy resources resourcesDirectoryName = DEFAULT_ENABLED_RESOURCES_NAME if 'resources' in settings: resourcesDirectoryName = settings['resources'] purge = purgeResources(settings) overwrite = overwriteResources(settings) root = queryUtility(IResourceDirectory, name=u'persistent') if root and res.isDirectory(resourcesDirectoryName): copyResources(res[resourcesDirectoryName], root, purge, overwrite) # Invalidate site layout cache of plone.app.blocks portal_catalog = api.portal.get_tool('portal_catalog') portal_catalog._increment_counter() # Self-desctruct imported resources if autocleanup and IWritableResourceDirectory.providedBy(res): del res[resourcesDirectoryName]
# but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with CMFEditions; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ######################################################################### """Permissions """ from AccessControl.Permission import addPermission ApplyVersionControl = 'CMFEditions: Apply version control' addPermission(ApplyVersionControl, ('Manager', 'Site Administrator')) SaveNewVersion = 'CMFEditions: Save new version' addPermission(SaveNewVersion, ('Manager', 'Site Administrator')) PurgeVersion = 'CMFEditions: Purge version' addPermission(PurgeVersion, ('Manager', 'Site Administrator')) AccessPreviousVersions = 'CMFEditions: Access previous versions' addPermission(AccessPreviousVersions, ('Manager', 'Site Administrator')) RevertToPreviousVersions = 'CMFEditions: Revert to previous versions' addPermission(RevertToPreviousVersions, ('Manager', 'Site Administrator')) CheckoutToLocation = 'CMFEditions: Checkout to location' addPermission(CheckoutToLocation, ('Manager', 'Site Administrator'))
################################################################## # # (C) Copyright 2006 ObjectRealms, LLC # All Rights Reserved # # This file is part of iterate. # # iterate is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # iterate is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with CMFDeployment; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ################################################################## from AccessControl.Permission import addPermission CheckinPermission = 'iterate : Check in content' CheckoutPermission = 'iterate : Check out content' DEFAULT_ROLES = ('Manager', 'Owner', 'Site Administrator', 'Editor') addPermission(CheckinPermission, default_roles=DEFAULT_ROLES) addPermission(CheckoutPermission, default_roles=DEFAULT_ROLES)
def onRequest(self, request, theme, settings, dependenciesSettings): # Ensure that TTW permissions are registered also as Zope 2 permissions for permission in getPermissions(settings).values(): addPermission(permission)
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS # FOR A PARTICULAR PURPOSE. # ############################################################################## """ Permissions used throughout CMFTopic. """ from AccessControl import ModuleSecurityInfo from AccessControl.Permission import addPermission security = ModuleSecurityInfo('Products.CMFTopic.permissions') security.declarePublic('AddTopics') AddTopics = 'Add portal topics' addPermission(AddTopics, ('Manager', )) security.declarePublic('ChangeTopics') ChangeTopics = 'Change portal topics' addPermission(ChangeTopics, ( 'Manager', 'Owner', )) security.declarePublic('AccessContentsInformation') from Products.CMFCore.permissions import AccessContentsInformation security.declarePublic('ListFolderContents') from Products.CMFCore.permissions import ListFolderContents security.declarePublic('View')
# -*- coding: utf-8 -*- from AccessControl.Permission import addPermission ModifyViewTemplate = "Modify view template" addPermission(ModifyViewTemplate, ('Manager', 'Owner'))
from AccessControl import ModuleSecurityInfo from AccessControl.Permission import addPermission security = ModuleSecurityInfo('cnm.website.permissions') security.declarePublic('DeleteThisObject') DeleteThisObject = 'CNM: Delete this object' addPermission(DeleteThisObject, default_roles=('Manager', 'Owner'))
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with CMFEditions; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ######################################################################### """Permissions """ from AccessControl.Permission import addPermission ApplyVersionControl = 'CMFEditions: Apply version control' addPermission(ApplyVersionControl, ('Manager', 'Site Administrator')) SaveNewVersion = 'CMFEditions: Save new version' addPermission(SaveNewVersion, ('Manager', 'Site Administrator')) PurgeVersion = 'CMFEditions: Purge version' addPermission(PurgeVersion, ('Manager', 'Site Administrator')) AccessPreviousVersions = 'CMFEditions: Access previous versions' addPermission(AccessPreviousVersions, ('Manager', 'Site Administrator')) RevertToPreviousVersions = 'CMFEditions: Revert to previous versions' addPermission(RevertToPreviousVersions, ('Manager', 'Site Administrator')) CheckoutToLocation = 'CMFEditions: Checkout to location' addPermission(CheckoutToLocation, ('Manager', 'Site Administrator'))
# -*- coding: utf-8 -*- from AccessControl.Permission import addPermission from AccessControl.SecurityInfo import ModuleSecurityInfo from plone.app.contenttypes.utils import DEFAULT_TYPES security = ModuleSecurityInfo('plone.app.contenttypes') TYPE_ROLES = ('Manager', 'Site Administrator', 'Owner', 'Contributor') perms = [] for typename in DEFAULT_TYPES: permid = 'Add' + typename permname = 'plone.app.contenttypes: Add ' + typename security.declarePublic(permid) addPermission(permname, default_roles=TYPE_ROLES) AddCollection = 'plone.app.contenttypes: Add Collection' AddDocument = 'plone.app.contenttypes: Add Document' AddEvent = 'plone.app.contenttypes: Add Event' AddFile = 'plone.app.contenttypes: Add File' AddFolder = 'plone.app.contenttypes: Add Folder' AddImage = 'plone.app.contenttypes: Add Image' AddLink = 'plone.app.contenttypes: Add Link' AddNewsItem = 'plone.app.contenttypes: Add News Item'
# Zope2 stuff EditorRate = "Content Ratings: Editor Rate" ViewEditorialRating = "Content Ratings: View Editorial Rating" UserRate = "Content Ratings: User Rate" ViewUserRating = "Content Ratings: View User Rating" try: # Set some default roles for zope2 from AccessControl.Permission import addPermission except ImportError: pass else: addPermission(EditorRate, default_roles=('Manager', 'Reviewer')) addPermission(ViewEditorialRating, default_roles=('Anonymous', 'Authenticated',)) addPermission(UserRate, default_roles=('Anonymous', 'Authenticated',)) addPermission(ViewUserRating, default_roles=('Anonymous','Authenticated',))
# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS # FOR A PARTICULAR PURPOSE. # ############################################################################## """ CMFCalendar product permissions """ from AccessControl import ModuleSecurityInfo from AccessControl.Permission import addPermission security = ModuleSecurityInfo('Products.CMFCalendar.permissions') security.declarePublic('AddEvents') AddEvents = 'Add portal events' addPermission(AddEvents, ('Manager', 'Owner', 'Member')) security.declarePublic('ChangeEvents') ChangeEvents = 'Change portal events' addPermission(ChangeEvents, ( 'Manager', 'Owner', )) security.declarePublic('AddPortalContent') from Products.CMFCore.permissions import AddPortalContent security.declarePublic('ManagePortal') from Products.CMFCore.permissions import ManagePortal security.declarePublic('View')
def setDefaultRoles(permission, roles): """ Set the defaults roles for a permission. """ addPermission(permission, roles)
def onEnabled(self, theme, settings, dependenciesSettings): # noqa res = queryResourceDirectory(THEME_RESOURCE_NAME, theme) if res is None: return # We need to get settings by ourselves to avoid p.a.theming caching settings = getSettings(res) if not isEnabled(settings): return # Remove imported folders not-required on run-time autocleanup = (settings.get('self-destruct') or '').lower() in ('true', 'yes', 'on', '1') # Register permissions sm = getSiteManager() for key, value in _getPermissions(settings).items(): util = sm.queryUtility(IPermission, name=key) if util is None: name = str('collective.themesitesetup.permission.' + key) util = LocalPermission(value, u'') util.id = key util.__name__ = name util.__parent__ = aq_base(sm) sm._setObject(name, util, set_owner=False, suppress_events=True) sm.registerUtility(util, provided=IPermission, name=key) addPermission(str(value)) # Import GS profile directoryName = DEFAULT_ENABLED_PROFILE_NAME if 'install' in settings: directoryName = settings['install'] directory = None if res.isDirectory(directoryName): directory = res[directoryName] if directory: tarball = createTarball(directory) portal_setup = api.portal.get_tool('portal_setup') portal_setup.runAllImportStepsFromProfile(None, purge_old=False, archive=tarball) # Self-destruct imported profile if autocleanup and IWritableResourceDirectory.providedBy(res): del res[directoryName] # Register locales localesDirectoryName = DEFAULT_ENABLED_LOCALES_NAME if 'locales' in settings: localesDirectoryName = settings['locales'] if res.isDirectory(localesDirectoryName): catalogs = getMessageCatalogs(res[localesDirectoryName]) for domain in catalogs: util = sm.queryUtility(ITranslationDomain, name=domain) if not isinstance(util, TranslationDomain): name = str('collective.themesitesetup.domain.' + domain) util = TranslationDomain() util.__name__ = name util.__parent__ = aq_base(sm) util.domain = domain sm._setObject(name, util, set_owner=False, suppress_events=True) sm.registerUtility(util, provided=ITranslationDomain, name=domain) for language in catalogs[domain]: name = '.'.join([ 'collective.themesitesetup.catalog', res.__name__, domain, language ]) if name in util: try: del util[name] except ValueError: pass util[name] = catalogs[domain][language] # Self-destruct imported catalogs if autocleanup and IWritableResourceDirectory.providedBy(res): del res[localesDirectoryName] # Update Dexterity models modelsDirectoryName = DEFAULT_ENABLED_MODELS_NAME if 'models' in settings: modelsDirectoryName = settings['models'] overwrite = overwriteModels(settings) if res.isDirectory(modelsDirectoryName): types_tool = api.portal.get_tool('portal_types') directory = res[modelsDirectoryName] for name in directory.listDirectory(): if not name.endswith('.xml') or not directory.isFile(name): continue fti = types_tool.get(name[:-4]) if not fti: continue model = unicode(directory.readFile(name), 'utf-8', 'ignore') if fti.model_source == model: continue try: loadString(model, fti.schema_policy) # fail for errors except SupermodelParseError: logger.error( u'Error while parsing {0:s}/{1:s}/{2:s}'.format( res.__name__, modelsDirectoryName, name)) raise # Set model source when model is empty of override is enabled desc = DexterityFTIModificationDescription( 'model_source', fti.model_source) if not fti.model_source: fti.model_source = model notify(ObjectModifiedEvent(fti, desc)) elif not loadString(fti.model_source, fti.schema_policy).schema.names(): # noqa fti.model_source = model notify(ObjectModifiedEvent(fti, desc)) elif overwrite: fti.model_source = model notify(ObjectModifiedEvent(fti, desc)) # Self-destruct imported models if autocleanup and IWritableResourceDirectory.providedBy(res): del res[modelsDirectoryName] # Copy resources resourcesDirectoryName = DEFAULT_ENABLED_RESOURCES_NAME if 'resources' in settings: resourcesDirectoryName = settings['resources'] purge = purgeResources(settings) overwrite = overwriteResources(settings) root = queryUtility(IResourceDirectory, name=u'persistent') if root and res.isDirectory(resourcesDirectoryName): copyResources(res[resourcesDirectoryName], root, purge, overwrite) # Invalidate site layout cache of plone.app.blocks portal_catalog = api.portal.get_tool('portal_catalog') portal_catalog._increment_counter() # Self-desctruct imported resources if autocleanup and IWritableResourceDirectory.providedBy(res): del res[resourcesDirectoryName]
# -*- coding: utf-8 -*- from AccessControl.Permission import addPermission AddGroups = 'Add Groups' addPermission(AddGroups, default_roles=('Manager',)) ManageGroups = 'Manage Groups' addPermission(ManageGroups, default_roles=('Manager',)) ViewGroups = 'View Groups' addPermission(ViewGroups, default_roles=('Manager', 'Owner', 'Member')) DeleteGroups = 'Delete Groups' addPermission(DeleteGroups, default_roles=('Manager', )) SetGroupOwnership = 'Set Group Ownership' addPermission(SetGroupOwnership, default_roles=('Manager', 'Owner'))
# -*- coding: utf-8 -*- from AccessControl.Permission import addPermission AddGroups = 'Add Groups' addPermission(AddGroups, default_roles=('Manager', )) ManageGroups = 'Manage Groups' addPermission(ManageGroups, default_roles=('Manager', )) ViewGroups = 'View Groups' addPermission(ViewGroups, default_roles=('Manager', 'Owner', 'Member')) DeleteGroups = 'Delete Groups' addPermission(DeleteGroups, default_roles=('Manager', )) SetGroupOwnership = 'Set Group Ownership' addPermission(SetGroupOwnership, default_roles=('Manager', 'Owner'))