gmao/app_new/templates/admin/permissions.html

161 lines
7.1 KiB
HTML
Raw Normal View History

2026-08-14 18:02:25 +02:00
{% extends "base.html" %}
{% block title %}Permissions - GMAO Collège{% endblock %}
{% block content %}
<div class="container-fluid">
<div class="row mb-4">
<div class="col">
<h1 class="h3"><i class="bi bi-shield-check"></i> Gestion des permissions</h1>
<p class="text-muted">Gérer les accès par rôle et utilisateur</p>
</div>
<div class="col-auto">
<a href="{{ url_for('admin.list_users') }}" class="btn btn-outline-primary">
<i class="bi bi-people"></i> Gestion utilisateurs
</a>
</div>
</div>
<!-- Cartes de synthèse -->
<div class="row mb-4">
<div class="col-md-3">
<div class="card stat-card">
<div class="card-body text-center">
<i class="bi bi-person-shield fs-1 text-primary"></i>
<h5 class="mt-2">Administrateurs</h5>
<span class="badge bg-primary">{{ roles_permissions.admin|length }}</span>
</div>
</div>
</div>
<div class="col-md-3">
<div class="card stat-card">
<div class="card-body text-center">
<i class="bi bi-tools fs-1 text-success"></i>
<h5 class="mt-2">Techniciens</h5>
<span class="badge bg-success">{{ roles_permissions.technicien|length }}</span>
</div>
</div>
</div>
<div class="col-md-3">
<div class="card stat-card">
<div class="card-body text-center">
<i class="bi bi-building fs-1 text-warning"></i>
<h5 class="mt-2">Chefs</h5>
<span class="badge bg-warning">{{ roles_permissions.chef|length }}</span>
</div>
</div>
</div>
<div class="col-md-3">
<div class="card stat-card">
<div class="card-body text-center">
<i class="bi bi-person-plus fs-1-info"></i>
<h5 class="mt-2">Demandeurs</h5>
<span class="badge bg-info">{{ roles_permissions.demandeur|length }}</span>
</div>
</div>
</div>
</div>
<!-- Tableau des permissions par rôle -->
<div class="card">
<div class="card-header">
<h5 class="mb-0">Permissions par rôle</h5>
</div>
<div class="card-body">
<form method="post" action="{{ url_for('admin.update_permissions') }}" class="mb-4">
<div class="row">
{% for role, permissions in roles_permissions.items() %}
<div class="col-lg-6 mb-4">
<div class="border rounded p-3">
<h6 class="text-uppercase text-muted mb-3">{{ role|title }}</h6>
<div class="row g-2">
{% for perm in all_permissions %}
<div class="col-6">
<div class="form-check">
<input class="form-check-input" type="checkbox"
name="permissions"
value="{{ perm }}"
id="perm_{{ role }}_{{ perm.replace('.', '_') }}"
{% if perm in permissions %}checked{% endif %}>
<label class="form-check-label small" for="perm_{{ role }}_{{ perm.replace('.', '_') }}">
{{ perm|replace(':', ': ')|replace('_', ' ')|capitalize }}
</label>
</div>
</div>
{% endfor %}
</div>
</div>
</div>
{% endfor %}
</div>
<div class="text-center">
<button type="submit" class="btn btn-primary">
<i class="bi bi-save"></i> Enregistrer les modifications
</button>
</div>
</form>
</div>
</div>
<!-- Légende -->
<div class="card mt-4">
<div class="card-header">
<h5 class="mb-0">Légende des permissions</h5>
</div>
<div class="card-body">
<div class="row">
<div class="col-md-6">
<h6>Dashboard</h6>
<ul class="list-unstyled small">
<li><code>dashboard:view</code> - Voir le tableau de bord</li>
</ul>
</div>
<div class="col-md-6">
<h6>Interventions</h6>
<ul class="list-unstyled small">
<li><code>code:CREATE_INTERVENTION</code> - Créer</li>
<li><code>code:VIEW_INTERVENTIONS</code> - Voir</li>
<li><code>code:EDIT_INTERVENTIONS</code> - Modifier</li>
<li><code>code:DELETE_INTERVENTIONS</code> - Supprimer</li>
</ul>
</div>
<div class="col-md-6">
<h6>Équipements</h6>
<ul class="list-unstyled small">
<li><code>code:VIEW_EQUIPMENTS</code> - Voir</li>
<li><code>code:CREATE_EQUIPMENTS</code> - Créer</li>
<li><code>code:EDIT_EQUIPMENTS</code> - Modifier</li>
<li><code>code:DELETE_EQUIPMENTS</code> - Supprimer</li>
</ul>
</div>
<div class="col-md-6">
<h6>Planning</h6>
<ul class="list-unstyled small">
<li><code>code:VIEW_PLANNING</code> - Voir</li>
<li><code>code:CREATE_PLANNING</code> - Créer</li>
<li><code>code:EDIT_PLANNING</code> - Modifier</li>
</ul>
</div>
<div class="col-md-6">
<h6>ENT77</h6>
<ul class="list-unstyled small">
<li><code>code:VIEW_ENT</code> - Voir les messages</li>
<li><code>code:CONFIG_ENT</code> - Configurer</li>
<li><code>code:MANAGE_ENT_MESSAGES</code> - Gérer</li>
</ul>
</div>
<div class="col-md-6">
<h6>Administration</h6>
<ul class="list-unstyled small">
<li><code>code:VIEW_USERS</code> - Voir utilisateurs</li>
<li><code>code:CREATE_USERS</code> - Créer</li>
<li><code>code:EDIT_USERS</code> - Modifier</li>
<li><code>code:DELETE_USERS</code> - Supprimer</li>
<li><code>code:VIEW_ADMIN</code> - Voir admin</li>
</ul>
</div>
</div>
</div>
</div>
</div>
{% endblock %}