Có cách nào để tránh người dùng ẩn danh có thể thấy một nút của một loại nội dung cụ thể không?


9

Có cách nào để tránh người dùng ẩn danh có thể thấy các nút thuộc loại nội dung, như khối hoặc dạng xem không?

Tôi có thể kiểm soát quyền truy cập bằng chế độ xem, nhưng nếu tôi biết liên kết cho một nút, tôi có thể thấy nó mà không cần đăng nhập trước.

Câu trả lời:


10

Bạn có thể kiểm soát quyền truy cập vào các nút trong hook hook_node_access ():

mymodule.module:

use Drupal\node\NodeInterface;
use Drupal\Core\Session\AccountInterface;
use Drupal\Core\Access\AccessResult;

function mymodule_node_access(NodeInterface $node, $op, AccountInterface $account) {
  if ($account->isAnonymous() && $node->gettype() == 'article') {
    return AccessResult::forbidden()->cachePerPermissions();
  }
  return AccessResult::neutral()->cachePerPermissions();
}

Điều này kiểm soát truy cập trực tiếp vào nút, không phải truy cập trong chế độ xem. Nhưng đây là những gì bạn có thể muốn.


Tôi tin rằng để kiểm soát quyền truy cập trong chế độ xem, bạn sẽ sử dụng hook_node_grant.
Jonathan

4

Đặt cược tốt nhất của bạn là sử dụng Rabbit Hole hoặc Truy cập nội dung khi nó được phát hành cập nhật.

Lỗ thỏ

Rabbit Hole là một mô-đun bổ sung khả năng kiểm soát những gì sẽ xảy ra khi một thực thể đang được xem tại trang của chính nó. Có lẽ bạn có một loại nội dung không bao giờ được hiển thị trên trang của chính nó, giống như một loại nội dung hình ảnh được hiển thị trong băng chuyền. Rabbit Hole có thể ngăn nút này truy cập được trên trang của chính nó, thông qua nút / xxx.

Truy cập nội dung

Mô-đun này cho phép bạn quản lý quyền cho các loại nội dung theo vai trò và tác giả. Nó cho phép bạn chỉ định chế độ xem tùy chỉnh, chỉnh sửa và xóa quyền cho từng loại nội dung. Tùy chọn bạn có thể bật cho mỗi cài đặt truy cập nội dung, do đó bạn có thể tùy chỉnh quyền truy cập cho từng nút nội dung.

Lưu ý rằng điều tôi tin rằng bạn muốn là chặn tất cả quyền truy cập vào một nút thuộc loại nội dung - và chỉ có Quyền truy cập nội dung mới thực hiện được điều đó qua Rabbit Hole.

Ngoài ra, tôi nghĩ rằng bạn đang xem xét việc thực hiện kiểm soát truy cập của riêng bạn nếu cả hai không phù hợp.


Xin lỗi để trả lời câu trả lời của bạn Kevin, nhưng bạn có quen thuộc với mô-đun Nhóm không? Hãy xem hướng dẫn bằng video để hiểu ý của tôi ... BTW: đối với D7, tôi cũng đã sử dụng để đề xuất "Truy cập nội dung".
Pierre.Vriens

2
Không phải vì nó là OG. Loại nặng để cài đặt trừ khi có nhu cầu theo nghĩa đó?
Kevin

" ... Vì đó là OG "? Ý bạn là như thế nào? Và về "nặng": bạn OG (nếu vậy tôi đồng ý) hay Group (nếu vậy tôi không đồng ý)?
Pierre.Vriens

Tôi luôn nghĩ rằng Group là một nhánh của OG cho D8
Kevin

Xin lỗi (một lần nữa) Kevin, đó không phải là trường hợp ... đọc thêm .
Pierre.Vriens

1

Có thể bạn muốn dùng thử mô-đun Nhóm , cho phép tạo các bộ sưu tập nội dung và người dùng tùy ý trên trang web của bạn và cấp quyền kiểm soát truy cập trên các bộ sưu tập đó. Nó có sẵn từ D7 và cũng có phiên bản D8. Nó tạo ra các nhóm như các thực thể, làm cho chúng hoàn toàn có thể thực hiện được, có thể mở rộng và có thể xuất khẩu. Mỗi nhóm có thể có người dùng, vai trò và quyền được đính kèm (tham khảo " Các vai trò khác nhau được mô-đun Nhóm hỗ trợ là gì? " Để biết thêm chi tiết về điều đó).

Đối với câu hỏi cụ thể này, bạn sẽ kích hoạt gnodemô hình con và với mỗi loại nhóm, bạn sẽ xác định các quyền phù hợp (xem, chỉnh sửa, xóa, v.v.) cho các Loại Nội dung khác nhau.

Có vẻ như bạn muốn cấp quyền truy cập vào cái gì trong Nhóm, được gọi là "Thành viên" và "Người ngoài cuộc" (= người dùng đã đăng nhập không phải là thành viên của nhóm). Nhưng bạn sẽ không cho phép truy cập vào "Ẩn danh" (khách truy cập trang web không đăng nhập nó).

Tài nguyên


1

Bạn có thể sử dụng mô-đun Node View Rights .

Kích hoạt nó và sau đó bạn có thể chỉ định vai trò nào có thể xem loại nội dung nào trong đường dẫn 'quản trị viên / người / quyền' trong phần 'Quyền xem chế độ nút'

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.