/// <summary> /// 设置用户权限 /// </summary> /// <param name="userId"></param> /// <param name="roleIds"></param> /// <returns></returns> private async Task <OperationResponse> SetUserRoles(User user, Guid?[] roleIds, bool isAdd = true) { IList <string> existRoleNames = await _userManager.GetRolesAsync(user); try { IdentityResult result = await _userManager.RemoveFromRolesAsync(user, existRoleNames); if (!result.Succeeded) { return(result.ToOperationResponse()); } var roles = await _roleManager.Roles.Where(m => roleIds.Contains(m.Id)).ToListAsync(); IList <string> roleNames = roles.Select(m => m.Name).ToList(); result = await _userManager.AddToRolesAsync(user, roleNames); if (!result.Succeeded) { return(result.ToOperationResponse()); } await _userManager.UpdateSecurityStampAsync(user); await _bus?.PublishAsync(new UserRoleCacheAddOrUpdateEvent() { User = user, Roles = roles, EventState = isAdd ? Events.EventState.Add : Events.EventState.Update });; } catch (InvalidOperationException ex) { return(new OperationResponse(ex.Message, OperationResponseType.Error)); } return(new OperationResponse("添加用户角色成功", OperationResponseType.Success)); }
/// <summary> /// 设置用户权限 /// </summary> /// <param name="userId"></param> /// <param name="roleIds"></param> /// <returns></returns> private async Task <OperationResponse> SetUserRoles(User user, Guid[] roleIds) { IList <string> existRoleNames = await _userManager.GetRolesAsync(user); try { IdentityResult result = await _userManager.RemoveFromRolesAsync(user, existRoleNames); if (!result.Succeeded) { return(result.ToOperationResponse()); } IList <string> roleNames = await _roleManager.Roles.Where(m => roleIds.Contains(m.Id)).Select(m => m.Name).ToListAsync(); result = await _userManager.AddToRolesAsync(user, roleNames); if (!result.Succeeded) { return(result.ToOperationResponse()); } await _userManager.UpdateSecurityStampAsync(user); } catch (InvalidOperationException ex) { return(new OperationResponse(ex.Message, OperationResponseType.Error)); } return(new OperationResponse("添加用户角色成功", OperationResponseType.Success)); }
private async Task <OperationResponse> DeleteUserRoleAsync(User user) { IList <string> existRoleNames = await _userManager.GetRolesAsync(user); IdentityResult result = await _userManager.RemoveFromRolesAsync(user, existRoleNames); if (!result.Succeeded) { return(result.ToOperationResponse()); } return(result.ToOperationResponse()); }
private async Task <OperationResponse> DeleteUserRoleAsync(User user) { IList <string> existRoleNames = await _userManager.GetRolesAsync(user); IdentityResult result = await _userManager.RemoveFromRolesAsync(user, existRoleNames); if (!result.Succeeded) { return(result.ToOperationResponse()); } //_bus?.PublishAsync(new UserRoleCacheDeleteEvent() { UserId = user.Id, EventState = Events.EventState.Remove }); return(result.ToOperationResponse()); }