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."