Ejemplo n.º 1
0
 def setPermissionRoles(self):
     """Set permissions of roles.
     """
     prm = IRolePermissionManager(self.context)
     permissions = [perm.id for perm in self.permissions]
     for perm in permissions:
         rperm = self.request.get(u'perm%s' % perm)
         if rperm not in permissions:
             continue
         for role in self.roles:
             rrole = self.request.get('role%s' % role)
             if rrole not in self.roles:
                 continue
             setting = self.request.get(u'prole%s%s' % (perm, role))
             if setting is None:
                 continue
             if setting == Unset.getName():
                 prm.unsetPermissionFromRole(rperm, rrole)
             elif setting == Allow.getName():
                 prm.grantPermissionToRole(rperm, rrole)
             elif setting == Deny.getName():
                 prm.denyPermissionToRole(rperm, rrole)
             else:
                 # Unknown value. Ignore it.
                 pass
     self.msg = u"Permissions successfully updated."
Ejemplo n.º 2
0
def setQreatureFolderUtilities(event):
    """ This is a handler for custom event.
    All object hierarchies and site-level utilities are created here"""
    site = event.object
    sm = site.getSiteManager()
    
    internal_principal = InternalPrincipal(site.login, site.password, u'owner')
    quiz_site = site.__parent__
    quiz_site_manager = quiz_site.getSiteManager()
    quiz_site_pau = quiz_site_manager['pau']
    quiz_site_pf = quiz_site_pau['PrincipalFolder']
    quiz_site_pf.__setitem__(site.__name__, internal_principal)
    
    role = LocalRole(u'Quiz Creator',u'Registerde user, able to create and edit quizes')
    sm['role'] = role
    sm.registerUtility(role, IRole, site.__name__)
    
    role_perm_manager = IRolePermissionManager(site)
    role_perm_manager.grantPermissionToRole("qreature.edit_quiz", site.__name__)