diff --git a/app/models/user.py b/app/models/user.py index bf5d4feaa..b74c8c2af 100644 --- a/app/models/user.py +++ b/app/models/user.py @@ -169,6 +169,19 @@ class User(UserMixin): return self.id in template_folder.get("users_with_permission", []) + def template_folders_for_service(self, service=None): + """ + Returns list of template folders that a user can view for a given service + """ + if not service.has_permission('edit_folder_permissions'): + return service.all_template_folders + + return [ + template_folder + for template_folder in service.all_template_folders + if self.id in template_folder.get("users_with_permission", []) + ] + def belongs_to_service(self, service_id): return str(service_id) in self.services @@ -268,6 +281,10 @@ class InvitedUser(object): data['permissions'] = sorted(self.permissions) return data + def template_folders_for_service(self, service=None): + # only used on the manage users page to display the count, so okay to not be fully fledged for now + return [{'id': x} for x in self.folder_permissions] + class InvitedOrgUser(object): diff --git a/app/templates/views/manage-users.html b/app/templates/views/manage-users.html index 645f67f1d..d97e1a269 100644 --- a/app/templates/views/manage-users.html +++ b/app/templates/views/manage-users.html @@ -57,6 +57,20 @@ {% endif %} {% endif %} + {# only show if the service has folders #} + {% if current_service.has_permission('edit_folder_permissions') and current_service.all_template_folders %} +
+ {% set folder_count = user.template_folders_for_service(current_service) | length %} + + {% if folder_count == 0 %} + Cannot see any folders + {% elif folder_count != current_service.all_template_folders | length %} + Can see {{ folder_count }} folder{% if folder_count > 1 %}s{% endif %} + {% else %} + Can see all folders + {% endif%} +
+ {% endif %} {% if current_user.has_permissions('manage_service') %}