إدارة الموظفين
كيان Employee (src/Entity/Organization/Employee) هو نموذج المستخدم في نظام Doggy، وهو أيضًا الموضوع (Principal) لمصادقة Symfony Security. تعتمد نقاط الدخول الإدارية على EmployeeController وEmployeeApiController.
نظرة عامة
يغطي نموذج إدارة الموظفين دورة الحياة الكاملة:
- منظور الموارد البشرية: إدارة السجل، إجراءات التوظيف، التحليلات الإحصائية
- منظور تقنية المعلومات: إنشاء الحسابات، توزيع الصلاحيات، إعدادات 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
واجهات برمجة التطبيقات
توفر إدارة الموظفين واجهة RESTful API عبر 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} # 删除员工عملية التوظيف
عند أول تسجيل دخول، يكتشف النظام تلقائيًا حالة المستخدم عبر 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