#__init__.py freebsd# cat __init__.py from Products.CMFCore.utils import ContentInit from Products.Archetypes.public import listTypes from Products.Archetypes.public import process_types from Products.CMFCore.DirectoryView import registerDirectory from Products.EmbrapaRamais import config from Products.EmbrapaRamais.permissions import ADD_DEFAULT from Products.EmbrapaRamais.permissions import ADD_PERMISSIONS registerDirectory(config.SKINS_DIR, config.GLOBALS) def initialize(context): import content content_types, constructors, ftis = process_types(listTypes(config.PROJECTNAME), config.PROJECTNAME) all_types = zip(content_types, constructors) for atype, constructor in all_types: kind = '%s: %s' % (config.PROJECTNAME, atype.archetype_name) ContentInit(kind, content_types = (atype,), permission = ADD_PERMISSIONS.get(atype.portal_type, ADD_DEFAULT), extra_constructors = (constructor,), fti = ftis, ).initialize(context) #config.py freebsd# cat config.py from Products.CMFCore.permissions import setDefaultRoles from Products.CMFCore.permissions import AddPortalContent as ADD_DEFAULT from Products.EmbrapaRamais.config import PROJECTNAME from Products.EmbrapaRamais.config import CUSTOM_PERMISSIONS PROJECTNAME = 'EmbrapaRamais' ADD_PERMISSIONS = {} for portal_type, actions in CUSTOM_PERMISSIONS.items(): for action in actions: name = ('%s_%s' % (action, portal_type)).replace(' ','_').upper() permission = '%s: %s %s' % (PROJECTNAME, action, portal_type) locals().setdefault(name, permission) if action.lower() == 'add': ADD_PERMISSIONS[portal_type] = permission setDefaultRoles(permission, ['Manager']) #permissions.py GLOBALS = globals() SKINS_DIR = 'skins' CUSTOM_PERMISSIONS = { 'EmbrapaRamais': ('Add','Edit', 'View') }