public async Task <ResponseDto <int> > UpdateUser(ClaimsPrincipal loggedInUser, AddUserDto userToUpdate) { var userFromDb = await _usersRepository.GetUserByLogin(userToUpdate.Login); ResponseDto <int> response = UsersValidator.ValidateUpdateUser(loggedInUser, userToUpdate, userFromDb); if (response.HasErrors) { return(response); } var mappedUser = Mapper.Map <User>(userToUpdate); mappedUser.Id = userFromDb.Id; if (!userFromDb.Password.IsEqualTo(userToUpdate.Password.GenerateSaltedHash(userFromDb.Salt))) { mappedUser.Salt = SaltCreator.CreateSalt(); mappedUser.Password = userToUpdate.Password.GenerateSaltedHash(mappedUser.Salt); } var result = await _usersRepository.UpdateUser(mappedUser); response.Value = result; return(response); }
public async Task <ResponseDto <int> > ChangePassword(ClaimsPrincipal userIdentity, ChangePasswordDto changePasswordDto) { var userFromDb = await _usersRepository.GetUserByLogin(userIdentity.Identity.Name); ResponseDto <int> response = UsersValidator.ValidateChangePassword(userFromDb, changePasswordDto); if (response.HasErrors) { return(response); } userFromDb.Salt = SaltCreator.CreateSalt(); userFromDb.Password = changePasswordDto.NewPassword.GenerateSaltedHash(userFromDb.Salt); var result = await _usersRepository.UpdateUser(userFromDb); response.Value = result; return(response); }
protected override void OnModelCreating(ModelBuilder modelBuilder) { var salt = SaltCreator.CreateSalt(); var user = new User { Email = "*****@*****.**", FirstName = "Adam", IsDeleted = false, LastName = "Kowalski", Login = "******", Salt = salt, Password = "******".GenerateSaltedHash(salt), Role = "SuperAdmin", Id = 1 }; modelBuilder.Entity <User>().HasData(user); }
public async Task <ResponseDto <int> > AddUser(AddUserDto userToAdd) { var userFromDb = await _usersRepository.GetUserByLogin(userToAdd.Login); var response = UsersValidator.ValidateAddUser(userToAdd, userFromDb); if (response.HasErrors) { return(response); } var userToDb = Mapper.Map <User>(userToAdd); userToDb.Salt = SaltCreator.CreateSalt(); userToDb.Password = userToAdd.Password.GenerateSaltedHash(userToDb.Salt); var result = await _usersRepository.AddUser(userToDb); response.Value = result; return(response); }
public async Task <ResponseDto <bool> > ResetPassword(string mail) { var userFromDb = await _usersRepository.GetUserByMail(mail); var response = UsersValidator.ValidateResetPassword(userFromDb, mail); if (response.HasErrors) { return(response); } var newPassword = CreateRandomPassword(10); userFromDb.Salt = SaltCreator.CreateSalt(); userFromDb.Password = newPassword.GenerateSaltedHash(userFromDb.Salt); var result = await _usersRepository.UpdateUser(userFromDb); await MailHelper.ResetPasswordMail(_appSettings.Value, mail, newPassword); response.Value = true; return(response); }