mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-08-11 17:38:50 -04:00
remove any_ from has_permissions
we branch on any_ to either say "require ALL these permissions" or "require ANY of these permissions". But we only ever call the decorator with one permission, or with any_=True, so it's unnecessary
This commit is contained in:
@@ -159,7 +159,7 @@ def send_messages(service_id, template_id):
|
||||
|
||||
@main.route("/services/<service_id>/send/<template_id>.csv", methods=['GET'])
|
||||
@login_required
|
||||
@user_has_permissions('send_messages', 'manage_templates', any_=True)
|
||||
@user_has_permissions('send_messages', 'manage_templates')
|
||||
def get_example_csv(service_id, template_id):
|
||||
template = get_template(
|
||||
service_api_client.get_service_template(service_id, template_id)['data'], current_service
|
||||
|
||||
@@ -53,7 +53,7 @@ from app.utils import (
|
||||
|
||||
@main.route("/services/<service_id>/service-settings")
|
||||
@login_required
|
||||
@user_has_permissions('manage_service', 'manage_api_keys', any_=True)
|
||||
@user_has_permissions('manage_service', 'manage_api_keys')
|
||||
def service_settings(service_id):
|
||||
letter_branding_organisations = email_branding_client.get_letter_email_branding()
|
||||
organisation = organisations_client.get_service_organisation(service_id).get('name', None)
|
||||
@@ -360,7 +360,7 @@ def service_set_reply_to_email(service_id):
|
||||
|
||||
@main.route("/services/<service_id>/service-settings/email-reply-to", methods=['GET'])
|
||||
@login_required
|
||||
@user_has_permissions('manage_service', 'manage_api_keys', any_=True)
|
||||
@user_has_permissions('manage_service', 'manage_api_keys')
|
||||
def service_email_reply_to(service_id):
|
||||
reply_to_email_addresses = service_api_client.get_reply_to_email_addresses(service_id)
|
||||
return render_template(
|
||||
@@ -540,7 +540,7 @@ def service_set_auth_type(service_id):
|
||||
|
||||
@main.route("/services/<service_id>/service-settings/letter-contacts", methods=['GET'])
|
||||
@login_required
|
||||
@user_has_permissions('manage_service', 'manage_api_keys', any_=True)
|
||||
@user_has_permissions('manage_service', 'manage_api_keys')
|
||||
def service_letter_contact_details(service_id):
|
||||
letter_contact_details = service_api_client.get_letter_contacts(service_id)
|
||||
return render_template(
|
||||
@@ -596,7 +596,7 @@ def service_edit_letter_contact(service_id, letter_contact_id):
|
||||
|
||||
@main.route("/services/<service_id>/service-settings/sms-sender", methods=['GET'])
|
||||
@login_required
|
||||
@user_has_permissions('manage_service', 'manage_api_keys', any_=True)
|
||||
@user_has_permissions('manage_service', 'manage_api_keys')
|
||||
def service_sms_senders(service_id):
|
||||
|
||||
def attach_hint(sender):
|
||||
|
||||
@@ -159,7 +159,7 @@ class User(UserMixin):
|
||||
def permissions(self, permissions):
|
||||
raise AttributeError("Read only property")
|
||||
|
||||
def has_permissions(self, *permissions, any_=False, restrict_admin_usage=False):
|
||||
def has_permissions(self, *permissions, restrict_admin_usage=False):
|
||||
unknown_permissions = set(permissions) - all_permissions
|
||||
|
||||
if unknown_permissions:
|
||||
@@ -172,12 +172,7 @@ class User(UserMixin):
|
||||
# Service id is always set on the request for service specific views.
|
||||
service_id = _get_service_id_from_view_args()
|
||||
if service_id in self._permissions:
|
||||
if any_:
|
||||
has_permissions = any(x in self._permissions[service_id] for x in permissions)
|
||||
else:
|
||||
has_permissions = set(self._permissions[service_id]) >= set(permissions)
|
||||
|
||||
return has_permissions
|
||||
return any(x in self._permissions[service_id] for x in permissions)
|
||||
return False
|
||||
|
||||
def has_permission_for_service(self, service_id, permission):
|
||||
|
||||
@@ -107,7 +107,7 @@
|
||||
|
||||
{% macro edit_field(text, link, permissions=[]) -%}
|
||||
{% call field(align='right') %}
|
||||
{% if current_user.has_permissions(*permissions, **{'any_': True}) or not permissions %}
|
||||
{% if current_user.has_permissions(*permissions) or not permissions %}
|
||||
<a href="{{ link }}">{{ text }}</a>
|
||||
{% endif %}
|
||||
{% endcall %}
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
{% if current_user.has_permissions('manage_service') %}
|
||||
<li><a href="{{ url_for('.usage', service_id=current_service.id) }}">Usage</a></li>
|
||||
{% endif %}
|
||||
{% if current_user.has_permissions('manage_api_keys', 'manage_service', any_=True) %}
|
||||
{% if current_user.has_permissions('manage_api_keys', 'manage_service') %}
|
||||
<li><a href="{{ url_for('.service_settings', service_id=current_service.id) }}">Settings</a></li>
|
||||
{% endif %}
|
||||
{% if current_user.has_permissions('manage_api_keys') %}
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
{% if not templates %}
|
||||
{% include 'views/dashboard/write-first-messages.html' %}
|
||||
{% endif %}
|
||||
{% elif not current_user.has_permissions('send_messages', 'manage_api_keys', any_=True) %}
|
||||
{% elif not current_user.has_permissions('send_messages', 'manage_api_keys') %}
|
||||
{% include 'views/dashboard/no-permissions-banner.html' %}
|
||||
{% endif %}
|
||||
|
||||
|
||||
@@ -70,8 +70,7 @@ def test_user_has_permissions_or(
|
||||
client,
|
||||
user,
|
||||
['send_messages', 'manage_service'],
|
||||
True,
|
||||
kwargs={'any_': True})
|
||||
True)
|
||||
|
||||
|
||||
def test_user_has_permissions_multiple(
|
||||
|
||||
@@ -1931,7 +1931,7 @@ def mock_no_inbound_number_for_service(mocker):
|
||||
|
||||
@pytest.fixture(scope='function')
|
||||
def mock_has_permissions(mocker):
|
||||
def _has_permission(*permissions, any_=False, restrict_admin_usage=False):
|
||||
def _has_permission(*permissions, restrict_admin_usage=False):
|
||||
return True
|
||||
|
||||
return mocker.patch(
|
||||
|
||||
Reference in New Issue
Block a user