templates/account_entreprise/manage.html.twig line 1
{% extends 'base.html.twig' %}{% block title %}Gérer les entreprises de {{ user.name ?? user.email }}{% endblock %}{% block bodyContent %}<div class="container-fluid py-3">{# Back link #}<div class="mb-3"><a href="{{ path('admin_accounts_index') }}" class="btn btn-link btn-sm px-0"><i class="mdi mdi-arrow-left"></i>Retour à la liste des comptes</a></div>{# Page header #}<div class="card border-0 rounded-4 shadow-sm mb-3"><div class="card-body d-flex align-items-center justify-content-between flex-wrap gap-2"><div class="d-flex align-items-center gap-3"><div class="rounded-circle bg-primary text-white d-flex align-items-center justify-content-center"style="width:44px; height:44px; font-weight:600;">{{ (user.name ?? user.email)|slice(0,1)|upper }}</div><div><h1 class="h5 mb-1">Gestion des entreprises de l’utilisateur</h1><div class="text-muted small"><span class="fw-semibold">{{ user.name ?? user.email }}</span><span class="mx-1">·</span><span class="text-muted">ID #{{ user.id }}</span></div></div></div>{% if user.entreprise %}<div class="text-end"><div class="small text-muted">Entreprise actuelle</div><div class="fw-semibold">{{ user.entreprise.name ?? user.entreprise.libelle ?? 'Sans nom' }}</div></div>{% endif %}</div></div><div class="row g-3">{# LEFT: Linked entreprises #}<div class="col-lg-7"><div class="card rounded-4 shadow-sm h-100"><div class="card-header bg-white mt-3 border-0 pb-0 d-flex justify-content-between align-items-center"><div><h2 class="h6 mb-1">Entreprises liées</h2><p class="small text-muted mb-0">Activez, désactivez ou retirez l’utilisateur des entreprises auxquelles il a accès.</p></div>{% if user.userEntreprises|length > 0 %}<span class="badge bg-light text-muted border small">{{ user.userEntreprises|length }} entreprise(s)</span>{% endif %}</div><div class="card-body">{% if user.userEntreprises|length > 0 %}<div class="list-group list-group-flush rounded-3 border">{% for link in user.userEntreprises %}{% set entreprise = link.entreprise %}<div class="list-group-item d-flex align-items-center justify-content-between flex-wrap gap-2"><div class="d-flex align-items-center">{# Logo #}{% if entreprise.logo ?? false %}<img src="{{ entreprise.logo }}" class="rounded me-3"style="width:40px; height:40px; object-fit:cover;">{% else %}<div class="rounded-circle bg-light me-3 d-flex justify-content-center align-items-center"style="width:40px; height:40px;"><i class="mdi mdi-office-building text-muted fs-4"></i></div>{% endif %}<div><div class="fw-semibold">{{ entreprise.name ?? entreprise.libelle ?? 'Sans nom' }}</div><div class="text-muted extra-small">Rôle : <span class="text-uppercase">{{ link.role }}</span><span class="mx-1">·</span>Statut :{% if link.status == 'ACTIVE' %}<span class="badge bg-success-subtle text-success border">Actif</span>{% else %}<span class="badge bg-danger-subtle text-danger border">Désactivé</span>{% endif %}</div>{% if user.entreprise and user.entreprise.id == entreprise.id %}<div class="badge bg-primary-subtle text-primary border mt-1">Entreprise actuelle</div>{% endif %}</div></div><div class="d-flex align-items-center gap-2">{% set isCurrent = user.entreprise and user.entreprise.id == entreprise.id %}{% if isCurrent %}{# No actions on current entreprise: show info only #}<span class="badge bg-primary-subtle text-primary border">Entreprise actuelle</span>{% else %}{# Toggle status #}<form method="post"action="{{ path('admin_accounts_toggle_link', {id: link.id}) }}"><input type="hidden" name="_token"value="{{ csrf_token('admin_toggle_link_' ~ link.id) }}"><button type="submit"class="btn btn-sm {{ link.status == 'ACTIVE' ? 'btn-outline-warning' : 'btn-outline-success' }} rounded-pill">{% if link.status == 'ACTIVE' %}Désactiver{% else %}Activer{% endif %}</button></form>{# Remove link #}<form method="post"action="{{ path('admin_accounts_remove_link', {id: link.id}) }}"onsubmit="return confirm('Retirer cet utilisateur de cette entreprise ?');"><input type="hidden" name="_token"value="{{ csrf_token('admin_remove_link_' ~ link.id) }}"><button type="submit"class="btn btn-sm btn-outline-danger rounded-pill">Retirer</button></form>{% endif %}</div></div>{% endfor %}</div>{% else %}<div class="text-center text-muted small py-4">Cet utilisateur n’est lié à aucune entreprise pour le moment.</div>{% endif %}</div></div></div>{# RIGHT: Add entreprise #}<div class="col-lg-5"><div class="card rounded-4 shadow-sm h-100"><div class="card-header bg-white border-0 pb-0 mt-3"><h2 class="h6 mb-1">Lier une nouvelle entreprise</h2><p class="small text-muted mb-0">Sélectionnez une entreprise existante et définissez le rôle de l’utilisateur.</p></div><div class="card-body"><form method="post" action="{{ path('admin_accounts_add_entreprise', {id: user.id}) }}"><input type="hidden" name="_token"value="{{ csrf_token('admin_add_entreprise_' ~ user.id) }}"><div class="mb-3"><label class="form-label small fw-semibold"><i class="mdi mdi-office-building-outline me-1"></i>Entreprise</label><select name="entreprise_id" class="form-select form-select-sm rounded-3" required><option value="">— Sélectionner une entreprise —</option>{% for entreprise in entreprises %}<option value="{{ entreprise.id }}">{{ entreprise.name ?? entreprise.libelle ?? ('Entreprise #' ~ entreprise.id) }}</option>{% endfor %}</select></div><div class="mb-3"><label class="form-label small fw-semibold"><i class="mdi mdi-shield-account-outline me-1"></i>Rôle de l’utilisateur</label><select name="role" class="form-select form-select-sm rounded-3"><option value="OWNER">Propriétaire / Admin</option><option value="MANAGER">Gestionnaire</option><option value="STAFF">Staff</option><option value="MEMBRE" selected>Membre</option></select><div class="form-text small">Le rôle détermine les permissions de cet utilisateur dans l’entreprise sélectionnée.</div></div><button type="submit"class="btn btn-primary btn-sm rounded-pill px-3">Ajouter à l’entreprise</button></form></div></div></div></div></div>{% endblock %}