mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-08-25 00:33:58 -04:00
Don't link folders in the folder path if user doesn't have permission
This updates folder_path macro to not link to any folders that the user doesn't have permission for.
This commit is contained in:
@@ -2,6 +2,7 @@
|
|||||||
folders,
|
folders,
|
||||||
service_id,
|
service_id,
|
||||||
template_type,
|
template_type,
|
||||||
|
current_user,
|
||||||
fallback_page_title=None,
|
fallback_page_title=None,
|
||||||
show_fallback_page_title=False,
|
show_fallback_page_title=False,
|
||||||
link_current_item=False
|
link_current_item=False
|
||||||
@@ -21,7 +22,11 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
{% else %}
|
{% else %}
|
||||||
{% if folder.id %}
|
{% if folder.id %}
|
||||||
<a href="{{ url_for('.choose_template', service_id=service_id, template_type=template_type, template_folder_id=folder.id) }}" class="folder-heading-folder {% if loop.index < (loop.length - 1) %}folder-heading-folder-truncated{% endif %}" title="{{ folder.name }}">{{ folder.name }}</a>
|
{% if current_user.has_template_folder_permission(folder) %}
|
||||||
|
<a href="{{ url_for('.choose_template', service_id=service_id, template_type=template_type, template_folder_id=folder.id) }}" class="folder-heading-folder {% if loop.index < (loop.length - 1) %}folder-heading-folder-truncated{% endif %}" title="{{ folder.name }}">{{ folder.name }}</a>
|
||||||
|
{% else %}
|
||||||
|
<span class="folder-heading-folder">{{ folder.name }}</span>
|
||||||
|
{% endif %}
|
||||||
{% else %}
|
{% else %}
|
||||||
<a href="{{ url_for('.choose_template', service_id=service_id, template_type=template_type) }}" title="Templates" class="{% if loop.length > 2 %}folder-heading-folder-root-truncated{% endif %}">Templates</a>
|
<a href="{{ url_for('.choose_template', service_id=service_id, template_type=template_type) }}" title="Templates" class="{% if loop.length > 2 %}folder-heading-folder-root-truncated{% endif %}">Templates</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@@ -36,7 +41,8 @@
|
|||||||
{% macro copy_folder_path(
|
{% macro copy_folder_path(
|
||||||
folder_path,
|
folder_path,
|
||||||
current_service_id,
|
current_service_id,
|
||||||
from_service
|
from_service,
|
||||||
|
current_user
|
||||||
) %}
|
) %}
|
||||||
{% if folder_path %}
|
{% if folder_path %}
|
||||||
<h2 class="heading-medium folder-heading">
|
<h2 class="heading-medium folder-heading">
|
||||||
@@ -51,7 +57,12 @@
|
|||||||
</span>
|
</span>
|
||||||
{% else %}
|
{% else %}
|
||||||
{% if folder.id %}
|
{% if folder.id %}
|
||||||
<a href="{{ url_for('.choose_template_to_copy', service_id=current_service_id, from_service=from_service.id, from_folder=folder.id) }}" class="folder-heading-folder">{{ folder.name }}</a> {% if not loop.last %}{{ folder_path_separator() }}{% endif %}
|
{% if current_user.has_template_folder_permission(folder) %}
|
||||||
|
<a href="{{ url_for('.choose_template_to_copy', service_id=current_service_id, from_service=from_service.id, from_folder=folder.id) }}" class="folder-heading-folder">{{ folder.name }}</a>
|
||||||
|
{% else %}
|
||||||
|
<span class="folder-heading-folder">{{ folder.name }}</span>
|
||||||
|
{% endif %}
|
||||||
|
{% if not loop.last %}{{ folder_path_separator() }}{% endif %}
|
||||||
{% elif folder.parent_id == None %}
|
{% elif folder.parent_id == None %}
|
||||||
<a href="{{ url_for('.choose_template_to_copy', service_id=current_service_id, from_service=from_service.id, from_folder=folder.id) }}" class="folder-heading-folder">{{ from_service.name }}</a> {% if not loop.last %}{{ folder_path_separator() }}{% endif %}
|
<a href="{{ url_for('.choose_template_to_copy', service_id=current_service_id, from_service=from_service.id, from_folder=folder.id) }}" class="folder-heading-folder">{{ from_service.name }}</a> {% if not loop.last %}{{ folder_path_separator() }}{% endif %}
|
||||||
{% else %}
|
{% else %}
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
|
|
||||||
<div class="bottom-gutter-1-2">
|
<div class="bottom-gutter-1-2">
|
||||||
<h1 class="heading-large">Choose a template</h1>
|
<h1 class="heading-large">Choose a template</h1>
|
||||||
{{ folder_path(template_folder_path, current_service.id, template_type) }}
|
{{ folder_path(template_folder_path, current_service.id, template_type, current_user) }}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{% if not templates_and_folders.templates_to_show %}
|
{% if not templates_and_folders.templates_to_show %}
|
||||||
|
|||||||
@@ -53,6 +53,7 @@
|
|||||||
folders=template_folder_path,
|
folders=template_folder_path,
|
||||||
service_id=current_service.id,
|
service_id=current_service.id,
|
||||||
template_type=template_type,
|
template_type=template_type,
|
||||||
|
current_user=current_user,
|
||||||
fallback_page_title=page_title,
|
fallback_page_title=page_title,
|
||||||
show_fallback_page_title=not current_service.all_template_folders
|
show_fallback_page_title=not current_service.all_template_folders
|
||||||
) }}
|
) }}
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
|
|
||||||
<div class="bottom-gutter-1-2">
|
<div class="bottom-gutter-1-2">
|
||||||
<h1 class="heading-large">Copy an existing template</h1>
|
<h1 class="heading-large">Copy an existing template</h1>
|
||||||
{{ copy_folder_path(template_folder_path, current_service.id, from_service) }}
|
{{ copy_folder_path(template_folder_path, current_service.id, from_service, current_user) }}
|
||||||
</div>
|
</div>
|
||||||
{% if not services_templates_and_folders.templates_to_show %}
|
{% if not services_templates_and_folders.templates_to_show %}
|
||||||
<p class="template-list-empty">
|
<p class="template-list-empty">
|
||||||
|
|||||||
@@ -17,6 +17,7 @@
|
|||||||
folders=template_folder_path,
|
folders=template_folder_path,
|
||||||
service_id=current_service.id,
|
service_id=current_service.id,
|
||||||
template_type='all',
|
template_type='all',
|
||||||
|
current_user=current_user,
|
||||||
link_current_item=True
|
link_current_item=True
|
||||||
) }}
|
) }}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -35,6 +35,7 @@
|
|||||||
folders=current_service.get_template_path(template._template),
|
folders=current_service.get_template_path(template._template),
|
||||||
service_id=current_service.id,
|
service_id=current_service.id,
|
||||||
template_type='all',
|
template_type='all',
|
||||||
|
current_user=current_user,
|
||||||
fallback_page_title=template.name,
|
fallback_page_title=template.name,
|
||||||
show_fallback_page_title=not current_service.all_template_folders
|
show_fallback_page_title=not current_service.all_template_folders
|
||||||
) }}
|
) }}
|
||||||
|
|||||||
Reference in New Issue
Block a user