Phân quyền (RBAC)#
Mục tiêu: Admin Root hiểu 6 vai trò mặc định, đọc permission matrix, và tạo/edit role khi cần.
Mục tiêu#
- Hiểu 6 roles mặc định và phạm vi quyền mỗi role.
- Đọc được permission matrix (Module × Action).
- Tạo role mới hoặc edit role hiện có.
Điều kiện tiên quyết#
- Role Root Admin.
6 vai trò mặc định#
Root Admin#
- Toàn quyền — không giới hạn.
- Tạo/xóa role.
- Quản lý nhân viên.
- Xem/thay đổi mọi dữ liệu.
- Chỉ nên có ≤ 3 người trong toàn hệ thống.
Admin#
- Quản lý chung (thử thách, content, user).
- Không quản lý nhân viên khác.
- Xem audit log.
Manager#
- Quản lý content, user, budget.
- Tạo thử thách.
- Không ban user, không duyệt eKYC nhạy cảm.
Moderator#
- Chỉ duyệt content.
- Xem thử thách, Influencer nhưng không edit.
Analyst#
- Read-only.
- Xem báo cáo, export data.
- Không thay đổi data.
Staff#
- Nhân viên cơ bản, quyền thấp.
- Chỉ xem một số trang.
Permission Matrix#
| Module | View | Create | Edit | Delete | Approve |
|---|---|---|---|---|---|
| Event | Root, Admin, Manager, Analyst | Root, Admin | Root, Admin | Root, Admin | — |
| Content | All | — | — | — | Root, Admin, Moderator |
| User | Root, Admin, Manager | Root, Admin | Root, Admin | Root, Admin | — |
| Staff | Root, Admin | Root | Root, Admin | Root | — |
| Segment | All | Root, Admin | Root, Admin | Root, Admin | — |
| Notification | All | Root, Admin | Root, Admin | Root, Admin | Root, Admin |
| Article | All | Root, Admin | Root, Admin | Root, Admin | — |
| Reconciliation | Root, Admin, Manager | Root, Admin | Root, Admin | Root | — |
| Transfer | Root, Admin, Manager | Root, Admin | Root, Admin | Root | Root, Admin |
| Identification (eKYC) | Root, Admin, Manager | — | — | — | Root, Admin |
| Blacklist | Root, Admin | Root, Admin | Root, Admin | Root | — |
| Audit Log | Root, Admin | — | — | — | — |
⚠️ Ma trận này là mặc định. Có thể customize khi tạo role mới.
Các bước thực hiện#
1. Xem danh sách roles#
- Vào Configuration → tab Roles.
- Bảng hiển thị roles với số user được gán.
2. Tạo role mới#
- Bấm Tạo mới.
- Điền:
- Tên role (ví dụ: "Finance Manager")
- Description
- Permissions — tick từng permission cho từng module
- Lưu.
3. Edit role#
- Action Edit trên row role.
- Update permissions.
- Lưu.
⚠️ Edit role ảnh hưởng ngay tất cả nhân viên đang có role đó. Test kỹ trước khi apply production.
4. Xóa role#
- Chỉ xóa được role không có nhân viên nào gán.
- Nếu có user đang gán, phải reassign user trước.
5. Gán role cho nhân viên#
Xem Quản lý nhân viên → Edit user → chọn role.
Chi tiết từng bước#
Permission granularity#
Permission chia theo Module × Action:
- Modules: Event, Content, User, Staff, ...
- Actions: View / Create / Edit / Delete / Approve / Reject / Export / etc.
Ví dụ permission: content.approve = quyền duyệt content.
Partner scope#
Staff thuộc 1 partner. Họ chỉ thấy/thao tác data của partner đó, kể cả khi role có quyền cao.
Root Admin là exception — có thể thấy all partners.
Audit permission change#
Mọi edit role đều log:
- Ai thay đổi.
- Before/after state của permissions.
- Timestamp.
Lỗi thường gặp#
1. User báo "Không có quyền" nhưng role đúng#
- Cache JWT cũ. User logout + login lại.
- Role vừa edit chưa propagate.
2. Tạo role mới không save#
- Tên role trùng.
- Thiếu required permission (một số module cần ít nhất view).
3. Không xóa được role#
- Có user đang gán. Reassign trước.
4. Permission matrix phức tạp, không biết nên cho quyền gì#
→ Follow nguyên tắc least privilege — cho quyền tối thiểu đủ việc. Có thể grant thêm khi user yêu cầu rõ.
5. Staff root không có role mà vẫn làm đủ thứ#
Đúng. Root bypass mọi permission check. Hãy limit số Root.
Câu hỏi thường gặp (FAQ)#
Một user có nhiều role không?
Không. Mỗi user 1 role tại 1 thời điểm. Đổi role thì update.
Có permission theo partner không?
Có (gián tiếp qua partner scope). Permission là global nhưng áp dụng trong scope của partner user thuộc về.
Custom permission rất chi tiết được không?
Phụ thuộc implementation. Thông thường permission ở mức Module.Action, không chi tiết tới field level.
Role mới có ảnh hưởng SSO/SAML?
Nếu dùng SSO, role có thể map từ IdP. Với Admin T-Fluencers hiện tại, dùng internal role. Check với DevOps.
Có dry-run permission không?
Chưa. Khuyến nghị: tạo test user + role, test trước khi apply production.
Liên kết liên quan#
Tham khảo SRS: admin-portal/01-dang-nhap