Пример #1
0
        public Users EditUserCredentials(EditUserCredentialsCommand account)
        {
            using (var db = _paintStoreContext)
            {
                _signInService.SignInCheck(new SignInCommand {
                    Email = account.OldEmail, Password = account.OldPassword
                }, db);

                var accountToUpdate = db.Users.First(x => x.Id == account.Id);

                if (account.NewEmail != null)
                {
                    accountToUpdate.Email = account.NewEmail;
                }
                if (account.NewPassword != null)
                {
                    if (account.NewPassword.Length < 8)
                    {
                        throw new BadPasswordException();
                    }
                    accountToUpdate.PasswordSoil = CredentialsHelpers.CreateSalt();
                    var encoding = new ASCIIEncoding();
                    var soil     = encoding.GetBytes(accountToUpdate.PasswordSoil);
                    var password = encoding.GetBytes(account.NewPassword);
                    accountToUpdate.PasswordHash = Convert.ToBase64String(CredentialsHelpers.GenerateSaltedHash(password, soil));
                }

                accountToUpdate.Token = CredentialsHelpers.CreateSalt();
                db.SaveChanges();
                return(accountToUpdate);
            }
        }
Пример #2
0
 public IActionResult EditUserCredentials([FromBody] EditUserCredentialsCommand user)
 {
     try
     {
         var editCredentials = _usersService.EditUserCredentials(user);
         return(Ok(editCredentials.Email));
     }
     catch (BadPasswordException)
     {
         return(StatusCode(409));
     }
     catch (UnauthorizedAccessException)
     {
         return(StatusCode(401));
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }