Quản lý nhân viên#
Mục tiêu: Admin Root quản lý danh sách nhân viên (AT/TCB staff) — invite, update, active/inactive, bulk-invite.
Mục tiêu#
- Mời 1 hoặc nhiều nhân viên cùng lúc.
- Update info, đổi mật khẩu, toggle active.
- Resend invite khi email invite cũ hết hạn.
Điều kiện tiên quyết#
- Role Root Admin hoặc Admin (quyền cao).
- Đã setup Roles (Phân quyền RBAC).
Các bước thực hiện#
1. Vào danh sách#
- Menu Nhân viên (
/staff). - Bảng hiển thị các cột:
| Cột | Ý nghĩa |
|---|---|
| Tên | |
| Vai trò | Role |
| Partner | Techcombank / khác |
| Ngày tạo | |
| Ngày cập nhật | |
| Trạng thái | Active / Inactive |
| Trạng thái mời | Pending / Accepted |
2. Mời 1 nhân viên#
- Bấm Tạo mới (hoặc Invite Staff).
- Điền form:
- Email (bắt buộc)
- Tên (bắt buộc)
- Vai trò (bắt buộc) — chọn từ dropdown roles
- Partner (bắt buộc) — chọn partner
- Submit → hệ thống gửi email invite.
- User xuất hiện trong bảng với inviteStatus = pending.
3. Bulk invite#
- Bấm Bulk Invite.
- Upload file CSV / paste rows với columns:
email,name,role,partner
- Submit → hệ thống xử lý từng row.
- Kết quả: số invite thành công / fail (email trùng, role sai).
4. Cập nhật thông tin#
- Action Edit trên row.
- Update:
- Tên, Avatar
- Role
- Partner
isRoot(cờ Root Admin) — chỉ Root set được.
- Lưu.
5. Đổi mật khẩu#
- Action Change password trên row.
- Nhập Password + Confirm password.
- Submit.
⚠️ Chỉ dùng khi nhân viên quên mật khẩu và không reset qua email được. Trong trường hợp thường, user tự reset.
6. Toggle active/inactive#
- Action Toggle status trên row.
- Inactive = tạm disable — nhân viên không login được.
7. Resend invite#
Khi invite email hết hạn (sau inviteExpiry):
- Action Resend invite.
- Email mới được gửi → reset expiry.
Chi tiết từng bước#
Staff fields#
name,emailavatarrole— reference Role entitypartner— reference Partneractive— true/falseinviteStatus— pending / acceptedinviteExpiry— timestampisRoot— cờ Root Admin
Invite flow#
1. Root gửi invite → email + token
2. Staff click link trong email → đặt password
3. inviteStatus: pending → accepted
4. active = true
5. Staff login được
Staff root vs normal#
isRoot = true: toàn quyền, không cần role/partner specific.isRoot = false: phải có role + partner.
Khi nào dùng Bulk Invite#
- Rollout cho team mới (> 10 người).
- Onboarding đợt mass hire.
Không dùng cho vài người — tạo từng người rõ ràng hơn.
Lỗi thường gặp#
1. Invite failed "Email already exists"#
- Email đã có trong hệ thống. Search trong bảng, update role/partner thay vì tạo mới.
2. User không nhận được email invite#
- Check spam.
- Email SMTP config có vấn đề (liên hệ DevOps).
- Resend invite.
3. Change password không lưu#
- Password không đạt policy (độ dài, ký tự đặc biệt).
- Confirm không khớp.
4. Toggle active không apply ngay#
- Session cache — user đang login vẫn dùng được JWT cho đến khi expire (thường 1 giờ).
- Muốn ép logout: action Force logout (nếu có).
5. Bulk invite trả lỗi "invalid role"#
- Role name trong CSV không match. Dùng role ID thay vì name để chắc chắn.
Câu hỏi thường gặp (FAQ)#
Có thể xóa hẳn nhân viên không?
Ít khi cần. Toggle inactive là đủ. Xóa hẳn mất audit trail. Chỉ Root mới có quyền xóa hẳn (soft delete).
Nhân viên đổi role thì active history giữ không?
Giữ. Role thay đổi nhưng action history (audit log) giữ nguyên.
Invite hết hạn là bao lâu?
Tùy config, thường 7 ngày. Sau đó phải resend.
Có 2FA cho admin không?
Tuỳ policy. Nếu bật, user scan QR khi login lần đầu.
Partner của nhân viên có thể đổi không?
Được, qua Edit. Nhưng data cũ của họ đã gắn với partner cũ không đổi — action history giữ nguyên.
Root có bao nhiêu người?
Khuyến nghị ≤ 3 Root Admin cho security. Nhiều Root = rủi ro cao.
Liên kết liên quan#
Tham khảo SRS: admin-portal/01-dang-nhap