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