mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-05-05 00:20:43 -04:00
Tell API what URL to use for email auth links
So that we can keep people on the prototype URL when doing user research. Depends on: - [ ] https://github.com/alphagov/notifications-api/pull/1645
This commit is contained in:
@@ -20,6 +20,7 @@ class UserApiClient(NotifyAdminAPIClient):
|
|||||||
self.service_id = app.config['ADMIN_CLIENT_USER_NAME']
|
self.service_id = app.config['ADMIN_CLIENT_USER_NAME']
|
||||||
self.api_key = app.config['ADMIN_CLIENT_SECRET']
|
self.api_key = app.config['ADMIN_CLIENT_SECRET']
|
||||||
self.max_failed_login_count = app.config["MAX_FAILED_LOGIN_COUNT"]
|
self.max_failed_login_count = app.config["MAX_FAILED_LOGIN_COUNT"]
|
||||||
|
self.admin_url = app.config['ADMIN_BASE_URL']
|
||||||
|
|
||||||
def register_user(self, name, email_address, mobile_number, password, auth_type):
|
def register_user(self, name, email_address, mobile_number, password, auth_type):
|
||||||
data = {
|
data = {
|
||||||
@@ -93,6 +94,8 @@ class UserApiClient(NotifyAdminAPIClient):
|
|||||||
data = {'to': to}
|
data = {'to': to}
|
||||||
if next_string:
|
if next_string:
|
||||||
data['next'] = next_string
|
data['next'] = next_string
|
||||||
|
if code_type == 'email':
|
||||||
|
data['email_auth_link_host'] = self.admin_url
|
||||||
endpoint = '/user/{0}/{1}-code'.format(user_id, code_type)
|
endpoint = '/user/{0}/{1}-code'.format(user_id, code_type)
|
||||||
self.post(endpoint, data=data)
|
self.post(endpoint, data=data)
|
||||||
|
|
||||||
|
|||||||
@@ -117,6 +117,7 @@ def test_process_email_auth_sign_in_return_2fa_template(
|
|||||||
'password': 'val1dPassw0rd!'})
|
'password': 'val1dPassw0rd!'})
|
||||||
assert response.status_code == 302
|
assert response.status_code == 302
|
||||||
assert response.location == url_for('.two_factor_email_sent', _external=True)
|
assert response.location == url_for('.two_factor_email_sent', _external=True)
|
||||||
|
mock_send_verify_code.assert_called_with(api_user_active_email_auth.id, 'email', None)
|
||||||
mock_verify_password.assert_called_with(api_user_active_email_auth.id, 'val1dPassw0rd!')
|
mock_verify_password.assert_called_with(api_user_active_email_auth.id, 'val1dPassw0rd!')
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
|
from app import user_api_client
|
||||||
from app.notify_client.user_api_client import UserApiClient
|
from app.notify_client.user_api_client import UserApiClient
|
||||||
|
|
||||||
|
|
||||||
@@ -52,3 +53,21 @@ def test_client_doesnt_activate_if_already_active(mocker, api_user_active):
|
|||||||
client.activate_user(api_user_active)
|
client.activate_user(api_user_active)
|
||||||
|
|
||||||
assert not mock_post.called
|
assert not mock_post.called
|
||||||
|
|
||||||
|
|
||||||
|
def test_client_passes_admin_url_when_sending_email_auth(
|
||||||
|
app_,
|
||||||
|
mocker,
|
||||||
|
fake_uuid,
|
||||||
|
):
|
||||||
|
mock_post = mocker.patch('app.notify_client.user_api_client.UserApiClient.post')
|
||||||
|
|
||||||
|
user_api_client.send_verify_code(fake_uuid, 'email', 'ignored@example.com')
|
||||||
|
|
||||||
|
mock_post.assert_called_once_with(
|
||||||
|
'/user/{}/email-code'.format(fake_uuid),
|
||||||
|
data={
|
||||||
|
'to': 'ignored@example.com',
|
||||||
|
'email_auth_link_host': 'http://localhost:6012',
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user