Example #1
0
        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()));
        }
Example #2
0
        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));
        }