示例#1
0
        public async Task <IEnumerable <string> > EditRoles(string userName, RolesForEdit rolesForEdit)
        {
            var user = await _userManager.FindByNameAsync(userName);

            var userRoles = await _userManager.GetRolesAsync(user);

            var selectedRoles = rolesForEdit.RoleNames;

            selectedRoles = selectedRoles ?? new string[] { };

            var result = await _userManager.AddToRolesAsync(user, selectedRoles.Except(userRoles));

            if (!result.Succeeded)
            {
                throw new Exception("Failed to add to roles");
            }

            result = await _userManager.RemoveFromRolesAsync(user, userRoles.Except(selectedRoles));

            if (!result.Succeeded)
            {
                throw new Exception("Failed to remove the roles");
            }

            return(await _userManager.GetRolesAsync(user));
        }
示例#2
0
 public async Task <IActionResult> EditRoles(string userName, RolesForEdit rolesForEdit)
 {
     return(Ok(await _userService.EditRoles(userName, rolesForEdit)));
 }