HandyCafe Docs
owner

Vai trò và Quyền Thu ngân

HandyCafe sử dụng kiểm soát truy cập theo vai trò (RBAC) để quản lý những gì mỗi nhân viên có thể xem và thực hiện trong hệ thống. Mỗi thu ngân được gán một vai trò và vai trò đó xác định chính xác quyền hạn của họ trong toàn bộ ứng dụng.


Loại Vai trò

HandyCafe cung cấp ba loại vai trò:

Quản trị viên

Vai trò Quản trị viên cấp quyền truy cập không giới hạn vào mọi tính năng trong hệ thống. Quản trị viên có thể quản lý thu ngân, xem tất cả báo cáo, thay đổi cài đặt và thực hiện bất kỳ thao tác nào. Vai trò này dành cho chủ quán và quản lý cấp cao cần toàn quyền kiểm soát.

Luôn có ít nhất một tài khoản Quản trị viên trong hệ thống. Vai trò Quản trị viên không thể bị xóa hoặc giảm quyền.

Mặc định

Vai trò Mặc định không có quyền đặc biệt nào. Thu ngân có vai trò Mặc định có thể đăng nhập và thực hiện các thao tác cơ bản nhưng không thể truy cập các khu vực hạn chế như quản lý hội viên, báo cáo hoặc cấu hình console. Sử dụng vai trò này làm điểm khởi đầu cho nhân viên mới chỉ cần xử lý công việc cơ bản.

Tùy chỉnh

Vai trò tùy chỉnh cho phép bạn xác định chính xác quyền hạn của thu ngân. Bạn chọn tên, đặt cấp độ, sau đó đánh dấu hoặc bỏ đánh dấu từng cờ quyền riêng lẻ trong sáu danh mục. Điều này cho phép kiểm soát chi tiết những gì mỗi nhân viên có thể truy cập.


Danh mục Quyền hạn

HandyCafe có 22 cờ quyền riêng lẻ được tổ chức thành 6 danh mục. Mỗi cờ kiểm soát một hành động hoặc chế độ xem cụ thể trong hệ thống.

1. Xác thực (1 cờ)

Cờ Mô tả
CLIENT_LOGIN Cho phép thu ngân đăng nhập PC khách (bắt đầu phiên thay mặt khách hàng)

Không có quyền này, thu ngân không thể bắt đầu hoặc quản lý phiên khách.

2. Hội viên (6 cờ)

Cờ Mô tả
VIEW Xem danh sách hội viên và chi tiết hội viên
ADD Tạo tài khoản hội viên mới
DELETE Xóa tài khoản hội viên khỏi hệ thống
UPDATE Chỉnh sửa thông tin hội viên hiện có (tên, số dư, v.v.)
DISPLAY_EMAIL Xem địa chỉ email hội viên trong danh sách
DISPLAY_GSM Xem số điện thoại hội viên trong danh sách

Thu ngân chỉ có VIEW có thể duyệt danh sách hội viên nhưng không thể tạo, chỉnh sửa hoặc xóa bất kỳ hội viên nào. Cờ DISPLAY_EMAIL và DISPLAY_GSM kiểm soát thông tin liên hệ nhạy cảm có hiển thị hay không. Hữu ích cho tuân thủ quyền riêng tư khi không phải nhân viên nào cũng nên xem dữ liệu cá nhân.

3. Console (4 cờ)

Cờ Mô tả
VIEW Xem trang console và thẻ trạng thái console
ADD Đăng ký máy chơi game mới trong hệ thống
DELETE Xóa console khỏi hệ thống
UPDATE Chỉnh sửa chi tiết console (tên, địa chỉ MAC, giá)

4. Nhật ký (4 cờ)

Cờ Mô tả
VIEW Truy cập trang nhật ký
DISPLAY_FULL Xem toàn bộ lịch sử nhật ký (tất cả ngày)
DISPLAY_TODAY Chỉ xem mục nhật ký hôm nay
DELETE Xóa mục nhật ký

Nếu thu ngân có VIEW và DISPLAY_TODAY nhưng không có DISPLAY_FULL, họ chỉ xem được mục nhật ký ngày hiện tại. Hữu ích cho trưởng ca cần giám sát hoạt động hiện tại mà không truy cập hồ sơ lịch sử.

