public ActionResult RolePermission(int id, int[][] array) { var subject = RBACService.GetSubject(id, false, false, false); var roles = RBACService.GetRoles(); foreach (var roleId in array[0]) { var found = roles.First(n => n.RoleId == roleId); if (found != null) { subject.Add(found); } } var permissions = RBACService.GetPermissions(); foreach (var permissionId in array[1]) { var found = permissions.First(n => n.PermissionId == permissionId); if (found != null) { subject.Add(found); } } RBACWriteService.SaveSubjectRoles(subject); RBACWriteService.SaveSubjectPermissions(subject); return(new JsonNetResult(new object())); }
public ActionResult Map([ModelBinder(typeof(JsonNetModelBinder))] IList <JsTreeNode> nodes) { var root = new JsTreeParser().Parse(Constants.ROLE_TREE_ID, nodes); var roles = RBACService.GetRoles(); var permissions = RBACService.GetPermissions(); root.Each(x => { if (x.Elements != null) { var role = roles.SingleOrDefault(n => n.RoleId == x.Id); if (role != null) { var rolePermissions = permissions.Where(n => x.Elements.Any(m => m == n.PermissionId)); role.Add(rolePermissions); } } }); RBACWriteService.SaveRolePermissions(roles); return(new JsonNetResult(nodes)); }