/// <summary> /// 从用户角色表中移除用户 /// </summary> /// <param name="request"></param> /// <param name="context"></param> /// <returns></returns> public override async Task <BoolReply> RemoveUserFromUserRole(AddUserToRoleReq request, ServerCallContext context) { var userRole = await applicationDbContext.UserRoles.FirstAsync(e => e.UserId == request.UserId && e.RoleId == request.RoleId).ConfigureAwait(false); if (userRole == null) { throw new RpcException(new Status(StatusCode.NotFound, "不存在记录")); } applicationDbContext.UserRoles.Remove(userRole); await applicationDbContext.SaveChangesAsync().ConfigureAwait(false); return(new BoolReply { Value = true }); }
/// <summary> /// 为用户分配角色 /// </summary> /// <param name="request"></param> /// <param name="context"></param> /// <returns></returns> public override async Task <BoolReply> AddUserToRole(AddUserToRoleReq request, ServerCallContext context) { if (request is null) { throw new ArgumentNullException(nameof(request)); } var user = await applicationDbContext.Users.FirstOrDefaultAsync(e => e.Id == request.UserId).ConfigureAwait(false); if (user == null) { throw new RpcException(new Status(StatusCode.NotFound, "用户未找到")); } var role = await applicationDbContext.Roles.FirstOrDefaultAsync(e => e.Id == request.RoleId).ConfigureAwait(false); if (role == null) { throw new RpcException(new Status(StatusCode.NotFound, "用户未找到")); } var userRole = applicationDbContext.UserRoles.FirstAsync(e => e.UserId == request.UserId && e.RoleId == request.RoleId); if (userRole != null) { throw new RpcException(new Status(StatusCode.NotFound, "用户存在该角色")); } await applicationDbContext.UserRoles.AddAsync(new IdentityUserRole <string> { UserId = request.UserId, RoleId = request.RoleId }).ConfigureAwait(false); await applicationDbContext.SaveChangesAsync().ConfigureAwait(false); return(new BoolReply { Value = true }); }