remove unnecessary invocations of has_permissions(..., any_=True)

when added to a service, all users are given the view_activity
permission. So, if that's included in the list, we don't need `any_`,
and we don't need any of the other permissions.
This commit is contained in:
Leo Hemsted
2018-02-27 17:18:26 +00:00
parent 7ddad7c99e
commit bd54dbb40c
7 changed files with 9 additions and 39 deletions

View File

@@ -43,11 +43,7 @@ page_headings = {
@login_required @login_required
@user_has_permissions( @user_has_permissions(
'view_activity', 'view_activity',
'send_texts', admin_override=True,
'send_emails',
'manage_templates',
'manage_api_keys',
admin_override=True, any_=True
) )
def view_template(service_id, template_id): def view_template(service_id, template_id):
template = service_api_client.get_service_template(service_id, str(template_id))['data'] template = service_api_client.get_service_template(service_id, str(template_id))['data']
@@ -81,11 +77,7 @@ def view_template(service_id, template_id):
@login_required @login_required
@user_has_permissions( @user_has_permissions(
'view_activity', 'view_activity',
'send_texts', admin_override=True,
'send_emails',
'manage_templates',
'manage_api_keys',
admin_override=True, any_=True
) )
def start_tour(service_id, template_id): def start_tour(service_id, template_id):
@@ -110,12 +102,7 @@ def start_tour(service_id, template_id):
@login_required @login_required
@user_has_permissions( @user_has_permissions(
'view_activity', 'view_activity',
'send_texts',
'send_emails',
'manage_templates',
'manage_api_keys',
admin_override=True, admin_override=True,
any_=True,
) )
def choose_template(service_id, template_type='all'): def choose_template(service_id, template_type='all'):
templates = service_api_client.get_service_templates(service_id)['data'] templates = service_api_client.get_service_templates(service_id)['data']
@@ -181,12 +168,7 @@ def _view_template_version(service_id, template_id, version, letters_as_pdf=Fals
@login_required @login_required
@user_has_permissions( @user_has_permissions(
'view_activity', 'view_activity',
'send_texts',
'send_emails',
'manage_templates',
'manage_api_keys',
admin_override=True, admin_override=True,
any_=True
) )
def view_template_version(service_id, template_id, version): def view_template_version(service_id, template_id, version):
return render_template( return render_template(
@@ -199,12 +181,7 @@ def view_template_version(service_id, template_id, version):
@login_required @login_required
@user_has_permissions( @user_has_permissions(
'view_activity', 'view_activity',
'send_texts',
'send_emails',
'manage_templates',
'manage_api_keys',
admin_override=True, admin_override=True,
any_=True
) )
def view_template_version_preview(service_id, template_id, version, filetype): def view_template_version_preview(service_id, template_id, version, filetype):
db_template = service_api_client.get_service_template(service_id, template_id, version=version)['data'] db_template = service_api_client.get_service_template(service_id, template_id, version=version)['data']
@@ -515,12 +492,7 @@ def redact_template(service_id, template_id):
@login_required @login_required
@user_has_permissions( @user_has_permissions(
'view_activity', 'view_activity',
'send_texts',
'send_emails',
'manage_templates',
'manage_api_keys',
admin_override=True, admin_override=True,
any_=True
) )
def view_template_versions(service_id, template_id): def view_template_versions(service_id, template_id):
return render_template( return render_template(

View File

@@ -133,7 +133,7 @@ class UserApiClient(NotifyAdminAPIClient):
def get_count_of_users_with_permission(self, service_id, permission): def get_count_of_users_with_permission(self, service_id, permission):
return len([ return len([
user for user in self.get_users_for_service(service_id) user for user in self.get_users_for_service(service_id)
if user.has_permissions(permission, any_=True) if user.has_permissions(permission)
]) ])
def get_users_for_organisation(self, org_id): def get_users_for_organisation(self, org_id):

View File

@@ -44,14 +44,12 @@
<nav class="navigation"> <nav class="navigation">
<ul> <ul>
<li><a href="{{ url_for('.service_dashboard', service_id=current_service.id) }}">Dashboard</a></li> <li><a href="{{ url_for('.service_dashboard', service_id=current_service.id) }}">Dashboard</a></li>
{% if current_user.has_permissions('view_activity', 'manage_templates', 'manage_api_keys', admin_override=True, any_=True) %} {% if current_user.has_permissions('view_activity', admin_override=True) %}
<li><a href="{{ url_for('.choose_template', service_id=current_service.id) }}">Templates</a></li> <li><a href="{{ url_for('.choose_template', service_id=current_service.id) }}">Templates</a></li>
{% endif %} {% endif %}
<li><a href="{{ url_for('.manage_users', service_id=current_service.id) }}">Team members</a></li>
{% if current_user.has_permissions('manage_users', 'manage_settings', admin_override=True) %} {% if current_user.has_permissions('manage_users', 'manage_settings', admin_override=True) %}
<li><a href="{{ url_for('.manage_users', service_id=current_service.id) }}">Team members</a></li>
<li><a href="{{ url_for('.usage', service_id=current_service.id) }}">Usage</a></li> <li><a href="{{ url_for('.usage', service_id=current_service.id) }}">Usage</a></li>
{% elif current_user.has_permissions('view_activity') %}
<li><a href="{{ url_for('.manage_users', service_id=current_service.id) }}">Team members</a></li>
{% endif %} {% endif %}
{% if current_user.has_permissions('manage_api_keys', 'manage_settings', admin_override=True, any_=True) %} {% if current_user.has_permissions('manage_api_keys', 'manage_settings', admin_override=True, any_=True) %}
<li><a href="{{ url_for('.service_settings', service_id=current_service.id) }}">Settings</a></li> <li><a href="{{ url_for('.service_settings', service_id=current_service.id) }}">Settings</a></li>

View File

@@ -14,7 +14,7 @@
{% if not templates %} {% if not templates %}
{% if current_user.has_permissions('manage_templates', any_=True) %} {% if current_user.has_permissions('manage_templates') %}
<p class="bottom-gutter"> <p class="bottom-gutter">
You need a template before you can send text messages. You need a template before you can send text messages.
</p> </p>

View File

@@ -14,7 +14,7 @@
<h1 class="heading-large">Templates</h1> <h1 class="heading-large">Templates</h1>
{% if current_user.has_permissions('manage_templates', any_=True) %} {% if current_user.has_permissions('manage_templates') %}
<p class="bottom-gutter"> <p class="bottom-gutter">
You need a template before you can send You need a template before you can send
{% if 'letter' in current_service.permissions %} {% if 'letter' in current_service.permissions %}

View File

@@ -1752,7 +1752,7 @@ def test_route_permissions(
service_id=service_one['id'], service_id=service_one['id'],
template_id=fake_uuid template_id=fake_uuid
), ),
['send_texts', 'send_emails', 'send_letters'], ['view_activity', 'send_texts', 'send_emails', 'send_letters'],
api_user_active, api_user_active,
service_one) service_one)

View File

@@ -139,7 +139,7 @@ def test_should_be_able_to_view_a_template_with_links(
permissions, permissions,
links_to_be_shown, links_to_be_shown,
): ):
active_user_with_permissions._permissions[service_one['id']] = permissions active_user_with_permissions._permissions[service_one['id']] = permissions + ['view_activity']
client.login(active_user_with_permissions, mocker, service_one) client.login(active_user_with_permissions, mocker, service_one)
response = client.get(url_for( response = client.get(url_for(