Tài khoản & phân quyền
Tài khoản quản trị: tạo, mời, khoá, đăng nhập; vai trò, ma trận quyền, phạm vi dữ liệu theo vùng/chi nhánh/điểm activation; nhật ký thao tác.
Mục tiêu
Phạm vi trangTrang này chỉ nói về
tài khoản quản trị (
admin_user) — người vận hành hệ thống. Tài khoản người chơi (định danh SĐT / Zalo ID / FPT ID, hồ sơ, chặn) thuộc
Danh sách khách hàng. Mô tả gốc ghi "Tài khoản" chưa rõ nghĩa — chờ PM xác nhận ở Q-TK-01.
| Mục tiêu | Chỉ số đo | Ngưỡng MVP |
| Mỗi người chỉ thấy và làm đúng phần việc của mình | Số thao tác vượt quyền lọt qua kiểm thử phân quyền | 0 |
| Truy được ai làm gì | Tỉ lệ sự kiện bắt buộc (mục Nhật ký thao tác) có bản ghi | 100% |
| Mở tài khoản cho đợt activation kịp | Thời gian từ mời đến nhân viên booth đăng nhập được thiết bị | ≤ 10 phút |
| Thu hồi quyền ngay khi nghỉ việc / hết hợp đồng agency | Thời gian từ khoá đến mọi phiên đang mở bị đăng xuất | ≤ 1 phút |
Ngoài phạm vi
- Tài khoản, đăng nhập người chơi — xem Danh sách khách hàng và các trang kênh.
- Quản lý nhân sự, hợp đồng agency/PG — làm ngoài hệ thống.
- Đăng ký, ghép thiết bị kiosk/TV với điểm activation — xem Activation offline.
- Vai trò tuỳ biến (tự tạo vai trò mới) — MVP dùng 6 vai trò cố định.
Vai trò & quyền
Tên vai trò theo Thuật ngữ. Nhu cầu từng vai trò: Vai trò người dùng. Một tài khoản có một vai trò và một hoặc nhiều phạm vi.
| Vai trò | Mã | Đăng nhập ở đâu | Phạm vi thường gặp |
| Quản trị hệ thống | super_admin | Trang quản trị | Toàn quốc |
| Quản lý campaign | campaign_manager | Trang quản trị | Toàn quốc (FCM) hoặc vùng / chi nhánh |
| Người duyệt | approver | Trang quản trị | Toàn quốc hoặc vùng |
| Quản lý kho quà | prize_keeper | Trang quản trị | Toàn quốc hoặc vùng |
| Nhân viên booth | booth_staff | Ứng dụng booth trên thiết bị (iPad/điện thoại) bằng PIN | Một hoặc vài điểm activation |
| Người xem báo cáo | viewer | Trang quản trị (chỉ mục Báo cáo) | Bất kỳ |
Ma trận quyền
Nguồn duy nhất về quyền. Trang module khác chỉ tóm tắt và link về đây; lệch nhau thì bảng này đúng.
✓ được làm trong phạm vi dữ liệu của mình · Xem chỉ đọc · Điểm chỉ điểm activation được gán · NK được làm, bắt buộc ghi nhật ký kèm lý do · — không được.
| Module | Hành động | QTHT | QL campaign | Người duyệt | QL kho quà | NV booth | Xem BC |
| Quản lý game | Xem thư viện game mẫu, phiên bản | ✓ | ✓ | ✓ | — | — | — |
| Thêm phiên bản, bật/tắt game mẫu | ✓ | — | — | — | — | — |
| Tải skin/asset dùng chung | ✓ | ✓ | — | — | — | — |
| Campaign | Xem campaign, cơ cấu giải | ✓ | ✓ | ✓ | Xem | Điểm (thông tin vận hành) | Xem |
| Tạo, sửa nháp, gửi duyệt | — | ✓ | — | — | — | — |
| Duyệt / từ chối | — | — | ✓ (không duyệt campaign mình tạo) | — | — | — |
| Sửa cơ cấu giải, tỉ lệ trúng khi đang chạy | — | NK (phải duyệt lại theo Campaign) | ✓ | — | — | — |
| Tạm dừng / tiếp tục / kết thúc | NK (khẩn cấp) | ✓ | ✓ | — | — | — |
| Tạo, sửa điểm activation | ✓ | ✓ | — | — | — | — |
| Đăng ký, thu hồi thiết bị | ✓ | ✓ | — | — | Điểm (ghép thiết bị bằng mã) | — |
| Cấp lượt chơi thủ công | — | NK | — | — | Điểm, trong hạn mức (xem Khung game) | — |
| Kho quà | Xem danh mục, tồn | ✓ | Xem | Xem | ✓ | Điểm | — |
| Tạo, sửa, ngừng dùng quà | ✓ | — | — | ✓ | — | — |
| Nhập kho, tải lô mã, điều chuyển | ✓ | — | — | ✓ | Điểm (xác nhận nhận hàng) | — |
| Điều chỉnh tồn (lập / duyệt) | ✓ | — | — | ✓ (không tự duyệt phiếu mình lập) | — | — |
| Gán quà vào cơ cấu giải | — | ✓ | — | Xem | — | — |
| Xác nhận trao quà (quét QR) | ✓ | — | — | — | Điểm | — |
| Huỷ cấp phát; xem mã digital đầy đủ | NK | — | — | NK | — | — |
| Đối soát, chốt biên bản | ✓ | Xem | — | ✓ | Điểm (nhập số đếm, ký) | Xem |
| Khách hàng | Xem danh sách người chơi (SĐT che) | ✓ | ✓ | — | — | — | — |
| Xem SĐT đầy đủ, chi tiết hồ sơ | NK | NK | — | — | — | — |
| Xuất lead / dữ liệu cá nhân | — | NK, cần cờ "Được xuất dữ liệu cá nhân" | — | — | — | — |
| Chặn / bỏ chặn người chơi | ✓ | NK | — | — | — | — |
| Xử lý yêu cầu xoá / rút đồng ý | NK | — | — | — | — | — |
| Báo cáo | Xem dashboard | ✓ | ✓ | ✓ | ✓ (tồn, trao quà) | Điểm, trong ngày | ✓ |
| Xuất XLSX (số tổng hợp) | ✓ | ✓ | ✓ | ✓ | — | ✓ |
| Tài khoản | Mời, sửa, khoá tài khoản quản trị | ✓ | — | — | — | — | — |
| Mời, khoá nhân viên booth | ✓ | ✓ (điểm thuộc phạm vi) | — | — | — | — |
| Gán vai trò, phạm vi, cờ xuất dữ liệu | ✓ | — | — | — | — | — |
| Xem nhật ký thao tác | ✓ | Chỉ của chính mình | Chỉ của chính mình | Chỉ của chính mình | — | — |
| Cấu hình chính sách mật khẩu, phiên, tích hợp | ✓ | — | — | — | — | — |
Tách quyềnQuản trị hệ thống không tạo hay duyệt campaign để một người không vừa đặt tỉ lệ trúng vừa duyệt. Cần ngoại lệ (đội nhỏ, một người kiêm) thì cấp hai tài khoản riêng.
Phạm vi dữ liệu
Toàn quốc⊃Vùng⊃Chi nhánh⊃Điểm activation
| Đối tượng | Thuộc phạm vi nào | Ai thấy |
| Campaign | Đơn vị sở hữu khi tạo (toàn quốc / vùng / chi nhánh) | Tài khoản có phạm vi chứa đơn vị đó |
| Campaign online toàn quốc | Toàn quốc | Phạm vi toàn quốc; vùng/chi nhánh xem số liệu phần mình qua Báo cáo (theo khu vực người chơi khai) |
| Điểm activation, thiết bị | Chi nhánh chứa điểm | Như campaign; nhân viên booth chỉ điểm được gán |
| Kho | Kho tổng: toàn quốc/vùng; kho tại điểm: chi nhánh | Như trên |
| Người chơi, lead | Mọi campaign người đó đã chơi | Thấy người chơi nếu có ≥ 1 phiên chơi trong campaign thuộc phạm vi; chỉ thấy lịch sử của các campaign đó |
MVP nhập tay danh mục vùng/chi nhánh; đồng bộ từ hệ thống FTEL ở đợt sau — xem Tích hợp. Xác nhận cấu trúc vùng/chi nhánh hiện hành và nguồn dữ liệu
User stories
| Mã | Là… | Tôi muốn… | Để… | Ưu tiên |
| US-TK-01 | Quản trị hệ thống | mời tài khoản qua email, gán vai trò và phạm vi | người mới làm việc được ngay, đúng phần | Must |
| US-TK-02 | Nhân viên FTEL | đăng nhập bằng tài khoản nội bộ FPT (SSO) | không phải nhớ thêm mật khẩu | Should |
| US-TK-03 | Nhân viên agency | đăng nhập bằng email + mật khẩu + mã 2FA | làm việc dù không có tài khoản FPT | Must |
| US-TK-04 | Nhân viên booth | đăng nhập thiết bị tại điểm bằng PIN 6 số | vào ca trong vài giây, không gõ email trên iPad | Must |
| US-TK-05 | Quản lý campaign | tạo nhanh tài khoản booth cho điểm của mình, nhập từ file | chuẩn bị 20–30 PG cho một đợt sự kiện | Should |
| US-TK-06 | Quản trị hệ thống | khoá tài khoản và đăng xuất mọi phiên ngay | thu hồi quyền khi nghỉ việc / lộ PIN | Must |
| US-TK-07 | Quản trị hệ thống | tra nhật ký theo người, đối tượng, khoảng thời gian | điều tra khi lệch quà hoặc rò lead | Must |
| US-TK-08 | Người dùng quản trị | tự đổi mật khẩu, đặt lại khi quên | không phải nhờ quản trị | Must |
| US-TK-09 | Quản trị hệ thống | đặt ngày hết hạn cho tài khoản agency | tài khoản tự khoá khi hết hợp đồng | Should |
Ưu tiên theo MoSCoW: Must · Should · Could · Won't (đợt này).
Luồng chính
Mời tài khoản quản trị
- Quản trị hệ thống nhập email, họ tên, đơn vị, vai trò, phạm vi, (tuỳ chọn) ngày hết hạn.
- Kiểu đăng nhập: MVP mọi tài khoản dùng Mật khẩu + 2FA. Khi có SSO (Q-TK-02): email
@fpt.com / @fpt.vn → SSO.
- Hệ thống gửi email mời, link hiệu lực 72 giờ. Trạng thái Đã mời.
- Người được mời mở link: SSO → đăng nhập nội bộ; mật khẩu → đặt mật khẩu, quét QR cài ứng dụng xác thực (TOTP).
- Đăng nhập lần đầu thành công → Hoạt động.
Tài khoản nhân viên booth
- Quản lý campaign tạo tài khoản: họ tên, SĐT, điểm activation được gán, ngày hết hạn (mặc định ngày kết thúc campaign).
- Hệ thống sinh PIN 6 số, gửi qua SMS/ZNS tới SĐT nhân viên; không hiện PIN trên trang quản trị.
- Tại điểm: mở ứng dụng booth trên thiết bị đã ghép với điểm → chọn tên → nhập PIN.
- Phiên booth sống đến hết ca (tối đa 12 giờ) hoặc khi bấm "Kết thúc ca".
Đăng nhập trang quản trị (mật khẩu + 2FA)
- Nhập email + mật khẩu → đúng → nhập mã TOTP 6 số.
- Sai liên tiếp quá ngưỡng (BR-TK-05) → khoá tạm; gửi email báo chủ tài khoản.
- Thành công → ghi nhật ký (người, IP, trình duyệt) → vào trang theo vai trò.
Màn hình
| Màn | Thành phần chính | Hành động | Ghi chú |
| Danh sách tài khoản | Bảng: tên, email/SĐT, vai trò, phạm vi, kiểu đăng nhập, trạng thái, lần đăng nhập cuối; lọc vai trò/phạm vi/trạng thái | Mời, nhập file, khoá, mở khoá | Tab riêng "Nhân viên booth" |
| Chi tiết tài khoản | Thông tin, vai trò, phạm vi (cây vùng → chi nhánh → điểm), cờ xuất dữ liệu, ngày hết hạn, phiên đang mở | Sửa, đặt lại 2FA, cấp lại PIN, đăng xuất mọi phiên | |
| Đăng nhập quản trị | Nút "Đăng nhập bằng tài khoản FPT"; email + mật khẩu; ô mã 2FA .ds-otp | Đăng nhập, quên mật khẩu | |
| Đăng nhập booth | Tên điểm, danh sách nhân viên của điểm, bàn phím số PIN | Vào ca, kết thúc ca | Vùng chạm ≥ 48px |
| Nhật ký thao tác | Bảng: thời điểm, người, vai trò, hành động, đối tượng, trước → sau, IP/thiết bị; lọc | Xem chi tiết, xuất XLSX | Chỉ đọc |
| Hồ sơ của tôi | Thông tin, phạm vi, phiên đang mở | Đổi mật khẩu, đổi thiết bị 2FA | |
Quy tắc nghiệp vụ
| Mã | Quy tắc | Ví dụ |
| BR-TK-01 | Mỗi email/SĐT chỉ một tài khoản quản trị. Không dùng chung tài khoản giữa nhiều người | Booth có 3 PG → 3 tài khoản booth |
| BR-TK-02 | Kiểm tra quyền ở phía server cho mọi thao tác; ẩn nút trên giao diện chỉ là phụ | |
| BR-TK-03 | Phạm vi lọc mọi danh sách, báo cáo, file xuất. Đối tượng ngoài phạm vi trả "không tìm thấy", không trả "không có quyền" | QL campaign Vùng 2 mở link campaign Vùng 5 → "Không tìm thấy" |
| BR-TK-04 | Mật khẩu: ≥ 12 ký tự, không nằm trong danh sách mật khẩu phổ biến, không trùng 5 mật khẩu gần nhất. Không bắt đổi định kỳ; bắt đổi khi nghi lộ | |
| BR-TK-05 | Sai mật khẩu/2FA 5 lần trong 15 phút → khoá 15 phút. Sai PIN booth 5 lần → khoá PIN, quản lý campaign cấp lại | |
| BR-TK-06 | 2FA bắt buộc với kiểu đăng nhập mật khẩu. SSO dùng 2FA của hệ thống nội bộ | |
| BR-TK-07 | Phiên quản trị hết sau 30 phút không thao tác, tối đa 12 giờ. Phiên booth tối đa 12 giờ | |
| BR-TK-08 | PIN booth chỉ dùng được trên thiết bị đã ghép với điểm được gán cho nhân viên đó | PG điểm Q1 nhập PIN trên iPad điểm Q7 → từ chối |
| BR-TK-09 | Khoá tài khoản, đổi vai trò hoặc thu hẹp phạm vi → huỷ mọi phiên đang mở của tài khoản đó trong ≤ 1 phút | |
| BR-TK-10 | Tài khoản không đăng nhập 90 ngày → tự khoá. Đến ngày hết hạn → tự khoá | |
| BR-TK-11 | Luôn còn ≥ 2 tài khoản Quản trị hệ thống hoạt động: khi chỉ còn 2, chặn khoá hoặc hạ vai trò thêm | |
| BR-TK-12 | Không ai tự sửa vai trò, phạm vi, cờ xuất dữ liệu của chính mình | |
| BR-TK-13 | Cờ "Được xuất dữ liệu cá nhân" cấp theo người, có hạn tối đa 90 ngày; điều kiện xuất theo Dữ liệu cá nhân | |
| BR-TK-14 | Tài khoản không xoá cứng; chỉ khoá, để nhật ký còn tham chiếu được người thao tác | |
Nhật ký thao tác
Mỗi bản ghi: thời điểm, tài khoản, vai trò, IP / mã thiết bị, hành động, đối tượng, giá trị trước → sau, lý do (với quyền NK). Chỉ thêm, không sửa, không xoá. Lưu 24 tháng.
| Nhóm | Sự kiện phải ghi |
| Đăng nhập | Đăng nhập thành công/thất bại, khoá do sai, đăng xuất, hết phiên, vào/kết thúc ca booth |
| Tài khoản | Mời, kích hoạt, sửa, khoá/mở khoá; đổi vai trò, phạm vi, cờ xuất dữ liệu; đặt lại mật khẩu/2FA/PIN |
| Campaign | Gửi duyệt, duyệt, từ chối; sửa cơ cấu giải, tỉ lệ trúng, giới hạn trúng; tạm dừng, tiếp tục, kết thúc; cấp lượt thủ công |
| Kho quà | Nhập kho, tải lô mã, điều chuyển, điều chỉnh tồn (lập, duyệt), huỷ cấp phát, xem mã digital đầy đủ, xác nhận trao quà, chốt biên bản đối soát |
| Khách hàng | Xem SĐT đầy đủ/hồ sơ, xuất lead, chặn/bỏ chặn, xoá dữ liệu theo yêu cầu |
| Báo cáo | Xuất file (loại báo cáo, bộ lọc, số dòng) |
| Hệ thống | Đổi chính sách mật khẩu/phiên, đổi cấu hình tích hợp, bật/tắt game mẫu, đăng ký/thu hồi thiết bị |
Không ghi vào nhật ký: mật khẩu, PIN, mã OTP, mã digital đầy đủ, SĐT đầy đủ (ghi mã người chơi).
Trường dữ liệu
Tài khoản quản trị
| Trường | Kiểu | Bắt buộc | Ràng buộc | Ghi chú |
| Họ tên | Chuỗi | ✓ | ≤ 80 ký tự | |
| Email | Email | Trừ booth | Duy nhất | Quyết định kiểu đăng nhập |
| SĐT | Chuỗi | Booth | Duy nhất, 10 số | Nhận PIN |
| Đơn vị | Chuỗi | ✓ | FTEL — phòng ban, hoặc tên agency | |
| Vai trò | Chọn | ✓ | 1 trong 6 vai trò | |
| Phạm vi | Danh sách | ✓ | Toàn quốc · vùng · chi nhánh · điểm | Booth: chỉ điểm |
| Kiểu đăng nhập | Chọn | ✓ | SSO · Mật khẩu + 2FA · PIN | Tự gán theo email/vai trò |
| Được xuất dữ liệu cá nhân | Có/không + hạn | — | Theo BR-TK-13 | |
| Ngày hết hạn | Ngày | Agency, booth | ≥ hôm nay | |
| Trạng thái | Chọn | ✓ | Xem mục Trạng thái | |
| Mật khẩu, khoá 2FA, PIN | Băm / mã hoá | Theo kiểu | Không ai đọc được, kể cả quản trị | |
| Lần đăng nhập cuối | Thời điểm | — | Hệ thống ghi | Dùng cho BR-TK-10 |
Trạng thái tài khoản
Đã mời→Hoạt động⇄Đã khoá·Lời mời hết hạn
| Từ | Sang | Ai / điều kiện |
| — | Đã mời | Quản trị hệ thống (hoặc QL campaign với booth) |
| Đã mời | Hoạt động | Người được mời hoàn tất kích hoạt / đăng nhập lần đầu |
| Đã mời | Lời mời hết hạn | Hệ thống, quá 72 giờ; gửi lại lời mời → Đã mời |
| Hoạt động | Đã khoá | Người có quyền khoá; hệ thống theo BR-TK-05 (tạm), BR-TK-10, ngày hết hạn |
| Đã khoá | Hoạt động | Quản trị hệ thống mở khoá (ghi lý do); khoá tạm do sai mật khẩu tự mở sau 15 phút |
Ngoại lệ & lỗi
| Tình huống | Hệ thống xử lý | Thông báo hiển thị |
| SSO nội bộ không phản hồi | Không cho đăng nhập bằng mật khẩu thay thế với tài khoản SSO; quản trị hệ thống có tài khoản khẩn cấp (mật khẩu + 2FA) | "Không kết nối được đăng nhập FPT, thử lại sau ít phút" |
| Nhân viên booth quên PIN giữa ca, điểm mất mạng | Thiết bị giữ danh sách PIN đã băm của nhân viên điểm, cho đăng nhập offline ; cấp lại PIN cần mạng | "Gọi quản lý campaign để cấp lại PIN" |
| Tài khoản bị khoá khi đang thao tác | Thao tác kế tiếp bị từ chối, về màn đăng nhập; dữ liệu đang nhập không lưu | "Phiên đã kết thúc. Liên hệ quản trị" |
| Mất thiết bị 2FA | Quản trị hệ thống đặt lại 2FA sau khi xác minh qua kênh khác; ghi nhật ký | "Liên hệ quản trị để đặt lại xác thực 2 bước" |
| Nhập file booth có SĐT trùng / sai định dạng | Không tạo dòng lỗi; tạo phần hợp lệ khi người dùng xác nhận | Bảng dòng lỗi + lý do |
| Truy cập đối tượng ngoài phạm vi | Theo BR-TK-03; ghi nhật ký nếu lặp ≥ 20 lần/giờ | "Không tìm thấy" |
Tiêu chí nghiệm thu
AC-TK-01Cho mỗi ô trong ma trận quyền, khi gọi thao tác bằng tài khoản của vai trò tương ứng (qua giao diện và gọi thẳng server), thì kết quả khớp ô đó — 100% ô.
AC-TK-02Cho QL campaign phạm vi Vùng 2, khi mở link campaign Vùng 5, thì nhận "Không tìm thấy"; danh sách, báo cáo, file xuất không có dòng nào của Vùng 5.
AC-TK-03Cho tài khoản đang đăng nhập trên 2 trình duyệt, khi quản trị khoá tài khoản, thì trong 1 phút cả 2 phiên bị đăng xuất.
AC-TK-04Cho PIN đúng của nhân viên điểm Q1, khi nhập trên thiết bị ghép với điểm Q7, thì bị từ chối.
AC-TK-05Cho 5 lần nhập sai mật khẩu trong 15 phút, thì lần 6 bị khoá dù mật khẩu đúng, và chủ tài khoản nhận email.
AC-TK-06Cho QL campaign xuất lead, thì nhật ký có bản ghi gồm người, lúc, bộ lọc, số dòng; nếu không có cờ xuất dữ liệu thì nút xuất bị ẩn và gọi server bị từ chối.
AC-TK-07Cho người duyệt mở campaign do chính mình tạo, thì nút "Duyệt" không có.
AC-TK-08Cho chỉ còn 2 tài khoản Quản trị hệ thống hoạt động, khi khoá một trong hai, thì bị chặn.
AC-TK-09Cho bản ghi nhật ký bất kỳ, khi Quản trị hệ thống thử sửa hoặc xoá, thì không có chức năng và gọi server bị từ chối.
Câu hỏi mở
| # | Câu hỏi | Hỏi ai | Hạn | Trả lời |
| Q-TK-01 | Module "Tài khoản" trong mô tả gốc là tài khoản quản trị (trang này) hay tài khoản người chơi (đang ở Khách hàng)? Hay cả hai? | PM | | |
| Q-TK-02 | FTEL có SSO nội bộ nào cho ứng dụng mới (ADFS, Azure AD, khác)? Thủ tục đăng ký? | IT FTEL | | |
| Q-TK-03 | Nhân viên booth là nhân viên FTEL hay PG agency? Có SĐT riêng nhận PIN không? | FCM | | |
| Q-TK-04 | Cơ cấu vùng/chi nhánh lấy từ đâu, đồng bộ hay nhập tay? Campaign online toàn quốc có chia số cho vùng không? | FCM / IT FTEL | | |
| Q-TK-05 | Quản trị hệ thống có được duyệt campaign không (đội nhỏ)? | Trưởng FCM | | |
| Q-TK-06 | Thời gian lưu nhật ký thao tác theo quy định nội bộ FPT / kiểm toán? | Pháp chế / ATTT | | |
| Q-TK-07 | Một người có cần nhiều vai trò (vd. vừa QL campaign vừa QL kho quà ở chi nhánh nhỏ)? | FCM | | |
Lịch sử thay đổi
| Bản | Ngày | Người sửa | Nội dung |
| 0.1 | 2026-11-11 | PM | Nháp khởi tạo |