mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-08-23 07:46:23 -04:00
Merge pull request #3015 from alphagov/optional-platform-admin
add option to suppress platform admin temporarily
This commit is contained in:
@@ -14,6 +14,18 @@ def test_should_show_overview_page(
|
||||
):
|
||||
page = client_request.get(('main.user_profile'))
|
||||
assert page.select_one('h1').text.strip() == 'Your profile'
|
||||
assert 'Use platform admin view' not in page
|
||||
|
||||
|
||||
def test_overview_page_shows_disable_for_platform_admin(
|
||||
client_request,
|
||||
platform_admin_user
|
||||
):
|
||||
client_request.login(platform_admin_user)
|
||||
page = client_request.get(('main.user_profile'))
|
||||
assert page.select_one('h1').text.strip() == 'Your profile'
|
||||
disable_platform_admin_row = page.select('tr')[-1]
|
||||
assert ' '.join(disable_platform_admin_row.text.split()) == 'Use platform admin view Yes Change'
|
||||
|
||||
|
||||
def test_should_show_name_page(
|
||||
@@ -264,3 +276,49 @@ def test_non_gov_user_cannot_access_change_email_page(
|
||||
):
|
||||
client_request.login(api_nongov_user_active)
|
||||
client_request.get('main.user_profile_email', _expected_status=403)
|
||||
|
||||
|
||||
def test_normal_user_doesnt_see_disable_platform_admin(client_request):
|
||||
client_request.get('main.user_profile_disable_platform_admin_view', _expected_status=403)
|
||||
|
||||
|
||||
def test_platform_admin_can_see_disable_platform_admin_page(client_request, platform_admin_user):
|
||||
client_request.login(platform_admin_user)
|
||||
page = client_request.get('main.user_profile_disable_platform_admin_view')
|
||||
|
||||
assert page.select_one('h1').text.strip() == 'Use platform admin view'
|
||||
assert page.select_one('input[checked]')['value'] == 'True'
|
||||
|
||||
|
||||
def test_can_disable_platform_admin(client_request, platform_admin_user):
|
||||
client_request.login(platform_admin_user)
|
||||
|
||||
with client_request.session_transaction() as session:
|
||||
assert 'disable_platform_admin_view' not in session
|
||||
|
||||
client_request.post(
|
||||
'main.user_profile_disable_platform_admin_view',
|
||||
_data={'enabled': False},
|
||||
_expected_status=302,
|
||||
_expected_redirect=url_for('main.user_profile', _external=True),
|
||||
)
|
||||
|
||||
with client_request.session_transaction() as session:
|
||||
assert session['disable_platform_admin_view'] is True
|
||||
|
||||
|
||||
def test_can_reenable_platform_admin(client_request, platform_admin_user):
|
||||
client_request.login(platform_admin_user)
|
||||
|
||||
with client_request.session_transaction() as session:
|
||||
session['disable_platform_admin_view'] = True
|
||||
|
||||
client_request.post(
|
||||
'main.user_profile_disable_platform_admin_view',
|
||||
_data={'enabled': True},
|
||||
_expected_status=302,
|
||||
_expected_redirect=url_for('main.user_profile', _external=True),
|
||||
)
|
||||
|
||||
with client_request.session_transaction() as session:
|
||||
assert session['disable_platform_admin_view'] is False
|
||||
|
||||
Reference in New Issue
Block a user