{% extends "admin_base.html" %} {% block title %}Roles & Permissions | Nexora Admin{% endblock %} {% block content %}

Access Control

Roles & Permissions

Define roles, assign permissions, and manage users per role.

{# ── CREATE ROLE ── #}

Create Role

{# ── ASSIGN USERS SEARCHABLE PICKER ── #}

Assign Users

Search staff accounts by name or username. Users already assigned to another role will be moved to this new role.

{% for heading, keys in permission_sections %}

{{ heading }}

{% for key in keys %} {% endfor %}
{% endfor %}
{# ── EXISTING ROLES ── #} {% for role in roles %} {% set rp = role_permissions[role.id] %} {% set ru = role_users[role.id] %}

{{ role.name }}

{% if role.description %}

{{ role.description }}

{% endif %}
{{ rp|length }} of {{ permission_labels|length }} permissions {{ ru|length }} user{{ '' if ru|length == 1 else 's' }}
{% if ru %}
Assigned Users:
{% for u in ru %} {{ u.full_name or u.username }} @{{ u.username }} {% endfor %}
{% else %}
No users assigned to this role yet.
{% endif %}
{% for heading, keys in permission_sections %}

{{ heading }}

{% for key in keys %} {% endfor %}
{% endfor %}
{% endfor %} {# ── AUDIT LOG ── #}

Role Change Audit

{% for item in audit %} {% else %} {% endfor %}
TimeActorActionTargetDetails
{{ item.created_at|pretty_dt }} {{ item.actor_username }} {{ item.action }} {{ item.target_username or '—' }} {{ item.details or '—' }}
No role changes recorded.
{# ── EDIT ROLE MODAL ── #} {# ── DELETE ROLE MODAL ── #} {% endblock %}