From 2771ae12748de673d5bae41e777da588510997be Mon Sep 17 00:00:00 2001 From: Ben Thorner Date: Mon, 30 May 2022 15:59:00 +0100 Subject: [PATCH] Remove redundant user param from template methods This will finally make it possible to cache some of the methods. --- app/models/template_list.py | 43 ++++++++++++++++++------------------- 1 file changed, 21 insertions(+), 22 deletions(-) diff --git a/app/models/template_list.py b/app/models/template_list.py index 13f8e2d51..c077b0dc0 100644 --- a/app/models/template_list.py +++ b/app/models/template_list.py @@ -17,19 +17,19 @@ class TemplateList(): def __iter__(self): for item in self.get_templates_and_folders( - self.template_type, self.template_folder_id, self.user, ancestors=[] + self.template_type, self.template_folder_id, ancestors=[] ): yield item - def get_templates_and_folders(self, template_type, template_folder_id, user, ancestors): + def get_templates_and_folders(self, template_type, template_folder_id, ancestors): for item in self.get_template_folders( - template_type, template_folder_id, user, + template_type, template_folder_id, ): yield TemplateListFolder( item, folders=self.get_template_folders( - template_type, item['id'], user + template_type, item['id'], ), templates=self.get_templates( template_type, item['id'] @@ -38,12 +38,12 @@ class TemplateList(): service_id=self.service.id, ) for sub_item in self.get_templates_and_folders( - template_type, item['id'], user, ancestors + [item] + template_type, item['id'], ancestors + [item] ): yield sub_item for item in self.get_templates( - template_type, template_folder_id, user + template_type, template_folder_id, ): yield TemplateListTemplate( item, @@ -51,10 +51,10 @@ class TemplateList(): service_id=self.service.id, ) - def get_templates(self, template_type='all', template_folder_id=None, user=None): - if user and template_folder_id: + def get_templates(self, template_type='all', template_folder_id=None): + if self.user and template_folder_id: folder = self.service.get_template_folder(template_folder_id) - if not user.has_template_folder_permission(folder): + if not self.user.has_template_folder_permission(folder): return [] if isinstance(template_type, str): @@ -67,7 +67,7 @@ class TemplateList(): and template.get('folder') == template_folder_id ] - def get_user_template_folders(self, user): + def get_user_template_folders(self): """Returns a modified list of folders a user has permission to view For each folder, we do the following: @@ -83,10 +83,10 @@ class TemplateList(): """ user_folders = [] for folder in self.service.all_template_folders: - if not user.has_template_folder_permission(folder, service=self.service): + if not self.user.has_template_folder_permission(folder, service=self.service): continue parent = self.service.get_template_folder(folder["parent_id"]) - if user.has_template_folder_permission(parent, service=self.service): + if self.user.has_template_folder_permission(parent, service=self.service): user_folders.append(folder) else: folder_attrs = { @@ -103,14 +103,14 @@ class TemplateList(): else: parent = self.service.get_template_folder(parent["parent_id"]) folder_attrs["parent_id"] = parent.get("id", None) - if user.has_template_folder_permission(parent, service=self.service): + if self.user.has_template_folder_permission(parent, service=self.service): break user_folders.append(folder_attrs) return user_folders - def get_template_folders(self, template_type='all', parent_folder_id=None, user=None): - if user: - folders = self.get_user_template_folders(user) + def get_template_folders(self, template_type='all', parent_folder_id=None): + if self.user: + folders = self.get_user_template_folders() else: folders = self.service.all_template_folders if parent_folder_id: @@ -120,11 +120,11 @@ class TemplateList(): folder for folder in folders if ( folder['parent_id'] == parent_folder_id - and self.is_folder_visible(folder['id'], template_type, user) + and self.is_folder_visible(folder['id'], template_type) ) ] - def is_folder_visible(self, template_folder_id, template_type='all', user=None): + def is_folder_visible(self, template_folder_id, template_type='all'): if template_type == 'all': return True @@ -133,8 +133,8 @@ class TemplateList(): return True if any( - self.is_folder_visible(child_folder['id'], template_type, user) - for child_folder in self.get_template_folders(template_type, template_folder_id, user) + self.is_folder_visible(child_folder['id'], template_type) + for child_folder in self.get_template_folders(template_type, template_folder_id) ): return True @@ -151,7 +151,7 @@ class TemplateList(): @property def folder_is_empty(self): return not any(self.get_templates_and_folders( - 'all', self.template_folder_id, self.user, [] + 'all', self.template_folder_id, [] )) @@ -172,7 +172,6 @@ class ServiceTemplateList(TemplateList): yield from self.get_templates_and_folders( self.template_type, self.template_folder_id, - self.user, ancestors=[template_list_service] )