Changeset 804

Show
Ignore:
Timestamp:
02/23/07 10:46:02
Author:
crchemist
Message:

Some optimizations.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • qPloneEditorGroup/trunk/Extensions/Install.py

    r803 r804  
    55from StringIO import StringIO 
    66 
    7  
    87def install(self): 
    98    """ install product """ 
    109    out = StringIO() 
    1110    portal = getToolByName(self,'portal_url').getPortalObject() 
    12     self._addRole('Editor') 
    1311    acl = self.acl_users 
    1412    if acl.meta_type != 'Pluggable Auth Service': 
    1513        acl.changeOrCreateGroups(roles = ['Editor'], new_groups=['Editors']) 
    1614    else: 
    17         try: 
     15        from Products.PluggableAuthService.interfaces.plugins import IRolesPlugin 
     16        from Products.PluggableAuthService.interfaces.plugins import IRoleEnumerationPlugin 
     17        plugins = acl._getOb( 'plugins' ) 
     18        roles = plugins.listPlugins(IRolesPlugin) 
     19        enumerators = plugins.listPlugins(IRoleEnumerationPlugin) 
     20        role_enums = set(roles) and set(enumerators) 
     21 
     22        ids = [] 
     23        for rp in role_enums: 
     24            all_roles = rp[1].enumerateRoles() 
     25            ids += [a['id'] for a in all_roles] 
     26        if 'Editor' not in ids: 
    1827            acl.addRole('Editor') 
    19         except KeyError: 
    20             pass 
    2128 
    2229        if 'Editors' not in acl.getGroupIds():