mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-09-02 17:48:50 -04:00
Make a service model and use for permissions
Having the service floating about as JSON is a bit flakey. Could easily introduce a mistake where you mistype the name of a key and silently get `None`. Also means doing awkward things like `if 'permission' in current_service['permissions']`, whereas for users we can do the much cleaner `user.has_permission()`. So this commit: - introduces a model - adds a `.has_permission` method similar to the one we have for users
This commit is contained in:
@@ -48,14 +48,14 @@ def manage_users(service_id):
|
||||
@user_has_permissions('manage_service')
|
||||
def invite_user(service_id):
|
||||
|
||||
if 'caseworking' in current_service['permissions']:
|
||||
if current_service.has_permission('caseworking'):
|
||||
form = CaseworkingInviteUserForm
|
||||
else:
|
||||
form = AdminInviteUserForm
|
||||
|
||||
form = form(invalid_email_address=current_user.email_address)
|
||||
|
||||
service_has_email_auth = 'email_auth' in current_service['permissions']
|
||||
service_has_email_auth = current_service.has_permission('email_auth')
|
||||
if not service_has_email_auth:
|
||||
form.login_authentication.data = 'sms_auth'
|
||||
|
||||
@@ -83,13 +83,13 @@ def invite_user(service_id):
|
||||
@login_required
|
||||
@user_has_permissions('manage_service')
|
||||
def edit_user_permissions(service_id, user_id):
|
||||
service_has_email_auth = 'email_auth' in current_service['permissions']
|
||||
service_has_email_auth = current_service.has_permission('email_auth')
|
||||
# TODO we should probably using the service id here in the get user
|
||||
# call as well. eg. /user/<user_id>?&service=service_id
|
||||
user = user_api_client.get_user(user_id)
|
||||
user_has_no_mobile_number = user.mobile_number is None
|
||||
|
||||
if 'caseworking' in current_service['permissions']:
|
||||
if current_service.has_permission('caseworking'):
|
||||
form = partial(
|
||||
CaseworkingPermissionsForm,
|
||||
user_type='admin' if user.has_permission_for_service(service_id, 'view_activity') else 'caseworker',
|
||||
|
||||
Reference in New Issue
Block a user