Merge with master.

This commit is contained in:
Nicholas Staples
2016-01-22 11:38:16 +00:00
6 changed files with 45 additions and 27 deletions

View File

@@ -28,6 +28,12 @@
}
.banner-info {
@extend .banner;
background: $govuk-blue;
color: $white;
}
.banner-dangerous {
@extend .banner;

View File

@@ -15,7 +15,7 @@ class UserApiClient(BaseAPIClient):
self.base_url = app.config['API_HOST_NAME']
self.client_id = app.config['ADMIN_CLIENT_USER_NAME']
self.secret = app.config['ADMIN_CLIENT_SECRET']
self.failed_login_count = app.config["MAX_FAILED_LOGIN_COUNT"]
self.max_failed_login_count = app.config["MAX_FAILED_LOGIN_COUNT"]
def register_user(self, name, email_address, mobile_number, password):
data = {
@@ -25,26 +25,25 @@ class UserApiClient(BaseAPIClient):
"password": password
}
user_data = self.post("/user", data)
return User(user_data['data'], max_failed_login_count=self.failed_login_count)
return User(user_data['data'], max_failed_login_count=self.max_failed_login_count)
def get_user(self, id):
url = "/user/{}".format(id)
user_data = self.get(url)
return User(user_data['data'], max_failed_login_count=self.failed_login_count)
return User(user_data['data'], max_failed_login_count=self.max_failed_login_count)
def get_users(self):
url = "/user".format()
users_data = self.get(url)['data']
users_data = self.get("/user")['data']
users = []
for user in users_data:
users.append(User(user, max_failed_login_count=self.failed_login_count))
users.append(User(user, max_failed_login_count=self.max_failed_login_count))
return users
def update_user(self, user):
data = user.serialize()
url = "/user/{}".format(user.id)
user_data = self.put(url, data=data)
return User(user_data['data'], max_failed_login_count=self.failed_login_count)
return User(user_data['data'], max_failed_login_count=self.max_failed_login_count)
def verify_password(self, user, password):
try:
@@ -76,6 +75,7 @@ class User(object):
def __init__(self, fields, max_failed_login_count=3):
self.fields = fields
self.max_failed_login_count = max_failed_login_count
self._failed_login_count = 0
@property
def id(self):
@@ -114,11 +114,19 @@ class User(object):
def state(self, state):
self.fields['state'] = state
@property
def failed_login_count(self):
return self._failed_login_count
@failed_login_count.setter
def failed_login_count(self, num):
self._failed_login_count += num
def is_anonymous(self):
return False
def is_locked(self):
return self.fields.get('failed_login_count') > self.max_failed_login_count
return self.failed_login_count > self.max_failed_login_count
def serialize(self):
return self.fields

View File

@@ -53,11 +53,11 @@
<div class="column-half">
<details class="dropdown">
<summary class="dropdown-toggle">
Service name
Current service
</summary>
<div>
<a href="#">Switch to A N Other service</a>
<a href="{{ url_for('main.add_service') }}">Add a new service to GOV.UK Notify</a>
<a href="{{ url_for('main.choose_service') }}">Switch service</a>
<a href="{{ url_for('.add_service') }}">Add a new service to GOV.UK Notify</a>
</div>
</details>
</div>

View File

@@ -1,5 +1,5 @@
{% macro banner(body, with_tick=False) %}
<div class='banner{% if with_tick %}-with-tick{% endif %}'>
{% macro banner(body, type=None, with_tick=False) %}
<div class='banner{% if type %}-{{ type }}{% endif %}{% if with_tick %}-with-tick{% endif %}'>
{{ body }}
</div>
{% endmacro %}

View File

@@ -3,14 +3,14 @@
<li><a href="{{ url_for('.service_dashboard', service_id=service_id) }}">Dashboard</a></li>
</ul>
<ul>
<li><a href="{{ url_for('.send_sms', service_id=service_id) }}">Send text messages</a></li>
<li><a href="{{ url_for('.send_email', service_id=service_id) }}">Send emails</a></li>
<li><a href="{{ url_for('.view_jobs', service_id=service_id) }}">Activity</a></li>
<!--<li><a href="{{ url_for('.send_sms', service_id=service_id) }}">Send text messages</a></li>-->
<!--<li><a href="{{ url_for('.send_email', service_id=service_id) }}">Send emails</a></li>-->
<!--<li><a href="{{ url_for('.view_jobs', service_id=service_id) }}">Activity</a></li>-->
<li><a href="{{ url_for('.manage_service_templates', service_id=service_id) }}">Templates</a></li>
</ul>
<ul>
<li><a href="{{ url_for('.api_keys', service_id=123) }}">API keys</a></li>
<li><a href="{{ url_for('.documentation', service_id=123) }}">Developer documentation</a></li>
<li><a href="{{ url_for('.api_keys', service_id=service_id) }}">API keys</a></li>
<li><a href="{{ url_for('.documentation', service_id=service_id) }}">Developer documentation</a></li>
</ul>
<ul>
<li><a href="{{ url_for('.manage_users', service_id=service_id) }}">Manage users</a></li>

View File

@@ -1,13 +1,17 @@
{% extends "admin_template.html" %}
{% from "main_nav.html" import main_nav with context %}
{% from "components/banner.html" import banner %}
{% block fullwidth_content %}
<div class="grid-row">
<div class="column-one-quarter">
{% include "main_nav.html" %}
</div>
<div class="column-three-quarters">
{% block maincolumn_content %}{% endblock %}
</div>
</div>
<div class="grid-row">
<div class="column-one-quarter">
{% include "main_nav.html" %}
</div>
<div class="column-three-quarters">
{{ banner(
'You are in restricted mode. You can only send notifications to yourself.',
'info'
) }}
{% block maincolumn_content %}{% endblock %}
</div>
</div>
{% endblock %}