{% macro permissions_table_header(label, show_permissions) -%} {{ label }} {% if show_permissions %} {{ _('None') }} {{ _('Read') }} {{ _('Write') }} {{ _('Grant') }} {% else %} {% endif %} {%- endmacro -%} {% macro permissions_table_fields(class_infix, current_permissions, available_permissions, disabled, field_name) %} {% for possible_permissions in [Permissions.NONE, Permissions.READ, Permissions.WRITE, Permissions.GRANT] %} {% if possible_permissions in available_permissions %} {% else %} {% endif %} {% endfor %} {%- endmacro -%} {% if user_may_edit %}
{{ permissions_form.csrf_token }} {% endif %} {% set show_special_groups = show_administrators or show_instrument_scientists or show_responsible_users or show_all_users %} {% if show_special_groups %} {{ permissions_table_header(_('Special Groups'), true) }} {% endif %} {% if show_administrators %} {{ permissions_table_fields('administrators', Permissions.GRANT, [Permissions.GRANT], true, none) }} {% endif %} {% if show_responsible_users %} {{ permissions_table_fields('responsible_users', Permissions.GRANT, [Permissions.GRANT], true, none) }} {% endif %} {% if show_instrument_scientists and not config['DISABLE_INSTRUMENTS'] %} {{ permissions_table_fields('instrument_responsible_users', Permissions.GRANT, [Permissions.GRANT], true, none) }} {% endif %} {% if show_anonymous_users %} {% if user_may_edit %} {{ permissions_table_fields('anonymous_user', anonymous_user_permissions, permissions_form.anonymous_user_permissions.choices | map(attribute=1) | list, false, permissions_form.anonymous_user_permissions.name) }} {% else %} {% set possible_anonymous_user_permissions = [Permissions.NONE, Permissions.READ] %} {{ permissions_table_fields('anonymous_user', anonymous_user_permissions, possible_anonymous_user_permissions, true, none) }} {% endif %} {% elif user_may_edit %} {% endif %} {% if show_all_users %} {% if user_may_edit %} {{ permissions_table_fields('all_user', all_user_permissions, permissions_form.all_user_permissions.choices | map(attribute=1) | list, false, permissions_form.all_user_permissions.name) }} {% else %} {% if possible_all_user_permissions is not defined %} {% set possible_all_user_permissions = [Permissions.NONE, Permissions.READ] %} {% endif %} {{ permissions_table_fields('all_user', all_user_permissions, possible_all_user_permissions, true, none) }} {% endif %} {% elif user_may_edit %} {% endif %} {% if project_permissions %} {{ permissions_table_header(_('Project Groups'), not show_special_groups) }} {% if user_may_edit and permissions_form.project_permissions %} {% for project_permissions_form in permissions_form.project_permissions %} {% set project_id = project_permissions_form.project_id.data | int %} {% set project = get_project(project_id) %} {{ permissions_table_fields('project', project_permissions[project_id], [Permissions.NONE, Permissions.READ, Permissions.WRITE, Permissions.GRANT], false, project_permissions_form.permissions.name) }} {% endfor %} {% else %} {% for project_id, permissions in project_permissions.items() | sort %} {% set project = get_project(project_id) %} {{ permissions_table_fields('project', project_permissions[project_id], [Permissions.NONE, Permissions.READ, Permissions.WRITE, Permissions.GRANT], true, none) }} {% endfor %} {% endif %} {% endif %} {% if group_permissions %} {{ permissions_table_header(_('Basic Groups'), not (show_special_groups or project_permissions)) }} {% if user_may_edit and permissions_form.group_permissions %} {% for group_permissions_form in permissions_form.group_permissions %} {% set group_id = group_permissions_form.group_id.data | int %} {% set group = get_group(group_id) %} {{ permissions_table_fields('group', group_permissions[group_id], [Permissions.NONE, Permissions.READ, Permissions.WRITE, Permissions.GRANT], false, group_permissions_form.permissions.name) }} {% endfor %} {% else %} {% for group_id, permissions in group_permissions.items() | sort %} {% set group = get_group(group_id) %} {{ permissions_table_fields('group', group_permissions[group_id], [Permissions.NONE, Permissions.READ, Permissions.WRITE, Permissions.GRANT], true, none) }} {% endfor %} {% endif %} {% endif %} {% if user_permissions %} {{ permissions_table_header(_('Users'), not (show_special_groups or project_permissions or group_permissions)) }} {% if user_may_edit and permissions_form.user_permissions %} {% for user_permissions_form in permissions_form.user_permissions %} {% set user_id = user_permissions_form.user_id.data | int %} {% set permissions = user_permissions.get(user_id, Permissions.NONE) %} {{ permissions_table_fields('user', user_permissions[user_id], [Permissions.NONE, Permissions.READ, Permissions.WRITE, Permissions.GRANT], user_id in fixed_user_permissions, user_permissions_form.permissions.name) }} {% endfor %} {% else %} {% for user_id, permissions in user_permissions.items() | sort %} {{ permissions_table_fields('user', user_permissions[user_id], [Permissions.NONE, Permissions.READ, Permissions.WRITE, Permissions.GRANT], true, none) }} {% endfor %} {% endif %} {% endif %}
{{ _('Administrators') }}
{{ _('Responsible Users') }}
{{ _('Instrument Scientists') }}
{{ _('Anonymous Users') }}
{{ _('All Signed-In Users') }}
{% for name_prefix in get_project_group_name_prefixes(project_id) %} {{ name_prefix }} {% endfor %} {{ project.name | get_translated_text(default=_('Unnamed Project Group')) }} (#{{ project.id }}) {{ project_permissions_form.csrf_token }}
{% for name_prefix in get_project_group_name_prefixes(project_id) %} {{ name_prefix }} {% endfor %} {{ project.name | get_translated_text(default=_('Unnamed Project Group')) }} (#{{ project.id }})
{% for name_prefix in get_basic_group_name_prefixes(group_id) %} {{ name_prefix }} {% endfor %} {{ group.name | get_translated_text(default=_('Unnamed Basic Group')) }} (#{{ group.id }}) {{ group_permissions_form.csrf_token }}
{% for name_prefix in get_basic_group_name_prefixes(group_id) %} {{ name_prefix }} {% endfor %} {{ group.name | get_translated_text(default=_('Unnamed Basic Group')) }} (#{{ group.id }})
{{ user_reference(user_id) }} {{ user_permissions_form.csrf_token }} {% if user_id in fixed_user_permissions %} {% endif %}
{{ user_reference(user_id, imported_user) }}
{% if user_may_edit %}
{% if add_user_permissions_form and users %}

{{ _('Add User') }}

{{ add_user_permissions_form.csrf_token }} {{ permissions_table_header(_('User'), true) }} {{ permissions_table_fields('new_user', Permissions.READ, [Permissions.READ, Permissions.WRITE, Permissions.GRANT], false, add_user_permissions_form.permissions.name) }}
{% endif %} {% if add_group_permissions_form and show_groups_form and groups_treepicker_info %}

{{ _('Add Basic Group') }}

{{ add_group_permissions_form.csrf_token }} {{ permissions_table_header(_('Basic Group'), true) }} {{ permissions_table_fields('new_group', Permissions.READ, [Permissions.READ, Permissions.WRITE, Permissions.GRANT], false, add_group_permissions_form.permissions.name) }}
{% endif %} {% if add_project_permissions_form and show_projects_form and projects_treepicker_info %}

{{ _('Add Project Group') }}

{{ add_project_permissions_form.csrf_token }} {{ permissions_table_header(_('Project Group'), true) }} {{ permissions_table_fields('new_project', Permissions.READ, [Permissions.READ, Permissions.WRITE, Permissions.GRANT], false, add_project_permissions_form.permissions.name) }}
{% endif %} {% endif %}