Ejemplo n.º 1
0
        public void HandleSaveRole()
        {
            if (SelectedRole.Id > 0)
            {
                DataService.UpdateObject(SelectedRole);
            }
            else
            {
                DataService.AddToRoles(SelectedRole);
            }

            var list = SelectedRole.Privileges.Except(SelectedPrivileges).ToList();

            foreach (Privilege privilege in list)
            {
                DataService.DeleteLink(SelectedRole, "Privileges", privilege);
                SelectedRole.Privileges.Remove(privilege);
            }

            list = SelectedPrivileges.Except(SelectedRole.Privileges).ToList();
            foreach (Privilege privilege in list)
            {
                DataService.AddLink(SelectedRole, "Privileges", privilege);
                SelectedRole.Privileges.Add(privilege);
            }

            DataService.SaveChanges();
            SelectedRole = null;
            ResetRoleList();
        }
Ejemplo n.º 2
0
        public ActionResult PostRolePrivileges([FromBody] RolePrivilegesView rolePrivileges)
        {
            Roles role      = new Roles();
            bool  roleExist = _context.Roles.Any(obj => obj.Name == rolePrivileges.RoleName);

            if (!roleExist)
            {
                role.Name = rolePrivileges.RoleName;
                _context.Roles.Add(role);
                _context.SaveChanges();
            }
            else if (roleExist)
            {
                role = _context.Roles.Where(obj => obj.Name == rolePrivileges.RoleName).FirstOrDefault();
            }


            for (int i = 0; i < rolePrivileges.selectedPrivileges.Count; i++)
            {
                SelectedPrivileges selectedPrivilege = new SelectedPrivileges();
                selectedPrivilege.DistributorId = rolePrivileges.distId;
                selectedPrivilege.RoleId        = role.Id;
                selectedPrivilege.PrivilgeId    = getPrivilegesId(rolePrivileges.selectedPrivileges[i]);
                _context.RolePrivileges.Add(selectedPrivilege);
                _context.SaveChanges();
            }

            var dataList = (from Role in _context.Roles
                            join rolePrivilege in _context.RolePrivileges
                            on Role.Id equals rolePrivilege.RoleId
                            where rolePrivilege.DistributorId == rolePrivileges.distId
                            join privilege in _context.Privileges on rolePrivilege.PrivilgeId equals privilege.Id
                            orderby Role.Name
                            select new { role = Role, Privilege = privilege }).ToList();

            return(Ok(new { AssignRolePrivilegesStatus = "Success", RolePrivilegesList = dataList }));
        }
Ejemplo n.º 3
0
        public ActionResult PutPrivileges([FromRoute] int id, [FromBody] RolePrivilegesView rolePrivileges)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }



            if (rolePrivileges.selectedPrivileges.Count <= rolePrivileges.rolePrivilegeId.Count)
            {
                for (int i = 0; i < rolePrivileges.selectedPrivileges.Count; i++)
                {
                    SelectedPrivileges updated = new SelectedPrivileges();
                    updated.Id            = rolePrivileges.rolePrivilegeId[i];
                    updated.DistributorId = id;//rolePrivileges.distId;
                    updated.RoleId        = getRoleId(rolePrivileges.RoleName);
                    updated.PrivilgeId    = getPrivilegesId(rolePrivileges.selectedPrivileges[i]);
                    _context.RolePrivileges.Update(updated);
                    _context.SaveChanges();
                }
                if (rolePrivileges.selectedPrivileges.Count < rolePrivileges.rolePrivilegeId.Count)
                {
                    for (int i = rolePrivileges.selectedPrivileges.Count; i < rolePrivileges.rolePrivilegeId.Count; i++)
                    {
                        SelectedPrivileges privilegeBeingDeleted = _context.RolePrivileges.Find(rolePrivileges.rolePrivilegeId[i]);
                        _context.RolePrivileges.Remove(privilegeBeingDeleted);
                    }
                }
                _context.SaveChanges();
            }
            else if (rolePrivileges.selectedPrivileges.Count > rolePrivileges.rolePrivilegeId.Count)
            {
                for (int i = 0; i < rolePrivileges.rolePrivilegeId.Count; i++)
                {
                    SelectedPrivileges updated = new SelectedPrivileges();
                    updated.Id            = rolePrivileges.rolePrivilegeId[i];
                    updated.DistributorId = id;//rolePrivileges.distId;
                    updated.RoleId        = getRoleId(rolePrivileges.RoleName);
                    updated.PrivilgeId    = getPrivilegesId(rolePrivileges.selectedPrivileges[i]);
                    _context.RolePrivileges.Update(updated);
                }
                for (int i = rolePrivileges.rolePrivilegeId.Count; i < rolePrivileges.selectedPrivileges.Count; i++)
                {
                    SelectedPrivileges assignNew = new SelectedPrivileges();
                    assignNew.DistributorId = id;
                    assignNew.RoleId        = getRoleId(rolePrivileges.RoleName);
                    assignNew.PrivilgeId    = getPrivilegesId(rolePrivileges.selectedPrivileges[i]);
                    _context.RolePrivileges.Add(assignNew);

                    _context.SaveChanges();
                }
            }
            //if (id != privileges.Id)
            //{
            //    return BadRequest();
            //}

            //_context.Entry(privileges).State = EntityState.Modified;

            //try
            //{
            //    await _context.SaveChangesAsync();
            //}
            //catch (DbUpdateConcurrencyException)
            //{
            //    if (!PrivilegesExists(id))
            //    {
            //        return NotFound();
            //    }
            //    else
            //    {
            //        throw;
            //    }
            //}


            var dataList = (from Role in _context.Roles
                            join rolePrivilege in _context.RolePrivileges
                            on Role.Id equals rolePrivilege.RoleId
                            where rolePrivilege.DistributorId == id
                            join privilege in _context.Privileges on rolePrivilege.PrivilgeId equals privilege.Id
                            orderby Role.Name
                            select new { role = Role, Privilege = privilege, rolePrv = rolePrivilege }).ToList();

            return(Ok(new { updateRolePrivilegesStatus = "UpdateSuccess", RolePrivilegesList = dataList }));
        }