mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-08-23 15:57:23 -04:00
Merge pull request #1671 from alphagov/auth-type-by-request
Invite users to choose how team members sign in
This commit is contained in:
@@ -536,6 +536,15 @@ def service_set_letters(service_id):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@main.route("/services/<service_id>/service-settings/set-auth-type", methods=['GET'])
|
||||||
|
@login_required
|
||||||
|
@user_has_permissions('manage_settings', admin_override=True)
|
||||||
|
def service_set_auth_type(service_id):
|
||||||
|
return render_template(
|
||||||
|
'views/service-settings/set-auth-type.html',
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
@main.route("/services/<service_id>/service-settings/letter-contacts", methods=['GET'])
|
@main.route("/services/<service_id>/service-settings/letter-contacts", methods=['GET'])
|
||||||
@login_required
|
@login_required
|
||||||
@user_has_permissions('manage_settings', admin_override=True)
|
@user_has_permissions('manage_settings', admin_override=True)
|
||||||
|
|||||||
@@ -26,6 +26,16 @@
|
|||||||
{{ edit_field('Change', url_for('.service_name_change', service_id=current_service.id)) }}
|
{{ edit_field('Change', url_for('.service_name_change', service_id=current_service.id)) }}
|
||||||
{% endcall %}
|
{% endcall %}
|
||||||
|
|
||||||
|
{% call row() %}
|
||||||
|
{{ text_field('Sign-in method') }}
|
||||||
|
{{ text_field(
|
||||||
|
'Email link or text message code'
|
||||||
|
if 'email_auth' in current_service.permissions
|
||||||
|
else 'Text message code'
|
||||||
|
) }}
|
||||||
|
{{ edit_field('Change', url_for('.service_set_auth_type', service_id=current_service.id)) }}
|
||||||
|
{% endcall %}
|
||||||
|
|
||||||
{% endcall %}
|
{% endcall %}
|
||||||
|
|
||||||
{% call mapping_table(
|
{% call mapping_table(
|
||||||
|
|||||||
44
app/templates/views/service-settings/set-auth-type.html
Normal file
44
app/templates/views/service-settings/set-auth-type.html
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
{% extends "withnav_template.html" %}
|
||||||
|
{% from "components/textbox.html" import textbox %}
|
||||||
|
{% from "components/page-footer.html" import page_footer %}
|
||||||
|
|
||||||
|
{% block service_page_title %}
|
||||||
|
Text message sender
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block maincolumn_content %}
|
||||||
|
|
||||||
|
<div class="grid-row">
|
||||||
|
<div class="column-five-sixths">
|
||||||
|
<h1 class="heading-large">Sign-in method</h1>
|
||||||
|
{% if 'email_auth' in current_service.permissions %}
|
||||||
|
<p class="heading-small bottom-gutter-2-3">
|
||||||
|
Email link or text message code
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Your team members can sign in with either a text message code
|
||||||
|
or an email link.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
You can <a href="{{ url_for('.manage_users', service_id=current_service.id) }}">set the sign-in method for individual team members</a>.
|
||||||
|
</p>
|
||||||
|
{% else %}
|
||||||
|
<p class="heading-small bottom-gutter-2-3">
|
||||||
|
Text message code
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Your team members sign in with a text message code.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
If signing in with a text message is a problem for your team,
|
||||||
|
please <a href="{{ url_for('.support') }}">contact us</a>.
|
||||||
|
</p>
|
||||||
|
{% endif %}
|
||||||
|
{{ page_footer(
|
||||||
|
back_link=url_for('.service_settings', service_id=current_service.id),
|
||||||
|
back_link_text='Back to settings'
|
||||||
|
) }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{% endblock %}
|
||||||
@@ -46,6 +46,7 @@ def mock_get_service_settings_page_common(
|
|||||||
|
|
||||||
'Label Value Action',
|
'Label Value Action',
|
||||||
'Service name service one Change',
|
'Service name service one Change',
|
||||||
|
'Sign-in method Text message code Change',
|
||||||
|
|
||||||
'Label Value Action',
|
'Label Value Action',
|
||||||
'Send emails On Change',
|
'Send emails On Change',
|
||||||
@@ -66,6 +67,7 @@ def mock_get_service_settings_page_common(
|
|||||||
|
|
||||||
'Label Value Action',
|
'Label Value Action',
|
||||||
'Service name service one Change',
|
'Service name service one Change',
|
||||||
|
'Sign-in method Text message code Change',
|
||||||
|
|
||||||
'Label Value Action',
|
'Label Value Action',
|
||||||
'Send emails On Change',
|
'Send emails On Change',
|
||||||
@@ -122,6 +124,7 @@ def test_should_show_overview(
|
|||||||
(['email', 'sms', 'inbound_sms', 'international_sms'], [
|
(['email', 'sms', 'inbound_sms', 'international_sms'], [
|
||||||
|
|
||||||
'Service name service one Change',
|
'Service name service one Change',
|
||||||
|
'Sign-in method Text message code Change',
|
||||||
|
|
||||||
'Label Value Action',
|
'Label Value Action',
|
||||||
'Send emails On Change',
|
'Send emails On Change',
|
||||||
@@ -139,9 +142,10 @@ def test_should_show_overview(
|
|||||||
'Send letters Off Change',
|
'Send letters Off Change',
|
||||||
|
|
||||||
]),
|
]),
|
||||||
(['email', 'sms'], [
|
(['email', 'sms', 'email_auth'], [
|
||||||
|
|
||||||
'Service name service one Change',
|
'Service name service one Change',
|
||||||
|
'Sign-in method Email link or text message code Change',
|
||||||
|
|
||||||
'Label Value Action',
|
'Label Value Action',
|
||||||
'Send emails On Change',
|
'Send emails On Change',
|
||||||
@@ -249,7 +253,7 @@ def test_letter_contact_block_shows_none_if_not_set(
|
|||||||
))
|
))
|
||||||
|
|
||||||
page = BeautifulSoup(response.data.decode('utf-8'), 'html.parser')
|
page = BeautifulSoup(response.data.decode('utf-8'), 'html.parser')
|
||||||
div = page.find_all('tr')[8].find_all('td')[1].div
|
div = page.find_all('tr')[9].find_all('td')[1].div
|
||||||
assert div.text.strip() == 'Not set'
|
assert div.text.strip() == 'Not set'
|
||||||
assert 'default' in div.attrs['class'][0]
|
assert 'default' in div.attrs['class'][0]
|
||||||
|
|
||||||
@@ -269,7 +273,7 @@ def test_escapes_letter_contact_block(
|
|||||||
))
|
))
|
||||||
|
|
||||||
page = BeautifulSoup(response.data.decode('utf-8'), 'html.parser')
|
page = BeautifulSoup(response.data.decode('utf-8'), 'html.parser')
|
||||||
div = str(page.find_all('tr')[8].find_all('td')[1].div)
|
div = str(page.find_all('tr')[9].find_all('td')[1].div)
|
||||||
assert 'foo<br/>bar' in div
|
assert 'foo<br/>bar' in div
|
||||||
assert '<script>' not in div
|
assert '<script>' not in div
|
||||||
|
|
||||||
@@ -713,9 +717,9 @@ def test_and_more_hint_appears_on_settings_with_more_than_just_a_single_sender(
|
|||||||
page.select('tbody tr')[index].text
|
page.select('tbody tr')[index].text
|
||||||
)
|
)
|
||||||
|
|
||||||
assert get_row(page, 2) == "Email reply to addresses test@example.com …and 2 more Manage"
|
assert get_row(page, 3) == "Email reply to addresses test@example.com …and 2 more Manage"
|
||||||
assert get_row(page, 4) == "Text message sender Example …and 2 more Manage"
|
assert get_row(page, 5) == "Text message sender Example …and 2 more Manage"
|
||||||
assert get_row(page, 9) == "Sender addresses 1 Example Street …and 2 more Manage"
|
assert get_row(page, 10) == "Sender addresses 1 Example Street …and 2 more Manage"
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize('sender_list_page, expected_output', [
|
@pytest.mark.parametrize('sender_list_page, expected_output', [
|
||||||
@@ -2003,6 +2007,20 @@ def test_cant_resume_active_service(
|
|||||||
'Your service can receive text messages sent to 0781239871.'
|
'Your service can receive text messages sent to 0781239871.'
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
|
(
|
||||||
|
'main.service_set_auth_type',
|
||||||
|
[],
|
||||||
|
(
|
||||||
|
'Text message code'
|
||||||
|
)
|
||||||
|
),
|
||||||
|
(
|
||||||
|
'main.service_set_auth_type',
|
||||||
|
['email_auth'],
|
||||||
|
(
|
||||||
|
'Email link or text message code'
|
||||||
|
)
|
||||||
|
),
|
||||||
])
|
])
|
||||||
def test_invitation_pages(
|
def test_invitation_pages(
|
||||||
logged_in_client,
|
logged_in_client,
|
||||||
|
|||||||
Reference in New Issue
Block a user