III. Yêu cầu chức năng — Phía Admin#
12. Đăng nhập Admin#
Mục tiêu#
Cho phép quản trị viên đăng nhập vào hệ thống quản trị.
Phương thức đăng nhập#
- Email + Mật khẩu: Đăng nhập thông thường
Luồng nghiệp vụ#
- Admin truy cập trang đăng nhập.
- Nhập email và mật khẩu.
- Backend xác thực → tạo JWT token.
- Chuyển hướng đến trang quản trị.
Tính năng bổ sung#
- Quên mật khẩu → gửi email reset
- Đổi mật khẩu
- Mời nhân viên mới (invite system)
- Xác minh invite token → chấp nhận lời mời
API đã triển khai#
POST /staffs/login — Đăng nhập email/password
POST /staffs/forgot-password — Quên mật khẩu
POST /staffs/reset-password — Đặt lại mật khẩu
POST /staffs/invite — Mời nhân viên
POST /staffs/bulk-invite — Mời hàng loạt
Tiêu chí chấp nhận (Acceptance Criteria)#
| # | Tiêu chí | Điều kiện đạt |
|---|
| AC-12.1 | Đăng nhập thành công | Nhập email + mật khẩu đúng → redirect vào trang quản trị, hiển thị tên admin |
| AC-12.2 | Đăng nhập thất bại | Email/mật khẩu sai → hiển thị "Thông tin đăng nhập không đúng", không cho vào |
| AC-12.3 | Quên mật khẩu | Nhập email → nhận email reset → click link → đặt mật khẩu mới → đăng nhập bằng mật khẩu mới |
| AC-12.4 | Mời nhân viên | Nhập email → gửi invite → người được mời nhận email → click link → xác nhận → tạo tài khoản |
| AC-12.5 | Mời hàng loạt | Upload danh sách email → tất cả nhận được email invite |
| AC-12.6 | Invite token hết hạn | Click link invite sau thời hạn → hiển thị "Link đã hết hạn" |
13. Quản lý nhân viên & Phân quyền#
Mục tiêu#
Quản lý tài khoản nhân viên quản trị và phân quyền truy cập.
Luồng nghiệp vụ#
- Admin xem danh sách nhân viên.
- Tạo mới / cập nhật thông tin / thay đổi trạng thái (active/inactive).
- Gán vai trò cho nhân viên.
Hệ thống vai trò (RBAC)#
| Vai trò | Mô tả |
|---|
| Root | Toàn quyền hệ thống |
| Admin | Quản lý chiến dịch, nội dung, người dùng, đối soát, thanh toán |
| Campaign Owner | Quản lý chiến dịch được giao |
| Collaborator | Cộng tác viên với quyền hạn giới hạn |
API đã triển khai#
GET /staffs — Danh sách nhân viên
POST /staffs/register — Tạo nhân viên
PUT /staffs/:id/update-info — Cập nhật thông tin
PATCH /staffs/:id/status — Thay đổi trạng thái
GET /roles — Danh sách vai trò
Tiêu chí chấp nhận (Acceptance Criteria)#
| # | Tiêu chí | Điều kiện đạt |
|---|
| AC-13.1 | Danh sách nhân viên | Hiển thị tên, email, vai trò, trạng thái, hỗ trợ tìm kiếm và phân trang |
| AC-13.2 | Tạo nhân viên | Nhập thông tin + gán vai trò → tạo thành công, hiển thị trong danh sách |
| AC-13.3 | Phân quyền RBAC | Collaborator không truy cập được trang đối soát/thanh toán. Campaign Owner chỉ thấy chiến dịch được gán |
| AC-13.4 | Vô hiệu hóa nhân viên | Đổi trạng thái inactive → nhân viên không đăng nhập được |