Phải làm sao khi website WordPress của bạn có một số nội dung quan trọng, nhạy cảm hoặc yêu cầu trả phí, và bạn muốn giới hạn chỉ một số người dùng với vai trò nhất định được xem chúng? Quá đơn giản! Hãy dùng một plugin member để phân quyền người xem nội dung trên website WordPress, như Restrict User Access chẳng hạn.
Trong bài viết này, mình sẽ hướng dẫn các bạn các thực hiện điều đó theo từng bước đơn giản và dễ hiểu. Nhưng trước tiên, hãy cùng tìm hiểu về ứng dụng của việc phân quyền xem nội dung đã nhé!
Ứng dụng của việc phân quyền xem nội dung
Việc giới hạn quyền xem nội dung đối với các nhóm người dùng nhất định có thể được ứng dụng cho các mục đích sau:
- Website đọc truyện online: chỉ cho phép thành viên VIP đọc các truyện được mua bản quyền, truyện hot, …
- Website của trường học: chỉ cho phép các tài khoản của giáo viên được truy cập vào các tài liệu như giáo án, đồ án.
- Website của công ty: chỉ cho phép tài khoản của nhân sự cấp cao được truy cập các tài liệu mật, báo cáo nội bộ.
- Một tỷ ứng dụng khác, tùy vào óc sáng tạo của bạn.
Để các bạn dễ hình dung, mình sẽ lấy ví dụ cụ thể về việc phân quyền xem nội dung cho một website của công ty, cách làm cụ thể như sau:
Cách phân quyền xem nội dung trên website WordPress
Trong bài viết này, mình sẽ phân loại tất cả người dùng trên website thành hai cấp độ là Manager (quản lý) và Staff (nhân viên). Nhân viên chỉ được xem các bài viết thông thường, còn quản lý có thể xem cả các bài viết ở chế độ Private (riêng tư).
Để làm như vậy thì mình chọn dùng một plugin là Restrict User Access.
Plugin Restrict User Access giúp bạn phân quyền người dùng theo các cấp độ (level) khác nhau. Tùy vào cấp độ cao hay thấp mà người dùng sẽ được phép sử dụng một số tính năng hoặc truy cập vào một số bài đăng với độ quan trọng / bí mật tăng dần.
Plugin Restrict User Access miễn phí và có sẵn trên wordpress.org, bạn chỉ cần cài đặt và kích hoạt plugin như bình thường:
Sau khi cài đặt xong, một mục mới là User Access sẽ xuất hiện trên sidebar trong back end của website:
Bây giờ, bạn hãy làm theo các bước sau để phân quyền xem nội dung trên website WordPress:
Bước 1: Tạo và phân quyền cho các cấp độ truy cập (level)
Đầu tiên, hãy thêm các cấp độ truy cập mới bằng cách vào User Access > Access Levels > Add New:
Giao diện tạo cấp độ mới gồm 4 tab cho phép bạn:
- Access Conditions: tạo các điều kiện truy cập.
- Members: chỉ định cấp độ cho người dùng trên website.
- Capabilities: phân quyền cho cấp độ.
- Options: thiết lập một vài tùy chọn khác như thời hạn được cấp quyền, ẩn thanh admin, …
Lúc này, việc bạn cần làm là đặt tên cho cấp độ mới, sau đó chuyển qua tab Capabilities để thêm các quyền hạn cho cấp độ này:
Như các bạn có thể thấy trên ảnh, cột Capability bao gồm các quyền hạn có thể được cấp cho level đang chọn (Manager). Bạn muốn cấp quyền nào cho Manager thì chỉ cần click vào ô tương ứng trong cột Permit, ngược lại thì click vào ô trong cột Deny.
Trong bài viết này, mình chỉ tập trung vào quyền xem các bài viết hoặc trang. Do đó, mình để Deny hết và chỉ chọn Permit cho các quyền hạn là:
- read: xem các bài viết, trang thông thường.
- read_private_posts: xem các bài viết (post) ở chế độ Private.
- read_private_pages: xem các trang (page) ở chế độ Private.
Tiếp theo, đừng quên ấn Create để tạo cấp độ.
Vậy là xong cấp độ đầu tiên Manager. Đối với cấp độ Staff, mình cũng làm tương tự, nhưng trong phần Capabilities, mình sẽ chỉ cấp quyền read:
Đây là hai cấp độ Manager và Staff mà mình vừa tạo:
Tuy nhiên, các cấp độ này chưa được phân cho người dùng nào. Để làm điều đó, hãy chuyển sang bước 2.
Bước 2: Phân cấp độ cho người dùng
Có hai cách để phân cấp độ cho người dùng, đó là:
- Cách 1: Chọn thủ công từng người dùng
- Cách 2: Đồng bộ với các vai trò người dùng (user role)
Dưới đây là hướng dẫn cụ thể cho từng cách:
Cách 1: Chọn thủ công từng người dùng
Cách 1 này sẽ phù hợp cho các website nội bộ công ty với ít thành viên (<20 người) bởi việc chọn thủ công cho nhiều người sẽ rất tốn thời gian.
Đầu tiên, vào User Access > Access Levels và chọn cấp độ mà bạn muốn phân cho người dùng:
Tiếp theo, chuyển sang tab Members, trong ô Search for Users, hãy điền tên từng người dùng mà bạn muốn rồi ấn Save để lưu lại là xong.
Cách 2: Đồng bộ với các nhóm người dùng (user role)
Cách 2 này sẽ nhanh hơn rất nhiều vì bạn tận dụng được các nhóm người dùng (user role) có sẵn có trên website WordPress. Tuy nhiên, hãy chắc chắn rằng các quản lý và nhân viên đã được phân vào đúng các nhóm người dùng mà bạn mong muốn.
Xem thêm cách tùy chỉnh các nhóm người dùng.
Quay lại vấn đề chính, để đồng bộ với các nhóm người dùng, bạn cũng chọn cấp độ mong muốn rồi vào tab Members.
Trong phần Synchronized Role, hãy chọn vai trò mà bạn muốn đồng bộ. Ở đây, mình đã tạo sẵn hai vai trò là Manager Users và Staff Users, vậy nên mình chỉ cần đồng bộ hóa với các cấp độ tương ứng là xong.
Ok, giờ mình sẽ kiểm tra thử xem chúng ta đã làm đúng chưa nhé! Hiện tại website của mình có ba bài viết ở chế độ Private và một số bài viết thường như sau:
Đầu tiên, mình đăng nhập vào bằng một tài khoản Staff. Như các bạn có thể thấy, mình không thể xem các bài viết ở chế độ Private, chúng thậm chí còn không hiển thị ra:
Tiếp theo, mình đăng nhập vào một tài khoản Manager. Và tada, mình đã có thể xem các bài viết ở chế độ Private rồi:
Plugin Restrict User Access còn có một tính năng khá hay là tạo điều kiện truy cập (access condition). Với tính năng này, bạn có thể thiết lập để người dùng trong một cấp độ chỉ được xem một số bài viết mà bạn chỉ định.
Cách tạo điều kiện truy cập
Đầu tiên, hãy chọn cấp độ mà bạn muốn tạo điều kiện truy cập, ví dụ như Staff chẳng hạn:
Tiếp theo, vào tab Access Conditions và chọn New condition group để thêm một nhóm điều kiện mới:
Lúc này, bạn sẽ thấy rất nhiều kiểu điều kiện khác nhau. Tuy nhiên, vì chúng ta chỉ tập trung vào quyền xem các bài viết nên hãy chọn Posts / Blog:
Tiếp theo, hãy click vào ô bên cạnh mục Posts / Blog và chọn các bài đăng mà bạn cho phép người dùng được xem. Ví dụ mình chọn hai bài viết sau:
Cuối cùng, đừng quên ấn Save để lưu lại các thay đổi.
Như vậy, người dùng với cấp độ là Staff sẽ chỉ xem được các nội dung mà mình đã chỉ định như ở trên. Đối với các bài viết khác, tuy họ vẫn thấy tiêu đề và featured image trong danh sách bài viết trên trang archive nhưng sẽ không thể xem được nội nội dung bên trong.
Lời cuối
Việc phân quyền xem nội dung trên website WordPress là vô cùng quan trọng đối với các website có những bài viết nhạy cảm, quan trọng hoặc cần phải trả phí. Bạn nên tận dụng kỹ thuật này để tăng tính an toàn và bảo mật cho nội dung trên trang web của mình.
Bạn có biết ứng dụng nào khác của việc phân quyền xem nội dung trên website WordPress không, hãy chia sẻ cho chúng mình biết ở phần bình luận nhé!
See ya!