mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-07-13 09:50:08 -04:00
Add a temporary check for service folder permission
Since we're calling `User.has_template_folder_permission` directly in a few places (notably the `folder_path` template macro), we need to check that the service has the feature flag enabled first. This is usually done by the caller, but template macro doesn't have access to `current_service`. To avoid passing it in each time the macro is called we're adding a temporary check inside the method itself. This commit can be reverted completely when we remove the service feature flag.
This commit is contained in:
@@ -443,10 +443,10 @@ class Service():
|
||||
|
||||
user_folders = []
|
||||
for folder in self.all_template_folders:
|
||||
if not user.has_template_folder_permission(folder):
|
||||
if not user.has_template_folder_permission(folder, service=self):
|
||||
continue
|
||||
parent = self.get_template_folder(folder["parent_id"])
|
||||
if user.has_template_folder_permission(parent):
|
||||
if user.has_template_folder_permission(parent, service=self):
|
||||
user_folders.append(folder)
|
||||
else:
|
||||
folder_attrs = {
|
||||
@@ -460,7 +460,7 @@ class Service():
|
||||
else:
|
||||
parent = self.get_template_folder(parent["parent_id"])
|
||||
folder_attrs["parent_id"] = parent.get("id", None)
|
||||
if user.has_template_folder_permission(parent):
|
||||
if user.has_template_folder_permission(parent, service=self):
|
||||
break
|
||||
user_folders.append(folder_attrs)
|
||||
return user_folders
|
||||
|
||||
@@ -151,7 +151,15 @@ class User(UserMixin):
|
||||
def has_permission_for_service(self, service_id, permission):
|
||||
return permission in self._permissions.get(service_id, [])
|
||||
|
||||
def has_template_folder_permission(self, template_folder):
|
||||
def has_template_folder_permission(self, template_folder, service=None):
|
||||
from app import current_service
|
||||
|
||||
if service is None:
|
||||
service = current_service
|
||||
|
||||
if not service.has_permission('edit_folder_permissions'):
|
||||
return True
|
||||
|
||||
if self.platform_admin:
|
||||
return True
|
||||
|
||||
|
||||
Reference in New Issue
Block a user