Skip to content

Mitarbeiterverwaltung

Die Employee-Entität (src/Entity/Organization/Employee) ist das Benutzermodell des Doggy-Systems und gleichzeitig das Authentifizierungsobjekt von Symfony Security. Der Verwaltungseinstieg basiert auf EmployeeController und EmployeeApiController.

Übersicht

Das Mitarbeiterverwaltungsmodul deckt den gesamten Lebenszyklus ab:

  • HR-Perspektive: Personalverzeichnis, Einstellungsabwicklung, statistische Auswertungen
  • IT-Perspektive: Kontofreischaltung, Berechtigungsvergabe, Passkey-Einrichtung
  • Führungsperspektive: Teamverwaltung, Berichtsbeziehungen, Personalumverteilung

Entitätsstruktur

Employee ist die Entität App\Entity\Organization\Employee und gleichzeitig der Benutzer-Provider der Security:

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

Wichtige Felder:

  • isPasswordModifiedByUser: markiert, ob das initiale Passwort geändert wurde
  • One-to-Many-Beziehung zu WebauthnCredential (Passkeys)
  • Der Avatar wird über AvatarController verwaltet

Kernfunktionen

Mitarbeiterverzeichnis

  • Verwaltungsoberfläche: templates/employee/list.html.twig
  • Detailseite: templates/employee/show.html.twig
  • Bearbeitungsseite: templates/employee/edit.html.twig
  • Bearbeitungs-Drawer: templates/employee/edit_drawer.html.twig
  • Avatar-Verwaltung: templates/employee/_avatar_modal.html.twig

API-Schnittstellen

Die Mitarbeiterverwaltung stellt über EmployeeApiController RESTful-APIs bereit:

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

Einstellungsprozess

Beim ersten Login erkennt das System über UserSetupListener automatisch den Benutzerstatus:

  1. Prüft, ob das Passwort geändert wurde (isPasswordModifiedByUser)
  2. Prüft, ob ein Passkey registriert wurde
  3. Ist ein Schritt nicht abgeschlossen, wird zur Einrichtungsseite umgeleitet

Benutzereinstellungen

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

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

Verwaltungseinstieg

  • Mitarbeiterliste: App\Controller\EmployeeController
  • API: App\Controller\Api\EmployeeApiController
  • Avatar: App\Controller\Api\AvatarController

Open Source unter MIT | Copyright © 2026 Doggy