/// <summary> /// Asynchronicznie zmienia hasło użytkownika. /// </summary> /// <param name="context">Kontekst bazy danych</param> /// <param name="username">Nazwa uzytkownika</param> /// <param name="model">Obiekt z hasłami uzytkownika</param> /// <returns>String z ewentualną przyczyną błędu (pusty, jeśli wszystko przebiegło pomyślnie).</returns> public async Task <string> ChangePasswordAsync(IAccommodationContext context, string username, ChangePasswordViewModel model) { try { IUserAuthenticationService authenticationService = new UserAuthenticationService(); var identity = await authenticationService.AuthenticateUserAsync(context, username, model.OldPassword); if (identity == null) { return("Nieprawidłowe hasło dla użytkownika " + username); } IRegisterUser register = new UserRegister(); User newUser = register.GetNewUser(username, model.NewPassword); User user = context.Users.FirstOrDefault(u => u.Username.Equals(username)); if (user == null) { return("Błąd! Nie odnaleziono użytkownika"); } user.HashedPassword = newUser.HashedPassword; user.Salt = newUser.Salt; context.SaveChanges(); return(string.Empty); } catch (Exception) { return("Błąd!"); } }
public IHttpActionResult GetNewUserAsync(UserCredentialDto dto) { IRegisterUser register = new UserRegister(); User user = register.GetNewUser(dto.Username, dto.Password); return(Ok(user)); }
public IHttpActionResult ChangeUserPassword(UserNewPasswordDto dto) { IRegisterUser register = new UserRegister(); User newUser = register.GetNewUser(dto.Username, dto.NewPassword); using (var context = _provider.GetNewContext()) { using (var transaction = new TransactionScope()) { User user = context.Users.FirstOrDefault(u => u.Username.Equals(dto.Username)); if (user == null) { return(NotFound()); } user.Salt = newUser.Salt; user.HashedPassword = newUser.HashedPassword; context.SaveChanges(); transaction.Complete(); } } return(Ok(true)); }