5. Báo cáo (3 cờ)

Cờ Mô tả
PAGE_VIEW Truy cập trang báo cáo/báo cáo thu chi
DISPLAY_FULL Xem toàn bộ lịch sử báo cáo (tất cả ngày)
DISPLAY_TODAY Chỉ xem dữ liệu báo cáo hôm nay

Tương tự nhật ký, quyền báo cáo cho phép kiểm soát nhân viên xem được toàn bộ lịch sử tài chính hay chỉ số liệu ngày hiện tại. Thu ngân có PAGE_VIEW và DISPLAY_TODAY có thể xem giao dịch ca của mình nhưng không thể truy cập dữ liệu doanh thu lịch sử.

6. Phương thức Thanh toán (4 cờ)

Cờ Mô tả
MANAGE Truy cập khu vực quản lý phương thức thanh toán
ADD Tạo phương thức thanh toán mới (tiền mặt, thẻ, thanh toán di động, v.v.)
DELETE Xóa phương thức thanh toán khỏi hệ thống
UPDATE Chỉnh sửa chi tiết phương thức thanh toán hiện có

Tổng kết

Danh mục Cờ Tổng
Xác thực CLIENT_LOGIN 1
Hội viên VIEW, ADD, DELETE, UPDATE, DISPLAY_EMAIL, DISPLAY_GSM 6
Console VIEW, ADD, DELETE, UPDATE 4
Nhật ký VIEW, DISPLAY_FULL, DISPLAY_TODAY, DELETE 4
Báo cáo PAGE_VIEW, DISPLAY_FULL, DISPLAY_TODAY 3
Phương thức Thanh toán MANAGE, ADD, DELETE, UPDATE 4
Tổng cộng 22

Cách Quyền hạn Hoạt động

Mỗi danh mục quyền có một tập hợp các cờ quyền riêng lẻ. Mỗi cờ có thể bật hoặc tắt độc lập bằng ô chọn trong trình chỉnh sửa vai trò.

Giao diện cung cấp ô chọn cho mỗi quyền. Đơn giản chỉ cần đánh dấu hoặc bỏ đánh dấu quyền bạn muốn cấp hoặc thu hồi. Hệ thống xử lý lưu trữ tự động, bạn không cần tính toán thủ công.

Ví dụ: trong danh mục Hội viên, bạn có thể bật hoặc tắt độc lập: VIEW, ADD, DELETE, UPDATE, DISPLAY_EMAIL và DISPLAY_GSM. Thu ngân chỉ được đánh dấu VIEW và UPDATE có thể xem và chỉnh sửa hội viên nhưng không thể thêm hoặc xóa.


Tạo Tài khoản Thu ngân

  1. Đi đến Quản lý > Thu ngân trong ứng dụng máy chủ.
  2. Nhấp nút Thêm Thu ngân.
  3. Nhập tên đăng nhập cho thu ngân. Đây là tên họ sẽ dùng để đăng nhập.
  4. Đặt mật khẩu. Chọn mật khẩu mạnh. Tài khoản này có thể truy cập dữ liệu tài chính và thông tin khách hàng.
  5. Chọn vai trò từ danh sách thả xuống. Bạn có thể chọn Quản trị viên, Mặc định hoặc bất kỳ vai trò tùy chỉnh nào đã tạo.
  6. Nhấp Lưu để tạo tài khoản.

Thu ngân mới giờ có thể đăng nhập vào máy chủ HandyCafe bằng thông tin đăng nhập.


Tạo Vai trò Tùy chỉnh

  1. Đi đến Quản lý > Vai trò Thu ngân trong ứng dụng máy chủ.
  2. Nhấp nút Thêm Vai trò.
  3. Nhập tên vai trò (ví dụ: "Trưởng ca", "Thu ngân mới", "Nhân viên đêm").
  4. Đặt cấp độ vai trò. Cấp độ cao hơn chỉ ra quyền hạn lớn hơn. Dùng để sắp xếp hiển thị và phân cấp tổ chức.
  5. Đánh dấu hoặc bỏ đánh dấu các quyền riêng lẻ trong cả sáu danh mục. Mỗi ô chọn tương ứng với một trong 22 cài đặt quyền.
  6. Nhấp Lưu để tạo vai trò.

