2009-09-19 36 views
5

Tôi mới tham gia drupal. Đó là một câu hỏi rất ngu ngốc tôi đoán. Tôi đã bật mô-đun bộ lọc PHP để tôi có thể tạo một trang mới với mã PHP của riêng mình trong đó. Trang cụ thể này mà tôi muốn chỉ có thể truy cập được đối với người dùng được xác thực, không hiển thị với người dùng ẩn danh. Làm thế nào tôi có thể đạt được điều này? Tôi có thể đặt quyền cho các trang riêng lẻ trong drupal không? Hoặc là nó có thể xác định rằng một người dùng vô danh đang cố gắng truy cập vào trang hiện tại thông qua mã PHP?quyền truy cập trang cài đặt trong drupal

Trả lời

5

Vì bạn đã đề cập bạn là người mới đối với Drupal, nên thận trọng khi sử dụng bộ lọc PHP cho mã tùy chỉnh của bạn được coi là thực hành không tốt. Đó là một hack và nó là một vấn đề an ninh.

Tốt hơn bạn nên viết mô-đun tùy chỉnh và có thể triển khai các quyền tùy chỉnh của riêng mình, bạn có thể kiểm tra, v.v. Có một số sample module tốt đẹp mà bạn có thể kiểm tra để xem nó trông như thế nào. Rõ ràng, hãy kiểm tra sổ tay. Nó thực sự không khó như nó âm thanh.

Nhưng quay lại câu hỏi của bạn. Bạn có thể đặt dòng sau vào trang được lọc PHP của mình:

global $user; 

Điều này sẽ cho phép bạn truy cập vào đối tượng đại diện cho người dùng hiện tại. $user->roles là một mảng đại diện cho vai trò của người dùng. Bạn chỉ có thể kiểm tra xem nó có authenticated user (hoặc tốt hơn một chút - vai trò tùy chỉnh bạn tạo).

+0

Cảm ơn Eli :) Xin lỗi, tôi cảm ơn bạn khá muộn. Tôi đã chú ý cẩn thận của bạn khá nghiêm túc :) Đề xuất của bạn và mã của Jordi đã làm cho nó rất dễ dàng! Mặc dù tôi sớm thay thế nó bằng mô-đun "truy cập đơn giản". Nó thực sự đơn giản như nó nói và nó phù hợp với yêu cầu của tôi một cách hoàn hảo. Tôi sẽ sử dụng liên kết của bạn cho mô-đun mẫu để tạo mô-đun riêng trong tương lai. Một khởi đầu tốt của nó! – Nikhil

2

Để ngăn chặn người dùng vô danh truy cập vào một trang web mà bạn có thể sử dụng đoạn code sau:

<?php 
// we have to access the content of the global-scope variable $user 
global $user; 

//Checking if the user is registered 
if (in_array('authenticated user', $user->roles)==FALSE) { 
header('Location:/content/restrictedaccess') ; 
} 
?> 

// trang nội dung

- Thông tin thêm về cách tôi tạo ra trang web của tôi với Drupal ở đây: http://modeling-languages.com/content/how-i-created-site-drupal

4

Sau khi đọc câu trả lời ở trên, bạn cũng có thể xem xét mô-đun sẵn có simple access. Nó phù hợp với yêu cầu của tôi và nếu bạn đang tránh việc lọc PHP và không muốn tạo mô-đun của riêng bạn (vì bất kỳ lý do gì), bạn có thể kiểm tra simple access.

+0

Cảm ơn! Điều này đã giúp tôi. – BigJoe714

Các vấn đề liên quan