Make permission checking a method

Having a function that takes an instance as its only argument suggests
that it should instead be a method on that instance.
This commit is contained in:
Chris Hill-Scott
2018-06-13 12:07:08 +01:00
parent 1f0003903f
commit 39bb0ecbf7
2 changed files with 9 additions and 7 deletions

View File

@@ -40,6 +40,7 @@ from app.main.validators import (
ValidEmail,
ValidGovEmail,
)
from app.notify_client.models import roles
def get_time_value_and_label(future_time):
@@ -257,11 +258,13 @@ class RegisterUserFromOrgInviteForm(StripWhitespaceForm):
class AbstractPermissionsForm(StripWhitespaceForm):
view_activity = HiddenField("View activity")
send_messages = BooleanField("Send messages from existing templates")
manage_templates = BooleanField("Add and edit templates")
manage_service = BooleanField("Modify this service and its team")
manage_api_keys = BooleanField("Create and revoke API keys")
login_authentication = RadioField(
'Sign in using',
choices=[
@@ -271,6 +274,10 @@ class AbstractPermissionsForm(StripWhitespaceForm):
validators=[DataRequired()]
)
@property
def permissions(self):
return {role for role in roles.keys() if self[role].data is True}
class AdminPermissionsForm(AbstractPermissionsForm):

View File

@@ -54,12 +54,11 @@ def invite_user(service_id):
if form.validate_on_submit():
email_address = form.email_address.data
permissions = get_permissions_from_form(form)
invited_user = invite_api_client.create_invite(
current_user.id,
service_id,
email_address,
permissions,
form.permissions,
form.login_authentication.data
)
@@ -90,7 +89,7 @@ def edit_user_permissions(service_id, user_id):
if form.validate_on_submit():
user_api_client.set_user_permissions(
user_id, service_id,
permissions=set(get_permissions_from_form(form)),
permissions=form.permissions,
)
if service_has_email_auth:
user_api_client.update_user_attribute(user_id, auth_type=form.login_authentication.data)
@@ -148,7 +147,3 @@ def cancel_invited_user(service_id, invited_user_id):
invite_api_client.cancel_invited_user(service_id=service_id, invited_user_id=invited_user_id)
return redirect(url_for('main.manage_users', service_id=service_id))
def get_permissions_from_form(form):
return {role for role in roles.keys() if form[role].data is True}