public async Task <LoginUser> Validate(string name, string pwd) { var invalidAdm = string.IsNullOrWhiteSpace(name) || string.IsNullOrWhiteSpace(pwd) || name != _userName || pwd != _password; // return Task.FromResult(!invalid); if (!invalidAdm) { return(new LoginUser { Id = name, Adm = true }); } var user = await _usersService.All().FirstOrDefaultAsync(u => u.Status != 0 && u.Id == name && u.Password == PwdEncryptor.Encrypt(pwd)); if (user == null) { return(null); } return(new LoginUser { Id = user.Id, Email = user.Email, Adm = false, Authorised = user.Authorised != 0 && user.AuthorisionExpired > DateTime.Now }); }
public override async Task <Reply> UpdateName(UpdateNameRequest request, ServerCallContext context) { var reply = new Reply(); if (!PwdEncryptor.ValidateUserName(request.NewName)) { reply.Error = Error.InvalidArguments; return(reply); } var user = await _loginUserService.GetUser(context.GetHttpContext()); if (user == null || user.Adm) { reply.Error = Error.InvalidOperation; return(reply); } var userEntity = await _usersService.All().FirstOrDefaultAsync(u => u.Id == user.Id); if (userEntity == null) { reply.Error = Error.InvalidOperation; return(reply); } if (userEntity.Id == request.NewName) { return(reply); } var existed = await _usersService.All().FirstOrDefaultAsync(u => u.Id == request.NewName); if (existed != null) { reply.Error = Error.InvalidOperation; return(reply); } userEntity.Id = request.NewName; await _usersService.Update(userEntity); user.Id = request.NewName; await _loginUserService.SetUser(context.GetHttpContext(), user); return(reply); }
public override async Task <UsersReply> GetAll(GetAllRequest request, ServerCallContext context) { var reply = new UsersReply(); var user = await _userService.GetUser(context.GetHttpContext()); if (user == null) { reply.Error = Error.NeedLogin; return(reply); } if (!user.HasWritePermission()) { reply.Error = Error.NoPermission; return(reply); } var users = _service.All(); if (!string.IsNullOrWhiteSpace(request.Filter)) { users = users.Where(u => u.Id.Contains(request.Filter, StringComparison.CurrentCultureIgnoreCase)); } users = users.OrderByDescending(u => u.Status).ThenBy(u => u.Id); if (request.Skip > 0 || request.Take > 0) { reply.Total = await users.CountAsync(); } if (request.Skip > 0) { users = users.Skip(request.Skip); } if (request.Take > 0) { users = users.Take(request.Take); } reply.Users.AddRange(await users .Select(Selector) .ToArrayAsync()); return(reply); }