mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-09-11 18:37:33 -04:00
Add a helper Service method to get a template given user has permission
Checks if the user has access to the template's parent folder and either returns the template or a 403 response. This method should be used instead of calling service_api_client from the views.
This commit is contained in:
@@ -171,6 +171,22 @@ class Service():
|
|||||||
and template.get('folder') == template_folder_id
|
and template.get('folder') == template_folder_id
|
||||||
]
|
]
|
||||||
|
|
||||||
|
def get_template(self, template_id, version=None):
|
||||||
|
return service_api_client.get_service_template(self.id, str(template_id), version)['data']
|
||||||
|
|
||||||
|
def get_template_with_user_permission_or_403(self, template_id, user):
|
||||||
|
template = self.get_template(template_id)
|
||||||
|
|
||||||
|
if not self.has_permission("edit_folder_permissions"):
|
||||||
|
return template
|
||||||
|
|
||||||
|
template_folder = self.get_template_folder(template["folder"])
|
||||||
|
|
||||||
|
if not user.has_template_folder_permission(template_folder):
|
||||||
|
abort(403)
|
||||||
|
|
||||||
|
return template
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def available_template_types(self):
|
def available_template_types(self):
|
||||||
return list(filter(self.has_permission, self.TEMPLATE_TYPES))
|
return list(filter(self.has_permission, self.TEMPLATE_TYPES))
|
||||||
|
|||||||
Reference in New Issue
Block a user