mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-09-07 11:18:24 -04:00
Fix reset password flow
It was broken because of mismatch in update password argument
This commit is contained in:
@@ -96,7 +96,7 @@ def log_in_user(user_id):
|
|||||||
session['current_session_id'] = user.current_session_id
|
session['current_session_id'] = user.current_session_id
|
||||||
# Check if coming from new password page
|
# Check if coming from new password page
|
||||||
if 'password' in session.get('user_details', {}):
|
if 'password' in session.get('user_details', {}):
|
||||||
user.update_password(session['user_details']['password'], from_email=True)
|
user.update_password(session['user_details']['password'], validated_email_access=True)
|
||||||
user.activate()
|
user.activate()
|
||||||
user.login()
|
user.login()
|
||||||
finally:
|
finally:
|
||||||
|
|||||||
@@ -106,8 +106,8 @@ class User(JSONModel, UserMixin):
|
|||||||
response = user_api_client.update_user_attribute(self.id, **kwargs)
|
response = user_api_client.update_user_attribute(self.id, **kwargs)
|
||||||
self.__init__(response)
|
self.__init__(response)
|
||||||
|
|
||||||
def update_password(self, password, from_email=False):
|
def update_password(self, password, validated_email_access=False):
|
||||||
response = user_api_client.update_password(self.id, password, from_email=from_email)
|
response = user_api_client.update_password(self.id, password, validated_email_access=validated_email_access)
|
||||||
self.__init__(response)
|
self.__init__(response)
|
||||||
|
|
||||||
def password_changed_more_recently_than(self, datetime_string):
|
def password_changed_more_recently_than(self, datetime_string):
|
||||||
|
|||||||
@@ -75,10 +75,10 @@ class UserApiClient(NotifyAdminAPIClient):
|
|||||||
return user_data['data']
|
return user_data['data']
|
||||||
|
|
||||||
@cache.delete('user-{user_id}')
|
@cache.delete('user-{user_id}')
|
||||||
def update_password(self, user_id, password, from_email=False):
|
def update_password(self, user_id, password, validated_email_access=False):
|
||||||
data = {"_password": password}
|
data = {"_password": password}
|
||||||
if from_email:
|
if validated_email_access:
|
||||||
data["from_email"] = from_email
|
data["validated_email_access"] = validated_email_access
|
||||||
url = "/user/{}/update-password".format(user_id)
|
url = "/user/{}/update-password".format(user_id)
|
||||||
user_data = self.post(url, data=data)
|
user_data = self.post(url, data=data)
|
||||||
return user_data['data']
|
return user_data['data']
|
||||||
|
|||||||
@@ -112,6 +112,6 @@ def test_should_sign_in_when_password_reset_is_successful_for_email_auth(
|
|||||||
|
|
||||||
# the log-in flow makes a couple of calls
|
# the log-in flow makes a couple of calls
|
||||||
mock_get_user.assert_called_once_with(user['id'])
|
mock_get_user.assert_called_once_with(user['id'])
|
||||||
mock_update_user_password.assert_called_once_with(user['id'], 'a-new_password', from_email=True)
|
mock_update_user_password.assert_called_once_with(user['id'], 'a-new_password', validated_email_access=True)
|
||||||
|
|
||||||
assert not mock_send_verify_code.called
|
assert not mock_send_verify_code.called
|
||||||
|
|||||||
@@ -191,7 +191,9 @@ def test_two_factor_should_set_password_when_new_password_exists_in_session(
|
|||||||
assert response.status_code == 302
|
assert response.status_code == 302
|
||||||
assert response.location == url_for('main.show_accounts_or_dashboard', _external=True)
|
assert response.location == url_for('main.show_accounts_or_dashboard', _external=True)
|
||||||
|
|
||||||
mock_update_user_password.assert_called_once_with(api_user_active['id'], 'changedpassword', from_email=True)
|
mock_update_user_password.assert_called_once_with(
|
||||||
|
api_user_active['id'], 'changedpassword', validated_email_access=True
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def test_two_factor_returns_error_when_user_is_locked(
|
def test_two_factor_returns_error_when_user_is_locked(
|
||||||
|
|||||||
@@ -1515,7 +1515,7 @@ def mock_verify_password(mocker):
|
|||||||
|
|
||||||
@pytest.fixture(scope='function')
|
@pytest.fixture(scope='function')
|
||||||
def mock_update_user_password(mocker, api_user_active):
|
def mock_update_user_password(mocker, api_user_active):
|
||||||
def _update(user_id, password, from_email=False):
|
def _update(user_id, password, validated_email_access=False):
|
||||||
api_user_active['id'] = user_id
|
api_user_active['id'] = user_id
|
||||||
return api_user_active
|
return api_user_active
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user