All pastes #341616 Raw Edit

Anonymous

public text v1 · immutable
·published 2007-02-05 19:20 UTC
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')
    }