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