Skip to content

従業員管理

Employee エンティティ(src/Entity/Organization/Employee)は Doggy システムのユーザーモデルであり、Symfony Security の認証主体でもあります。管理の入口は EmployeeControllerEmployeeApiController に基づいています。

概要

従業員管理モジュールはライフサイクル全体をカバーします:

  • 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 でユーザーの状態を自動的に検出します:

  1. パスワードが変更済みかをチェック(isPasswordModifiedByUser
  2. Passkey が登録済みかをチェック
  3. いずれかのステップが未完了なら設定ページへリダイレクト

ユーザー設定

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

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

管理入口

  • 従業員一覧: App\Controller\EmployeeController
  • API: App\Controller\Api\EmployeeApiController
  • アバター: App\Controller\Api\AvatarController

MIT ライセンスでオープンソース | Copyright © 2026 Doggy