Files
skeleton-api/app/templates/_nav.html
T
2026-07-02 13:38:43 -03:00

76 lines
3.5 KiB
HTML

{% set su = user.is_superuser %}
{% set p = user.permissions %}
{% set can_admin = su or "users:read" in p or "roles:read" in p or "audit_log:read" in p %}
{% set can_connections = su or "clamp_connections:read" in p or "iso_threads:read" in p or "static_connections:read" in p or "unc_threads:read" in p %}
{% set can_labels = su or "manufacturers:read" in p or "part_colours:read" in p or "part_types:read" in p or "scope_models:read" in p or "sub_part_types:read" in p %}
{% set can_database = su or "imported_parts:read" in p or "augmented_parts:read" in p %}
{% set can_parts = can_connections or can_labels or can_database %}
<header class="topbar">
<div class="brand"><a href="/">{{ app_name }}</a></div>
<nav>
<a href="/">Dashboard</a>
{% if can_admin %}
<div class="nav-group">
<span class="nav-label">Admin ▾</span>
<div class="nav-dropdown">
{% if su or "users:read" in p %}<a href="/admin/users">Users</a>{% endif %}
{% if su or "roles:read" in p %}<a href="/admin/roles">Roles</a>{% endif %}
{% if su or "audit_log:read" in p %}<a href="/admin/audit-log">Audit Log</a>{% endif %}
</div>
</div>
{% endif %}
{% if can_parts %}
<div class="nav-group">
<span class="nav-label">Parts ▾</span>
<div class="nav-dropdown">
{% if can_connections %}
<div class="nav-group">
<span class="nav-label">Connections ▶</span>
<div class="nav-dropdown">
{% if su or "clamp_connections:read" in p %}<a href="/admin/clamp-connections">Clamp Connections</a>{% endif %}
{% if su or "iso_threads:read" in p %}<a href="/admin/iso-threads">ISO Threads</a>{% endif %}
{% if su or "static_connections:read" in p %}<a href="/admin/static-connections">Static Connections</a>{% endif %}
{% if su or "unc_threads:read" in p %}<a href="/admin/unc-threads">UNC Threads</a>{% endif %}
</div>
</div>
{% endif %}
{% if can_labels %}
<div class="nav-group">
<span class="nav-label">Labels ▶</span>
<div class="nav-dropdown">
{% if su or "manufacturers:read" in p %}<a href="/admin/manufacturers">Manufacturers</a>{% endif %}
{% if su or "part_colours:read" in p %}<a href="/admin/part-colours">Part Colours</a>{% endif %}
{% if su or "part_types:read" in p %}<a href="/admin/part-types">Part Types</a>{% endif %}
{% if su or "scope_models:read" in p %}<a href="/admin/scope-models">Scope Models</a>{% endif %}
{% if su or "sub_part_types:read" in p %}<a href="/admin/sub-part-types">Sub Part Types</a>{% endif %}
</div>
</div>
{% endif %}
{% if can_database %}
<div class="nav-group">
<span class="nav-label">Database ▶</span>
<div class="nav-dropdown">
{% if su or "imported_parts:read" in p %}<a href="/admin/imported-parts">Imported Parts</a>{% endif %}
{% if su or "augmented_parts:read" in p %}<a href="/admin/augmented-parts">Augmented Parts</a>{% endif %}
{% if su or "augmented_parts:write" in p %}<a href="/admin/augmented-parts/skipped">Skipped Parts</a>{% endif %}
</div>
</div>
{% endif %}
</div>
</div>
{% endif %}
<a href="/docs" target="_blank">API docs</a>
</nav>
<form method="post" action="/logout" class="logout">
<span class="muted">{{ user.email }}</span>
<button type="submit" class="btn btn-ghost">Sign out</button>
</form>
</header>