Exemplo n.º 1
0
        public async Task <IActionResult> AssignUser(UserToRoleViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View("AssignUsers", model));
            }

            var role = await roleManager.FindByIdAsync(model.RoleName);

            if (role == null)
            {
                ModelState.AddModelError("", $"Role name {model.RoleName} does not exists");

                return(View("AssignUsers", model));
            }

            var user = await userManager.FindByIdAsync(model.UserName);

            if (user == null)
            {
                ModelState.AddModelError("", $"User name {model.RoleName} does not exists");

                return(View("AssignUsers", model));
            }

            role.Users.Add(user);

            await roleManager.UpdateAsync(role);

            return(RedirectToAction("Index"));
        }
Exemplo n.º 2
0
        private async Task <User> UserAndRoleExist(UserToRoleViewModel model)
        {
            var user = await _userManager.FindByIdAsync(model.UserId);

            var role = await _dbContext.Roles.FirstOrDefaultAsync(x => x.Name == model.RoleName);

            if (user == null || role == null)
            {
                return(null);
            }
            return(user);
        }
Exemplo n.º 3
0
        public async Task <bool> AddUserToRoleAsync(UserToRoleViewModel model)
        {
            var user = await UserAndRoleExist(model);

            if (user == null)
            {
                return(false);
            }
            var result = await _userManager.AddToRoleAsync(user, model.RoleName);

            return(result.Succeeded);
        }
Exemplo n.º 4
0
        public async Task <bool> UserIsInRoleAsync(UserToRoleViewModel model)
        {
            var user = await UserAndRoleExist(model);

            if (user == null)
            {
                return(false);
            }
            var role = await _userManager.GetRolesAsync(user);

            var result = role.Contains(model.RoleName);

            return(result);
        }
Exemplo n.º 5
0
        public async Task <bool> RemoveUserFromRoleAsync(UserToRoleViewModel model)
        {
            var user = await UserAndRoleExist(model);

            if (user == null)
            {
                return(false);
            }
            var role = await _dbContext.Roles.FirstOrDefaultAsync(x => x.Name == model.RoleName);

            var userRole = await _dbContext.UserRoles.FirstOrDefaultAsync(x => x.RoleId == role.Id && x.UserId == model.UserId);

            _dbContext.UserRoles.Remove(userRole);
            return(await _dbContext.SaveChangesAsync() > 0);
        }
Exemplo n.º 6
0
        public async Task <IActionResult> RemoveUserFromRole(UserToRoleViewModel model)
        {
            var isInRole = await _service.UserService.UserIsInRoleAsync(model);

            if (!isInRole)
            {
                return(BadRequest("El usuario no pertenece a este rol o permiso"));
            }
            var result = await _service.UserService.RemoveUserFromRoleAsync(model);

            if (!result)
            {
                return(BadRequest("El usuario o rol no existe"));
            }
            return(Ok(result));
        }
Exemplo n.º 7
0
        public async Task <IActionResult> AddUserToRole(UserToRoleViewModel model)
        {
            var isInRole = await _service.UserService.UserIsInRoleAsync(model);

            if (isInRole)
            {
                return(BadRequest("El usuario ya tiene este rol asignado"));
            }
            var result = await _service.UserService.AddUserToRoleAsync(model);

            if (!result)
            {
                return(BadRequest("El usuario o rol no existe"));
            }
            return(Ok(result));
        }
Exemplo n.º 8
0
        public async Task <IActionResult> UpdateRole(string id)
        {
            var role = await roleManager.FindByIdAsync(id);

            if (role == null)
            {
                return(RedirectToAction("RoleList"));
            }
            UserToRoleViewModel userToRoleView = new UserToRoleViewModel {
                roleId   = role.Id,
                roleName = role.Name
            };
            var users = await userManager.Users.ToListAsync();

            foreach (IdentityUser user in users)
            {
                if (await userManager.IsInRoleAsync(user, role.Name))
                {
                    userToRoleView.userNames.Add(user.UserName);
                }
            }
            return(View(userToRoleView));
        }