Sau khi tạo, bạn có thể gán vai trò này cho bất kỳ tài khoản thu ngân nào.


Kiểm tra Phía Máy chủ

Quyền hạn được thực thi ở phía máy chủ, không chỉ ẩn trong giao diện. Ngay cả khi ai đó bỏ qua giao diện khách hoặc thao tác mã frontend, máy chủ xác minh mọi yêu cầu so với quyền hạn vai trò của thu ngân trước khi thực thi.

Điều này có nghĩa:

  • Thu ngân không có MEMBER_DELETE không thể xóa hội viên, kể cả khi gửi yêu cầu API trực tiếp.
  • Thu ngân không có REPORT_DISPLAY_FULL không thể truy xuất dữ liệu báo cáo lịch sử, bất kể cách họ truy cập hệ thống.
  • Tất cả kiểm tra quyền diễn ra trong backend Rust trước khi thực hiện bất kỳ thao tác cơ sở dữ liệu nào.

Bảo mật: Giới hạn Tần suất

Để bảo vệ chống tấn công brute-force, HandyCafe thực thi giới hạn tần suất đăng nhập:

  • 5 lần đăng nhập thất bại trong cửa sổ 10 phút kích hoạt khóa tự động.
  • Thời gian khóa kéo dài 15 phút, trong đó mọi nỗ lực đăng nhập cho tài khoản đó đều bị từ chối.
  • Sau khi hết thời gian khóa, thu ngân có thể thử lại.

Cơ chế này áp dụng cho cả màn hình đăng nhập máy chủ và đăng nhập thu ngân trên PC khách.


Quản lý Ca

Hoạt động của mỗi thu ngân được theo dõi riêng trong suốt ca:

  • Tất cả giao dịch (thanh toán phiên, thanh toán đơn hàng, v.v.) được ghi nhận kèm danh tính thu ngân.
  • Quỹ thu ngân theo dõi số dư đầu ca và cuối ca cho mỗi ca riêng biệt.
  • Báo cáo ca có thể được tạo theo từng thu ngân, cho thấy chính xác doanh thu họ đã xử lý.
  • Khi thu ngân đăng xuất, ca của họ được đóng và bản tổng kết khả dụng để xem lại.

Theo dõi theo từng thu ngân đảm bảo trách nhiệm giải trình và giúp dễ dàng phát hiện chênh lệch vào cuối mỗi ca.


Ví dụ Quyền hạn

Tình huống 1: Thu ngân Cơ bản Nhân viên mới chỉ cần bắt đầu/kết thúc phiên và nhận thanh toán. Gán vai trò tùy chỉnh chỉ bật CLIENT_LOGIN. Họ không thể xem hội viên, báo cáo, nhật ký hoặc console.

Tình huống 2: Trưởng ca Nhân viên tin cậy giám sát sàn. Gán vai trò có CLIENT_LOGIN, MEMBER_VIEW, MEMBER_UPDATE, CONSOLE_VIEW, REPORT_PAGE_VIEW và REPORT_DISPLAY_TODAY. Họ có thể quản lý phiên, xem (nhưng không xóa) hội viên, xem console và kiểm tra doanh thu hôm nay nhưng không thể truy cập báo cáo lịch sử đầy đủ hoặc thay đổi phương thức thanh toán.

Tình huống 3: Quản lý Đêm Quản lý xử lý ca đêm độc lập. Cấp hầu hết quyền trừ MEMBER_DELETE, LOG_DELETE và PAYMENT_METHOD_DELETE. Họ có thể quản lý mọi thứ trong ca nhưng không thể xóa vĩnh viễn dữ liệu quan trọng.

Tình huống 4: Nhân viên Hạn chế Quyền riêng tư Thu ngân không nên xem thông tin liên hệ khách hàng. Tạo vai trò có MEMBER_VIEW bật nhưng DISPLAY_EMAIL và DISPLAY_GSM tắt. Họ có thể tìm hội viên theo tên nhưng thông tin liên hệ cá nhân bị ẩn.