feat(audit): show actor full name + role in logs, click to view details
CI/CD / CI · API (dotnet build + test) (push) Successful in 44s
CI/CD / CI · Admin API (dotnet build) (push) Successful in 31s
CI/CD / CI · Dashboard (tsc) (push) Successful in 1m11s
CI/CD / CI · Admin Web (tsc) (push) Successful in 38s
CI/CD / CI · Website (tsc) (push) Successful in 46s
CI/CD / CI · Koja (tsc) (push) Successful in 50s
CI/CD / Deploy · all services (push) Successful in 3m39s

Logs showed the raw User ID (ActorName was almost never stored) and an English
role enum. Now:

- AuditController resolves each entry's actor to the employee's CURRENT full name
  and localized role at read time (joins Employees with IgnoreQueryFilters, so it
  also names soft-deleted staff and fixes all historical rows — no migration).
- The audit table renders "Full name (Role)" with the role localized (fa/en/ar);
  the name is a button that opens an employee-details dialog.
- New EmployeeDetailsDialog: fetches the employee and shows name, role, phone,
  base salary, and an "Open in HR" link; handles removed staff gracefully.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
soroush.asadi
2026-06-21 11:24:06 +03:30
parent 6d71770f2e
commit 2a24798a59
6 changed files with 219 additions and 16 deletions
+5
View File
@@ -1,6 +1,7 @@
{
"common": {
"save": "حفظ",
"close": "إغلاق",
"cancel": "إلغاء",
"confirm": "تأكيد",
"delete": "حذف",
@@ -462,6 +463,9 @@
"addEmployee": "إضافة موظف",
"noEmployees": "لا يوجد موظفون بعد.",
"employeeCreated": "تمت إضافة الموظف",
"employeeDetails": "تفاصيل الموظف",
"employeeNotFound": "هذا المستخدم لم يعد نشطًا.",
"openInHr": "فتح في الموارد البشرية",
"save": "حفظ",
"cancel": "إلغاء",
"fields": {
@@ -648,6 +652,7 @@
"colSummary": "الوصف",
"details": "التفاصيل",
"systemActor": "النظام",
"unknownActor": "مستخدم غير معروف",
"prevPage": "السابق",
"nextPage": "التالي"
}