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\EmployeeWichtige Felder:
isPasswordModifiedByUser: markiert, ob das initiale Passwort geändert wurde- One-to-Many-Beziehung zu
WebauthnCredential(Passkeys) - Der Avatar wird über
AvatarControllerverwaltet
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:
- Prüft, ob das Passwort geändert wurde (
isPasswordModifiedByUser) - Prüft, ob ein Passkey registriert wurde
- 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