Files
slim-blog/views/admin/users/index.twig
2026-03-16 13:40:18 +01:00

100 lines
3.8 KiB
Twig
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{% extends "layout.twig" %}
{% block title %}Tableau de bord Utilisateurs{% endblock %}
{% block content %}
<h2>Gestion des utilisateurs</h2>
{% include 'partials/_admin_nav.twig' %}
<p>
<a href="/admin/users/create" class="btn btn--primary">+ Ajouter un utilisateur</a>
</p>
{% if error %}
<div class="alert alert--danger">{{ error }}</div>
{% endif %}
{% if success %}
<div class="alert alert--success">{{ success }}</div>
{% endif %}
{% if users is not empty %}
<table class="admin-table">
<thead>
<tr>
<th>Nom d'utilisateur</th>
<th>Email</th>
<th>Rôle</th>
<th>Inscrit le</th>
<th>Modifier le rôle</th>
<th>Actions</th>
</tr>
</thead>
<tbody>
{% for user in users %}
<tr>
<td data-label="Nom d'utilisateur">
<strong>{{ user.username }}</strong>
{% if user.id == currentUserId %}
<em class="admin-table__self">(vous)</em>
{% endif %}
</td>
<td data-label="Email">{{ user.email }}</td>
<td data-label="Rôle">
{% if user.isAdmin() %}
<span class="badge badge--admin">Admin</span>
{% elseif user.isEditor() %}
<span class="badge badge--editor">Éditeur</span>
{% else %}
<span class="badge badge--user">Utilisateur</span>
{% endif %}
</td>
<td data-label="Inscrit le">{{ user.createdAt|date("d/m/Y") }}</td>
<td data-label="Modifier le rôle">
{% if not user.isAdmin() and user.id != currentUserId %}
<form method="post" action="/admin/users/role/{{ user.id }}" class="u-inline-form">
<input type="hidden" name="{{ csrf.keys.name }}" value="{{ csrf.name }}">
<input type="hidden" name="{{ csrf.keys.value }}" value="{{ csrf.value }}">
<div class="u-inline-actions">
<select name="role" class="admin-table__role-select">
{% for role in assignableRoles %}
<option value="{{ role }}" {% if user.role == role %}selected{% endif %}>
{% if role == 'editor' %}Éditeur{% else %}Utilisateur{% endif %}
</option>
{% endfor %}
</select>
<button type="submit" class="btn btn--sm btn--secondary">Modifier</button>
</div>
</form>
{% else %}
<span class="admin-table__muted">—</span>
{% endif %}
</td>
<td data-label="Actions">
{% if not user.isAdmin() and user.id != currentUserId %}
<div class="u-inline-actions">
<form method="post" action="/admin/users/delete/{{ user.id }}" class="u-inline-form">
<input type="hidden" name="{{ csrf.keys.name }}" value="{{ csrf.name }}">
<input type="hidden" name="{{ csrf.keys.value }}" value="{{ csrf.value }}">
<button type="submit" class="btn btn--sm btn--danger"
onclick="return confirm('Supprimer l\'utilisateur « {{ user.username }} » ?')">
Supprimer
</button>
</form>
</div>
{% else %}
<span class="admin-table__muted">—</span>
{% endif %}
</td>
</tr>
{% endfor %}
</tbody>
</table>
{% include 'partials/_pagination.twig' with { pagination: pagination } %}
{% else %}
<p><em>Aucun utilisateur.</em></p>
{% endif %}
{% endblock %}