Appearance
Account And Organization — Business Rules
Tổng quan
Domain này gom phần quản trị nền của user module:
- system accounts
- role/group/group members
- branch
- department
Đây là lớp identity + organization directory dùng chung cho các module khác.
Scope nghiệp vụ
| Nhóm | Vai trò | Ví dụ surface |
|---|---|---|
| System accounts | CRUD account, reset password/PIN, merge account | Users.tsx, UserDetail.tsx |
| Group management | CRUD group và thành viên nhóm | Groups.tsx, GroupCreate.tsx |
| Branch | CRUD chi nhánh, branch detail tabs department/warehouse/service | Branch.tsx, BranchCreate.tsx, BranchDetail.tsx |
| Department | CRUD phòng ban, member, approver | Department.tsx, DepartmentDetail.tsx |
Luồng chính
text
System account list
-> create / edit / password / merge account
Group / Branch / Department
-> list
-> create / update
-> detail tabs (branch) hoặc member/approver management (department)
-> đồng bộ ra datasets/views phụ trợ qua event flows backendQuy tắc nghiệp vụ
| Mã | Quy tắc |
|---|---|
| BR-UAO-001 | system_account_management, staff_management, customer_management, internal_configuration là các permission domains tách biệt. |
| BR-UAO-002 | Branch và department về URL nằm dưới /s/internal-settings/*, nhưng ownership code vẫn ở module user. |
| BR-UAO-003 | RoleNoBranch, RoleSingleBranch, ApprovalRoles là các helper business quan trọng cho org/account flows. |
| BR-UAO-004 | Nhiều thao tác account nhạy cảm không phải mutation table trực tiếp mà đi qua custom actions của auth. |
Boundary
| Boundary | Ghi chú |
|---|---|
auth | Create account, change password, OTP merge, OTP forget password |
settings | Branch/department xuất hiện trong settings namespace và còn bị settings module reuse |
ecommerce | Event sync branch_user, department_user, searchable datasets, org mirrors |
Rủi ro / Findings
| Mức | Finding |
|---|---|
| P1 | GroupCreate.tsx hiện có tên là create nhưng logic submit chỉ update nếu có group_id; create path gần như không tồn tại. |
| P1 | ROUTE_USER_CREATE và ROUTE_GROUP_CREATE hiện là constants trôi; create flow thực đang chạy bằng modal hoặc đã bị comment khỏi list page. |
| P1 | ROUTE_GROUP_EDIT bị khai báo config 2 lần trong module.ts. |
| P1 | Branch/department nằm ở namespace settings nhưng code ở user, rất dễ nhầm khi trace ownership. |
| P1 | Các action nhạy cảm như đổi mật khẩu/PIN phụ thuộc nhiều vào FE gate; server-side enforcement cần được xem như risk riêng. |