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:
Pea Tyczynska
2019-03-07 15:23:18 +00:00
parent 33c3b14feb
commit 347955a378

View File

@@ -424,7 +424,7 @@ class Service():
folder for folder in folders
if (
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)
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':
return True
@@ -446,8 +446,8 @@ class Service():
return True
if any(
self.is_folder_visible(child_folder['id'], template_type)
for child_folder in self.get_template_folders(template_type, template_folder_id)
self.is_folder_visible(child_folder['id'], template_type, user_id)
for child_folder in self.get_template_folders(template_type, template_folder_id, user_id)
):
return True