Tutorial 2x Làm chủ phân quyền "Node Permissions" của XenForo 2.3

PVS

Super Moderator
Thành viên BQT
Làm chủ phân quyền "Node Permissions" của XenForo 2.3

Bạn đã biết cách thiết lập quyền cho một nhóm thành viên (ví dụ: nhóm VIP được phép sử dụng chữ ký). Nhưng sẽ ra sao nếu bạn muốn tạo ra một chuyên mục "Thông báo" nơi tất cả mọi người có thể đọc, nhưng chỉ có Ban Quản trị mới có thể đăng bài? Hoặc một chuyên mục VIP nơi họ có các quyền đặc biệt mà không nơi nào khác có?

node-permissions.png

Câu trả lời nằm ở Node Permissions (Quyền hạn theo Node). Đây là một lớp phân quyền thứ hai, cho phép bạn ghi đè (override) các quyền hạn mặc định của nhóm thành viên tại một node cụ thể (chuyên mục, category...). Bài viết này sẽ dùng một ví dụ thực tế để chỉ cho bạn cách kết hợp hai lớp phân quyền này.

Quy tắc vàng: Quyền hạn được tính toán như thế nào?​


Để hiểu rõ, hãy nhớ quy trình hai bước của XenForo:
  1. Bước 1 (Nền tảng): Hệ thống sẽ xem xét tất cả các quyền từ các nhóm mà người dùng đó thuộc về (User Group Permissions).
  2. Bước 2 (Ghi đè): Sau đó, hệ thống sẽ kiểm tra quyền được thiết lập riêng cho Node mà người dùng đang truy cập (Node Permissions). Nếu có một quyền được thiết lập ở đây, nó sẽ ghi đè lên kết quả của Bước 1.
Ví von: Hãy coi "User Group Permissions" như là Nội quy chung của công ty (ví dụ: "Tất cả nhân viên được phép vào tòa nhà"). Còn "Node Permissions" là Tấm biển treo trên một cánh cửa cụ thể (ví dụ: "Phòng Server: Chỉ dành cho IT"). Tấm biển trên cửa luôn được ưu tiên.

Ví dụ thực tế: Tạo chuyên mục "Thông báo"​


Mục tiêu: Tạo một chuyên mục "Thông báo" nơi mọi người có thể đọc và trả lời, nhưng chỉ có nhóm "Moderating" và "Administrative" mới có thể tạo chủ đề mới.

Bước 1: Kiểm tra quyền hạn chung (User Group Level)​

Đầu tiên, hãy đảm bảo rằng các thành viên thông thường ("Registered") có quyền đăng bài ở mức độ toàn cục.
  1. Vào AdminCP > Groups & permissions > User group permissions.
  2. Chọn nhóm Registered.
  3. Tìm quyền Post new thread và chắc chắn rằng nó đang được đặt là Yes (Allow). Đây là "Nội quy chung".

Bước 2: Tạo chuyên mục và áp dụng ghi đè (Node Level)​

Đây là bước thực hiện "phép màu".
  1. Vào AdminCP > Forums > Nodes và tạo một chuyên mục mới tên là "Thông báo".
  2. Sau khi tạo xong, hãy sửa chuyên mục đó. Ở cột bên trái, nhấp vào mục Permissions.
  3. Bạn sẽ thấy một danh sách tất cả các nhóm thành viên. Tìm đến nhóm Registered.
  4. Tìm quyền Post new thread. Mặc định, nó đang ở trạng thái "Inherit" (Kế thừa). Hãy nhấp vào nó và thay đổi thành No (Revoke).
  5. Lưu lại.
Kết quả: Bạn vừa treo một "tấm biển" lên cửa chuyên mục "Thông báo" với nội dung: "Thành viên Registered bị cấm tạo chủ đề mới tại đây". Vì chúng ta không thay đổi quyền của nhóm "Moderating" và "Administrative", họ vẫn sẽ kế thừa quyền "Yes" từ nhóm của mình và có thể tạo chủ đề.

Bước 3: Kiểm tra!​

Hãy dùng một tài khoản thành viên thường để truy cập vào chuyên mục "Thông báo". Bạn sẽ thấy nút "Post thread..." đã biến mất. Sau đó, dùng tài khoản admin/mod để vào lại và bạn sẽ thấy nút đó vẫn còn.

Hiểu về 3 trạng thái quyền hạn​


Khi thiết lập quyền, bạn sẽ thấy 3 lựa chọn:
  • Allow (Yes): Cho phép.
  • Revoke (No): Cấm. Đây là quyền mạnh nhất, nó sẽ ghi đè lên bất kỳ quyền "Allow" nào.
  • Inherit (Kế thừa): Mặc định. Nó sẽ sử dụng quyền đã được tính toán ở cấp độ nhóm.

Kết luận

Hệ thống phân quyền hai lớp của XenForo cực kỳ mạnh mẽ. Bằng cách thiết lập các quyền hạn chung tại "User Group Permissions" và sau đó tinh chỉnh các ngoại lệ cho từng khu vực cụ thể bằng "Node Permissions", bạn có thể tạo ra bất kỳ kịch bản phân quyền phức tạp nào bạn muốn.

Chúc các bạn thành công.


VNXF.VN​
 
Back
Top