mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-08-24 00:07:02 -04:00
Make sure that only templates inside visible folders are considered
When filtering by template type we should ignore any templates that are inside folders user does not have permission for. Otherwise the parent folder can show up as empty instead of not showing up at all. This adds check for user_permissions to is_folder_visible on the service model in admin.
This commit is contained in:
@@ -424,7 +424,7 @@ class Service():
|
|||||||
folder for folder in folders
|
folder for folder in folders
|
||||||
if (
|
if (
|
||||||
folder['parent_id'] == parent_folder_id
|
folder['parent_id'] == parent_folder_id
|
||||||
and self.is_folder_visible(folder['id'], template_type)
|
and self.is_folder_visible(folder['id'], template_type, user_id)
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -437,7 +437,7 @@ class Service():
|
|||||||
}
|
}
|
||||||
return self._get_by_id(self.all_template_folders, folder_id)
|
return self._get_by_id(self.all_template_folders, folder_id)
|
||||||
|
|
||||||
def is_folder_visible(self, template_folder_id, template_type='all'):
|
def is_folder_visible(self, template_folder_id, template_type='all', user_id=None):
|
||||||
|
|
||||||
if template_type == 'all':
|
if template_type == 'all':
|
||||||
return True
|
return True
|
||||||
@@ -446,8 +446,8 @@ class Service():
|
|||||||
return True
|
return True
|
||||||
|
|
||||||
if any(
|
if any(
|
||||||
self.is_folder_visible(child_folder['id'], template_type)
|
self.is_folder_visible(child_folder['id'], template_type, user_id)
|
||||||
for child_folder in self.get_template_folders(template_type, template_folder_id)
|
for child_folder in self.get_template_folders(template_type, template_folder_id, user_id)
|
||||||
):
|
):
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user