従業員管理
Employee エンティティ(src/Entity/Organization/Employee)は Doggy システムのユーザーモデルであり、Symfony Security の認証主体でもあります。管理の入口は EmployeeController と EmployeeApiController に基づいています。
概要
従業員管理モジュールはライフサイクル全体をカバーします:
- HR 視点: 名簿管理、入社処理、統計分析
- IT 視点: アカウント開通、権限割り当て、Passkey 設定
- マネージャー視点: チーム管理、報告関係、人員配置
エンティティ構造
Employee は App\Entity\Organization\Employee エンティティであり、同時に Security のユーザープロバイダです:
yaml
# config/packages/security.yaml
providers:
app_user_provider:
entity:
class: App\Entity\Organization\Employee主要フィールド:
isPasswordModifiedByUser: 初期パスワードが変更済みかをマークWebauthnCredentialと一対多で関連付け(passkeys)- アバターは
AvatarControllerで管理
コア機能
従業員名簿
- 管理画面:
templates/employee/list.html.twig - 詳細ページ:
templates/employee/show.html.twig - 編集ページ:
templates/employee/edit.html.twig - 編集ドロワー:
templates/employee/edit_drawer.html.twig - アバター管理:
templates/employee/_avatar_modal.html.twig
API エンドポイント
従業員管理は EmployeeApiController で RESTful API を提供します:
http
GET /api/admin/employees # 员工列表
POST /api/admin/employees # 创建员工
GET /api/admin/employees/{id} # 员工详情
PUT /api/admin/employees/{id} # 更新员工
DELETE /api/admin/employees/{id} # 删除员工入社フロー
初回ログイン時、システムは UserSetupListener でユーザーの状態を自動的に検出します:
- パスワードが変更済みかをチェック(
isPasswordModifiedByUser) - Passkey が登録済みかをチェック
- いずれかのステップが未完了なら設定ページへリダイレクト
ユーザー設定
php
// src/EventListener/UserSetupListener.php
// 权限路由白名单: app_user_setup, app_logout
// WebAuthn 和登录路由始终可访问
// 密码未修改或未设置 Passkey 时重定向到设置页管理入口
- 従業員一覧:
App\Controller\EmployeeController - API:
App\Controller\Api\EmployeeApiController - アバター:
App\Controller\Api\AvatarController