Người dùng & Phân quyền
XBuddy kiểm soát truy cập bằng mô hình dựa trên vai trò (role-based). Bạn không bao giờ cấp quyền trực tiếp cho người dùng — thay vào đó bạn xây dựng vai trò chứa quyền, và gán vai trò cho người dùng. Cách này giữ truy cập nhất quán và có thể kiểm toán: sửa một vai trò là mọi người giữ nó đều cập nhật.
Mỗi yêu cầu của người dùng được kiểm tra qua bốn câu hỏi độc lập. Yêu cầu chỉ được phép khi vượt qua tất cả:
| # | Câu hỏi | Trả lời bởi |
|---|---|---|
| 1 | Người dùng này là ai? | Tài khoản người dùng — danh tính, loại tài khoản, đang hoạt động hay không |
| 2 | Họ được làm gì? | Vai trò và các quyền resource:action |
| 3 | Trên bản ghi nào? | Phạm vi dữ liệu theo tài nguyên (none / own / team / all) |
| 4 | Trong app nào? | Các pack đã mua, cộng với danh sách app cho phép theo từng người |
Các câu hỏi được AND với nhau: mua pack CRM không tự cấp quyền sửa lead cho ai cả, và có quyền đọc deal với phạm vi own thì vẫn chỉ thấy deal mình sở hữu. Máy chủ thực thi mọi tầng — giao diện chỉ ẩn cho tiện lợi.
Cấu hình từng tầng
Cấu hình ở đâu
- Cài đặt → Người dùng (
/settings/users) — mời và quản lý tài khoản, gán vai trò, đặt loại tài khoản và truy cập app. - Cài đặt → Vai trò (
/settings/roles) — tạo vai trò, cấp quyền và đặt phạm vi dữ liệu theo tài nguyên.
Xác minh truy cập
Dùng chức năng Kiểm toán quyền (Permission Audit) để kiểm tra chính xác một người dùng làm được gì. Luôn xác nhận vai trò mới bằng cách đăng nhập bằng một người dùng thử chỉ có vai trò đó trước khi triển khai rộng.
Thứ tự kiểm tra khi có sự cố truy cập
Khi một người dùng báo “không thấy trang X” hoặc “không bấm được nút Y”, hãy kiểm tra theo đúng thứ tự bốn câu hỏi ở trên — vì lỗi thường nằm ở tầng đầu tiên chưa vượt qua, không phải tầng cuối:
- Module trước. Tenant có đăng ký gói chứa app đó không? (Cài đặt → Đăng ký)
- Rồi tới app-access. Nếu tenant có module, người dùng này có bị giới hạn bởi allowlist app không? (trang chi tiết người dùng)
- Rồi tới quyền. Vai trò của họ có năng lực
resource:actioncần thiết không? (Cài đặt → Vai trò → ma trận quyền) - Cuối cùng là phạm vi dữ liệu. Họ có quyền nhưng bản ghi cụ thể đó nằm ngoài phạm vi
own/teamcủa họ không? (tab Phạm vi dữ liệu của vai trò)
Nếu bạn không chắc lỗi ở tầng nào, đăng nhập thử bằng chính tài khoản của người dùng đó (hoặc dùng tính năng giả lập/impersonate nếu bạn là super-admin) — nhanh hơn nhiều so với suy luận từ xa.
Câu hỏi thường gặp
Tôi vừa gán vai trò mới nhưng người dùng vẫn chưa thấy thay đổi? Bộ nhớ đệm quyền làm mới trong vài phút với thay đổi thông thường. Với các thay đổi nhạy cảm (vô hiệu hóa người dùng, thu hồi vai trò, gỡ quyền), hệ thống làm mới ngay lập tức — không cần chờ.
Một người dùng giữ hai vai trò với phạm vi dữ liệu khác nhau trên cùng resource — bậc nào thắng?
Bậc rộng nhất thắng. Nếu vai trò A cho own và vai trò B cho team trên cùng resource deals, người dùng thấy theo team (rộng hơn).
Có thể cấp quyền trực tiếp cho một người dùng, không qua vai trò không? Không. XBuddy cố ý không hỗ trợ ghi đè quyền theo từng người — mọi năng lực phải đi qua vai trò để giữ truy cập nhất quán và dễ kiểm toán. Cần một tổ hợp quyền riêng cho một người? Tạo vai trò tùy chỉnh chỉ dành cho họ.