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."
def getPermissionRoles(self): """Get a dict of dicts containing the current role->permission mappings. """ prm = IRolePermissionManager(self.context) result = {} for perm in self.permissions: proles = prm.getRolesForPermission(perm.id) settings = {} for role, setting in proles: settings[role] = setting.getName() nosetting = Unset.getName() result[perm.id] = {} for role in self.roles: result[perm.id][role] = settings.get(role, nosetting) return result