Giao diện
Hướng dẫn UI
Truy cập trang Roles & Permissions
- Đăng nhập bằng tài khoản có snippet
pm.acl.roles(thường admin hoặc root). - Mở Settings (biểu tượng gear).
- Chọn Users & Permissions → Roles & Permissions.
Giao diện tổng quan
Trang chia làm 2 phần chính:
| Vùng | Vị trí | Nội dung |
|---|---|---|
| Danh sách role | Cột trái | Liệt kê tất cả role, nút tạo role mới ở cuối danh sách |
| Tabs cấu hình | Phần phải | Gồm các tab: System, Desktop Menu, và các tab do plugin mở rộng |
| Role mode | Góc trên phải | Dropdown chọn chế độ role (Default / Union) |
Khi chọn một role bên trái, nội dung các tab bên phải cập nhật theo role đó.
Quản lý role
Tạo role mới
- Click "+ New" ở cuối danh sách role.
- Nhập tên role (ví dụ "Editor").
- Role mới có snippet mặc định
['!ui.*', '!pm', '!pm.*'](không truy cập config). - Click OK để lưu.
Sửa role
Chọn role từ danh sách bên trái → các tab cấu hình hiện ra bên phải.
Xóa role
Click biểu tượng xóa cạnh tên role. Không thể xóa root, admin, member (protected).
Đặt role mặc định
Chỉ một role có thể là default. Khi đặt role khác làm default, role cũ tự động bỏ flag.
Tab System - cấu hình snippet
Tab này cấu hình quyền hệ thống (snippet):
| Snippet | Ý nghĩa |
|---|---|
ui.* | Truy cập toàn bộ UI config (design mode) |
pm | Truy cập Plugin Manager |
pm.* | Truy cập tất cả plugin settings |
pm.acl.roles | Truy cập trang Roles & Permissions |
app | Quyền app-level |
Bên dưới có bảng Plugin Permissions - toggle quyền truy cập settings cho từng plugin.
Tab Permissions - cấu hình collection/action
Danh sách collection
Bảng hiển thị tất cả collection trong data source, với trạng thái:
| Cột | Ý nghĩa |
|---|---|
| Collection name | Tên collection |
| Using config | Strategy = dùng mặc định, Individual = cấu hình riêng |
Cấu hình action cho collection
Click vào collection → mở panel cấu hình. Mỗi action hiển thị một hàng gồm:
| Thành phần | Mô tả |
|---|---|
| Checkbox | Bật/tắt action (View, Create, Update, Destroy, Export...) |
| Scope | Dropdown chọn phạm vi dữ liệu: All (tất cả), Own (bản ghi của mình), hoặc custom scope |
| Fields | Dropdown chọn field được phép thao tác (chỉ hiện khi action hỗ trợ allowConfigureFields) |
Ví dụ: bật View với scope Own và chỉ chọn field title, status → user chỉ xem được bản ghi do mình tạo, và chỉ thấy 2 field đó.
Tạo custom scope
- Trong dropdown Scope, click "Create scope".
- Nhập tên scope (ví dụ "Cùng phòng ban").
- Cấu hình filter bằng Filter UI (kéo thả điều kiện).
- Lưu → scope xuất hiện trong dropdown cho collection này.
Tab Desktop Menu
Cấu hình menu nào role được phép truy cập. Toggle từng menu item.
Chế độ role (Role mode)
Dropdown Role mode ở góc trên phải:
| Mode | Ý nghĩa |
|---|---|
| Default | User dùng một role tại một thời điểm |
| Allow use union | User có thể chọn "Tất cả role" để merge quyền |
| Only use union | Luôn merge tất cả role |
Đổi role (user thường)
User thường (không phải admin) đổi role qua menu user → Switch role:
- Hiển thị danh sách role được gán.
- Nếu role mode cho phép, có thêm option "Tất cả role" (union).
- Chọn role → gọi
users:setDefaultRole→ reload trang.
Kết quả sau khi lưu
Thay đổi quyền có hiệu lực ngay lập tức trên server (hooks đồng bộ ACL). Tuy nhiên:
- Client có thể cache menu/permission - user cần refresh trang hoặc đăng nhập lại để thấy thay đổi.
- Multi-instance - đồng bộ qua message bus, có thể chậm vài giây.