---
suivi: 1717
date: 2026-09-25
sujet: Widget accueil pour se connecter en tant qu’un utilisateur
chantier: accueil
type: feature
statut: poussé
hash:
fichiers:
  - app/Services/ImpersonationService.php
  - app/Http/Controllers/Admin/ImpersonationController.php
  - app/Services/Dashboard/WidgetDataService.php
  - app/Services/Dashboard/DashboardDefaultLayoutService.php
  - config/dashboard_widgets.php
  - routes/web.php
  - resources/js/Components/Dashboard/ConnexionEnTantQueWidget.vue
  - resources/js/Components/Dashboard/WidgetBody.vue
  - database/migrations/2026_09_25_104500_seed_widget_connexion_en_tant_que.php
  - docs/suivi/SUIVI_1717_widget_connexion_en_tant_que.md
---

# SUIVI #1717 — Se connecter en tant que

L’accueil des administrateurs affiche un champ de recherche. Un clic appelle la route d’usurpation déjà en place. Les autres comptes ne voient pas le widget. Pas d’entrée au journal.

Le démarrage acceptait seulement GS_DSI en lecture brute, alors que l’onglet d’administration s’affichait aussi pour GS_ADMIN_ERP parce que `hasM365Group` répond vrai à tout groupe pour un administrateur. Le contrôle brut accepte désormais les deux groupes. Interdits, journal d’usurpation et retour au compte sont les mêmes.

## DÉPLOIEMENT

git pull origin main
php artisan migrate --force
php artisan view:clear

## LEÇON

`hasM365Group` et `Gate::before` élargissent GS_ADMIN_ERP. Un widget réservé se filtre avec `m365GroupNames()` et `required_m365_groups`, comme Aktor (#1425). Il n’y a pas de colonne prénom : le nom complet est `users.name`.
