dont use has_permissions to check for platform admins

platform_admin is a separate concept to permissions, so by removing the
checks for it from the current_user.has_permissions function, we can
simplify things greatly. We already record on the user whether they're
a platform admin anyway.
This commit is contained in:
Leo Hemsted
2018-02-27 16:45:20 +00:00
parent 4b69e1003e
commit 7ddad7c99e
18 changed files with 66 additions and 54 deletions

View File

@@ -19,12 +19,12 @@ from app.main.views.service_settings import (
get_branding_as_dict,
get_branding_as_value_and_label,
)
from app.utils import get_cdn_domain, user_has_permissions
from app.utils import get_cdn_domain, user_is_platform_admin
@main.route("/email-branding", methods=['GET', 'POST'])
@login_required
@user_has_permissions(admin_override=True)
@user_is_platform_admin
def email_branding():
brandings = email_branding_client.get_all_email_branding()
@@ -47,7 +47,7 @@ def email_branding():
@main.route("/email-branding/<branding_id>/edit", methods=['GET', 'POST'])
@main.route("/email-branding/<branding_id>/edit/<logo>", methods=['GET', 'POST'])
@login_required
@user_has_permissions(admin_override=True)
@user_is_platform_admin
def update_email_branding(branding_id, logo=None):
email_branding = email_branding_client.get_email_branding(branding_id)['email_branding']
@@ -98,7 +98,7 @@ def update_email_branding(branding_id, logo=None):
@main.route("/email-branding/create", methods=['GET', 'POST'])
@main.route("/email-branding/create/<logo>", methods=['GET', 'POST'])
@login_required
@user_has_permissions(admin_override=True)
@user_is_platform_admin
def create_email_branding(logo=None):
form = ServiceCreateEmailBranding()

View File

@@ -3,12 +3,12 @@ from flask_login import login_required
from app import inbound_number_client
from app.main import main
from app.utils import user_has_permissions
from app.utils import user_is_platform_admin
@main.route('/inbound-sms-admin', methods=['GET', 'POST'])
@login_required
@user_has_permissions(admin_override=True)
@user_is_platform_admin
def inbound_sms_admin():
data = inbound_number_client.get_all_inbound_sms_number_service()

View File

@@ -1,8 +1,7 @@
from flask import redirect, render_template, request, url_for
from flask_login import current_user, login_required
from notifications_utils.international_billing_rates import (
INTERNATIONAL_BILLING_RATES,
)
from notifications_utils.international_billing_rates import \
INTERNATIONAL_BILLING_RATES
from notifications_utils.template import HTMLEmailTemplate
from app import convert_to_boolean

View File

@@ -3,12 +3,12 @@ from flask_login import login_required
from app import letter_jobs_client
from app.main import main
from app.utils import user_has_permissions
from app.utils import user_is_platform_admin
@main.route("/letter-jobs", methods=['GET', 'POST'])
@login_required
@user_has_permissions(admin_override=True)
@user_is_platform_admin
def letter_jobs():
letter_jobs_list = letter_jobs_client.get_letter_jobs()

View File

