rendered paste body#__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')
}