Skip to content

Gestion des employés ​

L'entité Employee (src/Entity/Organization/Employee) est le modèle d'utilisateur du système Doggy, et constitue également le sujet d'authentification de Symfony Security. Le point d'entrée de gestion repose sur EmployeeController et EmployeeApiController.

Aperçu ​

Le module de gestion des employés couvre l'ensemble du cycle de vie :

  • Point de vue RH : gestion des effectifs, intégration des nouveaux arrivants, analyses statistiques
  • Point de vue IT : création de comptes, attribution des permissions, configuration des Passkey
  • Point de vue manager : gestion d'équipe, relations hiérarchiques, réaffectation du personnel

Structure de l'entité ​

Employee est l'entité App\Entity\Organization\Employee, et sert également de fournisseur d'utilisateurs Security :

yaml
# config/packages/security.yaml
providers:
  app_user_provider:
    entity:
      class: App\Entity\Organization\Employee

Champs clés :

  • isPasswordModifiedByUser : indique si le mot de passe initial a été modifié
  • Relation un-à-plusieurs avec WebauthnCredential (passkeys)
  • L'avatar est géré via AvatarController

Fonctionnalités principales ​

Effectif des employés ​

  • Interface d'administration : templates/employee/list.html.twig
  • Page de détail : templates/employee/show.html.twig
  • Page d'édition : templates/employee/edit.html.twig
  • Tiroir d'édition : templates/employee/edit_drawer.html.twig
  • Gestion de l'avatar : templates/employee/_avatar_modal.html.twig

API ​

La gestion des employés fournit une API RESTful via EmployeeApiController :

http
GET    /api/admin/employees         # 员工列表
POST   /api/admin/employees         # 创建员工
GET    /api/admin/employees/{id}    # 员工详情
PUT    /api/admin/employees/{id}    # 更新员工
DELETE /api/admin/employees/{id}    # 删除员工

Processus d'intégration ​

Lors de la première connexion, le système détecte automatiquement l'état de l'utilisateur via UserSetupListener :

  1. Vérifie si le mot de passe a été modifié (isPasswordModifiedByUser)
  2. Vérifie si un Passkey a été enregistré
  3. Si l'une des étapes n'est pas terminée, redirige vers la page de configuration

Configuration utilisateur ​

php
// src/EventListener/UserSetupListener.php
// 权限路由白名单: app_user_setup, app_logout
// WebAuthn 和登录路由始终可访问

// 密码未修改或未设置 Passkey 时重定向到设置页

Points d'entrée de gestion ​

  • Liste des employés : App\Controller\EmployeeController
  • API : App\Controller\Api\EmployeeApiController
  • Avatar : App\Controller\Api\AvatarController

Open source sous licence MIT | Copyright © 2026 Doggy