New platform-admin-dashboard page

This commit is contained in:
Leo Hemsted
2016-05-24 15:52:44 +01:00
parent 9ad1ea0e55
commit 1292bf9fe6
5 changed files with 73 additions and 2 deletions

View File

@@ -12,7 +12,8 @@ from app.main.views import (
send,
add_service,
code_not_received,
jobs, dashboard,
jobs,
dashboard,
templates,
service_settings,
forgot_password,
@@ -26,5 +27,6 @@ from app.main.views import (
all_services,
tour,
feedback,
providers
providers,
platform_admin
)

View File

@@ -0,0 +1,14 @@
from flask import render_template
from flask_login import login_required
from app.main import main
from app.utils import user_has_permissions
@main.route("/platform-admin")
@login_required
@user_has_permissions(admin_override=True)
def platform_admin():
return render_template(
'views/platform-admin.html'
)

View File

@@ -46,6 +46,11 @@
<li>
<a href="{{ url_for('main.choose_service') }}">Switch service</a>
</li>
{% if current_user.has_permissions(admin_override=True) %}
<li>
<a href="{{ url_for('main.platform_admin') }}">Platform admin</a>
</li>
{% endif %}
<li>
<a href="{{ url_for('main.sign_out')}}">Sign out</a>
</li>

View File

@@ -0,0 +1,16 @@
{% extends "withoutnav_template.html" %}
{% from "components/browse-list.html" import browse_list %}
{% block page_title %}
Platform admin GOV.UK Notify
{% endblock %}
{% block maincolumn_content %}
<h1 class="heading-large">
Platform admin
</h1>
&lt;insert platform admin content here&gt;
{% endblock %}

View File

@@ -0,0 +1,34 @@
from flask import url_for
from tests.conftest import mock_get_user
def test_should_redirect_if_not_logged_in(app_):
with app_.test_request_context():
with app_.test_client() as client:
response = client.get(url_for('main.platform_admin'))
assert response.status_code == 302
assert url_for('main.index', _external=True) in response.location
def test_should_403_if_not_platform_admin(app_, active_user_with_permissions, mocker):
with app_.test_request_context():
with app_.test_client() as client:
mock_get_user(mocker, user=active_user_with_permissions)
client.login(active_user_with_permissions)
response = client.get(url_for('main.platform_admin'))
assert response.status_code == 403
def test_should_render_platform_admin_page(app_, platform_admin_user, mocker):
with app_.test_request_context():
with app_.test_client() as client:
mock_get_user(mocker, user=platform_admin_user)
client.login(platform_admin_user)
response = client.get(url_for('main.platform_admin'))
assert response.status_code == 200
resp_data = response.get_data(as_text=True)
assert 'Platform admin' in resp_data