{% extends 'base.html.twig' %} {% block title %}Gestion des utilisateurs{% endblock %} {% block body %}

Utilisateurs

{{ users|length }} compte{{ users|length > 1 ? 's' : '' }}
{% for message in app.flashes('success') %}
{{ message }}
{% endfor %} {% for message in app.flashes('error') %}
{{ message }}
{% endfor %}
Liste des comptes
{% for user in users %} {% set isSelf = user == app.user %} {% set mainRole = 'ROLE_VISITOR' %} {% if 'ROLE_ADMIN' in user.roles %}{% set mainRole = 'ROLE_ADMIN' %} {% elseif 'ROLE_CONTRIBUTOR' in user.roles %}{% set mainRole = 'ROLE_CONTRIBUTOR' %} {% endif %} {# Nom #} {# Email #} {# Rôle + changement #} {# Statut #} {# Date inscription #} {# Actions #} {# Modal changement de mot de passe pour cet utilisateur #} {% if not isSelf %} {% endif %} {% endfor %}
Utilisateur Email Rôle Statut Inscription Actions
{{ user.displayName|first|upper }}
{{ user.displayName }} {% if isSelf %}(vous){% endif %}
{{ user.email }} {% if isSelf %} {{ _self.roleBadge(mainRole) }} {% else %}
{% endif %}
{% if user.isActive %} Actif {% else %} Désactivé {% endif %} {{ user.createdAt ? user.createdAt|date('d/m/Y') : '—' }} {% if not isSelf %}
{# Changer le mot de passe #} {# Activer / Désactiver #}
{# Supprimer #}
{% else %} {% endif %}
{# Modal flottant (unique, réutilisé pour tous les users) #} {# Légende des rôles #}
Rôles
{{ _self.roleBadge('ROLE_ADMIN') }} Gérer les utilisateurs, catégories + tous les droits Contributeur
{{ _self.roleBadge('ROLE_CONTRIBUTOR') }} Créer, modifier et supprimer recettes et ingrédients + tous les droits Visiteur
{{ _self.roleBadge('ROLE_VISITOR') }} Consulter les recettes, utiliser les outils, cocher les étapes
{# Données CSRF pour le JS (injectées côté serveur via data-attributes) #} {% endblock %} {% macro roleBadge(role) %} {% if role == 'ROLE_ADMIN' %} Admin {% elseif role == 'ROLE_CONTRIBUTOR' %} Contributeur {% else %} Visiteur {% endif %} {% endmacro %}