@@ -10,12 +10,12 @@ from app.main.forms import (
InviteOrgUserForm,
SearchUsersForm,
)
from app.utils import user_has_permissions
from app.utils import user_is_platform_admin
@main.route("/organisations", methods=['GET'])
@login_required
@user_has_permissions(admin_override=True)
@user_is_platform_admin
def organisations():
orgs = organisations_client.get_organisations()
@@ -27,7 +27,7 @@ def organisations():
@main.route("/organisations/add", methods=['GET', 'POST'])
@login_required
@user_has_permissions(admin_override=True)
@user_is_platform_admin
def add_organisation():
form = CreateOrUpdateOrganisation()
@@ -46,7 +46,7 @@ def add_organisation():
@main.route("/organisations/<org_id>", methods=['GET'])
@login_required
@user_has_permissions(admin_override=True)
@user_is_platform_admin
def organisation_dashboard(org_id):
organisation_services = organisations_client.get_organisation_services(org_id)
@@ -58,7 +58,7 @@ def organisation_dashboard(org_id):
@main.route("/organisations/<org_id>/edit", methods=['GET', 'POST'])
@login_required
@user_has_permissions(admin_override=True)
@user_is_platform_admin
def update_organisation(org_id):
org = organisations_client.get_organisation(org_id)
@@ -83,7 +83,7 @@ def update_organisation(org_id):
@main.route("/organisations/<org_id>/users", methods=['GET'])
@login_required
@user_has_permissions(admin_override=True)
@user_is_platform_admin
def manage_org_users(org_id):
users = sorted(
user_api_client.get_users_for_organisation(org_id=org_id) + [
@@ -103,7 +103,7 @@ def manage_org_users(org_id):
@main.route("/organisations/<org_id>/users/invite", methods=['GET', 'POST'])
@login_required
@user_has_permissions(admin_override=True)
@user_is_platform_admin
def invite_org_user(org_id):
form = InviteOrgUserForm(
invalid_email_address=current_user.email_address
@@ -127,7 +127,7 @@ def invite_org_user(org_id):
@main.route("/organisations/<org_id>/users/<user_id>", methods=['GET', 'POST'])
@login_required
@user_has_permissions(admin_override=True)
@user_is_platform_admin
def edit_user_org_permissions(org_id, user_id):
user = user_api_client.get_user(user_id)
@@ -139,7 +139,7 @@ def edit_user_org_permissions(org_id, user_id):
@main.route("/organisations/<org_id>/users/<user_id>/delete", methods=['GET', 'POST'])
@login_required
@user_has_permissions(admin_override=True)
@user_is_platform_admin
def remove_user_from_organisation(org_id, user_id):
user = user_api_client.get_user(user_id)
if request.method == 'POST':
@@ -169,7 +169,7 @@ def remove_user_from_organisation(org_id, user_id):
@main.route("/organisations/<org_id>/cancel-invited-user/<invited_user_id>", methods=['GET'])
@login_required
@user_has_permissions(admin_override=True)
@user_is_platform_admin
def cancel_invited_org_user(org_id, invited_user_id):
org_invite_api_client.cancel_invited_user(org_id=org_id, invited_user_id=invited_user_id)

View File

@@ -8,12 +8,12 @@ from app import service_api_client
from app.main import main
from app.main.forms import DateFilterForm
from app.statistics_utils import get_formatted_percentage
from app.utils import user_has_permissions
from app.utils import user_is_platform_admin
@main.route("/platform-admin")
@login_required
@user_has_permissions(admin_override=True)
@user_is_platform_admin
def platform_admin():
form = DateFilterForm(request.args)
api_args = {'detailed': True,
@@ -41,7 +41,7 @@ def platform_admin():
@main.route("/platform-admin/live-services", endpoint='live_services')
@main.route("/platform-admin/trial-services", endpoint='trial_services')
@login_required
@user_has_permissions(admin_override=True)
@user_is_platform_admin
def platform_admin_services():
form = DateFilterForm(request.args)
api_args = {'detailed': True,

View File

@@ -5,12 +5,12 @@ from werkzeug.utils import redirect
from app import provider_client
from app.main import main
from app.main.forms import ProviderForm
from app.utils import user_has_permissions
from app.utils import user_is_platform_admin
@main.route("/providers")
@login_required
@user_has_permissions(admin_override=True)
@user_is_platform_admin
def view_providers():
providers = provider_client.get_all_providers()['provider_details']
domestic_email_providers, domestic_sms_providers, intl_sms_providers = [], [], []
@@ -32,7 +32,7 @@ def view_providers():
@main.route("/provider/<provider_id>/edit", methods=['GET', 'POST'])
@login_required
@user_has_permissions(admin_override=True)
@user_is_platform_admin
def edit_provider(provider_id):
provider = provider_client.get_provider_by_id(provider_id)['provider_details']
form = ProviderForm(active=provider['active'], priority=provider['priority'])
@@ -46,7 +46,7 @@ def edit_provider(provider_id):
@main.route("/provider/<provider_id>")
@login_required
@user_has_permissions(admin_override=True)
@user_is_platform_admin
def view_provider(provider_id):
versions = provider_client.get_provider_versions(provider_id)
return render_template('views/providers/provider.html', provider_versions=versions['data'])

View File

@@ -43,7 +43,12 @@ from app.main.forms import (
ServiceSwitchLettersForm,
SMSPrefixForm,
)
from app.utils import email_safe, get_cdn_domain, user_has_permissions
from app.utils import (
email_safe,
get_cdn_domain,
user_has_permissions,
user_is_platform_admin,
)
@main.route("/services/<service_id>/service-settings")
@@ -212,7 +217,7 @@ def submit_request_to_go_live(service_id):
@main.route("/services/<service_id>/service-settings/switch-live")
@login_required
@user_has_permissions(admin_override=True)
@user_is_platform_admin
def service_switch_live(service_id):
service_api_client.update_service(
current_service['id'],
@@ -226,7 +231,7 @@ def service_switch_live(service_id):
@main.route("/services/<service_id>/service-settings/research-mode")
@login_required
@user_has_permissions(admin_override=True)
@user_is_platform_admin
def service_switch_research_mode(service_id):
service_api_client.update_service_with_properties(
service_id,
@@ -270,7 +275,7 @@ def update_service_permissions(service_id, permissions, sms_sender=None):
@main.route("/services/<service_id>/service-settings/can-send-email")
@login_required
@user_has_permissions(admin_override=True)
@user_is_platform_admin
def service_switch_can_send_email(service_id):
switch_service_permissions(service_id, 'email')
return redirect(url_for('.service_settings', service_id=service_id))
@@ -278,7 +283,7 @@ def service_switch_can_send_email(service_id):
@main.route("/services/<service_id>/service-settings/can-send-sms")
@login_required
@user_has_permissions(admin_override=True)
@user_is_platform_admin
def service_switch_can_send_sms(service_id):
switch_service_permissions(service_id, 'sms')
return redirect(url_for('.service_settings', service_id=service_id))
@@ -286,7 +291,7 @@ def service_switch_can_send_sms(service_id):
@main.route("/services/<service_id>/service-settings/email-auth")
@login_required
@user_has_permissions(admin_override=True)
@user_is_platform_admin
def service_switch_email_auth(service_id):
switch_service_permissions(service_id, 'email_auth')
return redirect(url_for('.service_settings', service_id=service_id))
@@ -294,7 +299,7 @@ def service_switch_email_auth(service_id):
@main.route("/services/<service_id>/service-settings/can-send-precompiled-letter")
@login_required
@user_has_permissions(admin_override=True)
@user_is_platform_admin
def service_switch_can_send_precompiled_letter(service_id):
switch_service_permissions(service_id, 'precompiled_letter')
return redirect(url_for('.service_settings', service_id=service_id))
@@ -690,7 +695,7 @@ def service_set_letter_contact_block(service_id):
@main.route("/services/<service_id>/service-settings/set-organisation-type", methods=['GET', 'POST'])
@login_required
@user_has_permissions(admin_override=True)
@user_is_platform_admin
def set_organisation_type(service_id):
form = OrganisationTypeForm(organisation_type=current_service.get('organisation_type'))
@@ -715,7 +720,7 @@ def set_organisation_type(service_id):
@main.route("/services/<service_id>/service-settings/set-free-sms-allowance", methods=['GET', 'POST'])
@login_required
@user_has_permissions(admin_override=True)
@user_is_platform_admin
def set_free_sms_allowance(service_id):
form = FreeSMSAllowance(free_sms_allowance=billing_api_client.get_free_sms_fragment_limit_for_year(service_id))
@@ -733,7 +738,7 @@ def set_free_sms_allowance(service_id):
@main.route("/services/<service_id>/service-settings/set-email-branding", methods=['GET', 'POST'])
@login_required
@user_has_permissions(admin_override=True)
@user_is_platform_admin
def service_set_email_branding(service_id):
email_branding = email_branding_client.get_all_email_branding()
@@ -762,7 +767,7 @@ def service_set_email_branding(service_id):
@main.route("/services/<service_id>/service-settings/set-letter-branding", methods=['GET', 'POST'])
@login_required
@user_has_permissions(admin_override=True)
@user_is_platform_admin
def set_letter_branding(service_id):
form = LetterBranding(choices=email_branding_client.get_letter_email_branding().items())
@@ -784,7 +789,7 @@ def set_letter_branding(service_id):
@main.route("/services/<service_id>/service-settings/link-service-to-organisation", methods=['GET', 'POST'])
@login_required
@user_has_permissions(admin_override=True)
@user_is_platform_admin
def link_service_to_organisation(service_id):
organisations = organisations_client.get_organisations()

View File

@@ -328,7 +328,7 @@ def add_service_template(service_id, template_type):
def abort_403_if_not_admin_user():
if not current_user.has_permissions(admin_override=True):
if not current_user.platform_admin:
abort(403)