it-swarm-vi.com

Mô-đun lượt xem: Cách giới hạn quyền truy cập của người dùng

Tôi đang sử dụng mô-đun Lượt xem để tạo chế độ xem chỉ những người dùng cụ thể mới có thể truy cập. Tôi biết rằng Chế độ xem bao gồm kiểm soát truy cập theo vai trò hoặc quyền, nhưng tôi cần một cái gì đó chi tiết hơn: Về cơ bản, tôi muốn chỉ có thể nói người dùng "x" và người dùng "y" có thể truy cập vào một chế độ xem cụ thể (hoặc người nào khác có một vai trò quản trị trang web). Vì vậy, điều này sẽ hoạt động rất giống với cách mô-đun ACL hoạt động cho các nút riêng lẻ.

Là cách tiếp cận tốt nhất để tạo một plugin truy cập lượt xem tùy chỉnh? Tôi không có nhiều kinh nghiệm với điều này.

Ngoài ra, tôi tự hỏi về việc sử dụng một đối số với một số xác nhận để thực hiện điều này (để tôi không phải tạo ra hàng tá chế độ xem riêng biệt). Chẳng hạn, vì chế độ xem này sẽ là một tab trên đường dẫn nút cụ thể, tôi tự hỏi về việc thiết lập trường tham chiếu người dùng trên nút đó chỉ định ai có thể xem chế độ xem. Tôi chỉ cần một cách để chế độ xem chỉ xác thực nếu người dùng hiện tại bằng với người dùng được chỉ định trong trường tham chiếu người dùng.

Có ý kiến ​​gì không? Hay tôi đang làm điều này phức tạp hơn mức cần thiết?

Cảm ơn, Ben

8
BenK

Thay vì giới hạn quyền trên Chế độ xem, bạn có thể giới hạn quyền trên mục menu dẫn đến chế độ xem đó (có thể là tab trên nút hoặc gọi lại menu). Bạn có thể tạo chế độ xem của mình chỉ bằng màn hình "Mặc định" và không hiển thị Trang (vì vậy người dùng không thể tìm ra đường dẫn đến màn hình đó). Sau đó, trong page callback Cho mục menu, chỉ cần gọi views_embed_view để hiển thị chế độ xem. Có vẻ như việc xử lý các quyền trên một mục menu có thể dễ dàng hơn so với việc viết một trình cắm mới cho Chế độ xem (mặc dù một trình cắm có thể hữu ích cho người khác).

5
Chaulky

Hãy thử mô đun Lượt xem truy cập gọi lại .

Cung cấp kiểm soát truy cập dựa trên cuộc gọi lại cho Chế độ xem.

Các hàm gọi lại có sẵn được xác định bởi các mô-đun bằng cách sử dụng hàm hook_views_access_callbacks() (giống như trong hook_perm()), sau đó có thể được đặt trong cấu hình "Hạn chế truy cập" của chế độ xem.

6
user5318

Tôi phải thiếu một cái gì đó, nhưng có vẻ như bạn sẽ tạo ra một vai trò mới và thêm những Người dùng này. Sau đó, sử dụng tính năng Truy cập: Vai trò.

Nếu bạn cần buộc quyền Truy cập vào nội dung nào đó, tôi sẽ sử dụng quyền truy cập Lượt xem tùy chỉnh, lần đầu tiên tôi thấy đau khi thiết lập, nhưng đánh giá cao tính linh hoạt khi hoạt động. Nếu Chế độ xem đang tạo Mục menu, nó sẽ không xuất hiện nếu Chế độ xem không vượt qua chức năng truy cập.

Nếu bạn chỉ ẩn một mục menu, đối với tôi, chế độ xem vẫn sẽ chạy và Người dùng có thể tinh chỉnh URI để xem dữ liệu.

Jerry

2
Jerry

Làm thế nào về việc sử dụng mô-đun Quyền tùy chỉnh để tạo một số quyền mới cụ thể cho mục đích của bạn, sau đó sử dụng mô-đun Quyền người dùng để gán các quyền mới đó cho từng người dùng?

Các mô-đun quyền tùy chỉnh là rất nhẹ. Mặc dù vậy, tôi không chắc chắn về mô-đun quyền của Người dùng, vì về cơ bản, nó tạo ra một vai trò mới cho mỗi người dùng đằng sau hậu trường (những vai trò này không hiển thị trên trang quyền chính). Nếu bạn có nhiều người dùng, điều này có thể tăng kích thước vai trò của bạn và bảng user_roles một chút.

1
Tom Kirkpatrick

Nếu bạn muốn kết hợp các plugin truy cập khác nhau trong Chế độ xem, bạn có thể muốn xem qua nhiều lượt truy cập lượt xem .

0
Steven Jones

Phải, điều đó có ý nghĩa hơn. Tôi nghĩ bạn có thể (có thể, không chắc chắn 100%) sử dụng Chế độ xem và đối số. Đặt đối số thành id người dùng được lấy từ người dùng hiện đang đăng nhập và làm cho đối số mặc định không hiển thị. Điều đó sẽ có thể làm điều đó, mặc dù tôi không biết làm thế nào an toàn để công bằng. Nếu bạn thử, hãy đăng lại và cho tôi biết tiến trình của bạn.

0
Jamie Hollern