{% extends "base.html" %}
{% block title %}Accès — {{ user.username }}{% endblock %}
{% block content %}
<div class="container-fluid">
  <h1>Accès de {{ user.full_name or user.username }}</h1>
  <form method="post">
    <input type="hidden" name="csrf_token" value="{{ csrf_token() }}">
    <div class="card mb-3">
      <div class="card-header"><strong>Rôles</strong></div>
      <div class="card-body row g-2">
        <p class="text-muted">Les permissions effectives sont l’union des rôles actifs. Un utilisateur peut cumuler plusieurs rôles.</p>
        {% for role in roles_list %}
        <div class="col-md-3"><label class="border rounded p-2 d-block h-100">
          <input type="checkbox" name="role_ids" value="{{ role.id }}" {% if role.id in selected_roles %}checked{% endif %}>
          <strong>{{ role.name }}</strong><br><small class="text-muted">{{ role.description or 'Rôle disponible dans la GMAO.' }}</small>
        </label></div>
        {% else %}<p>Aucun rôle RBAC disponible.</p>{% endfor %}
      </div>
    </div>
    <div class="card mb-3">
      <div class="card-header"><strong>Exceptions individuelles</strong><small class="d-block text-muted">Hériter utilise les permissions des rôles. Autoriser ajoute un accès ; Refuser reste prioritaire sur les rôles.</small></div>
      <div class="card-body">
        {% for module, permissions in permissions_list|groupby('module') %}
        <details class="mb-3" {% if loop.first %}open{% endif %}>
          <summary class="fw-bold">{{ module|replace('_', ' ')|title }}</summary>
          <div class="row g-2 mt-1">
          {% for permission in permissions %}
            <div class="col-xl-4 col-md-6">
              <label class="small fw-semibold" for="permission-{{ permission.id }}">{{ permission.name }}</label>
              <select id="permission-{{ permission.id }}" class="form-select form-select-sm" name="permission_{{ permission.id }}">
                <option value="">Hériter</option>
                <option value="allow" {% if overrides.get(permission.id)=='allow' %}selected{% endif %}>Autoriser</option>
                <option value="deny" {% if overrides.get(permission.id)=='deny' %}selected{% endif %}>Refuser</option>
              </select>
              <small class="text-muted d-block">{{ permission.description }}</small>
              <small class="text-secondary">Accès actuel : <strong>{{ 'AUTORISÉ' if effective.get(permission.code) else 'REFUSÉ' }}</strong>{% if provenance.get(permission.code) %} · {{ provenance.get(permission.code) }}{% endif %}</small>
              <small class="text-secondary d-block">Code : {{ permission.code }}</small>
            </div>
          {% endfor %}
          </div>
        </details>
        {% else %}<p>Aucune permission RBAC disponible.</p>{% endfor %}
      </div>
    </div>
    <button class="btn btn-primary">Enregistrer les accès</button>
    <a class="btn btn-outline-secondary ms-2" href="{{ url_for('admin.users') }}">Annuler</a>
  </form>
</div>
{% endblock %}
