/// <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!");
            }
        }
Example #2
0
        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));
        }