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")); }
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); }
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); }
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); }
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); }
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)); }
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)); }
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)); }