настройка прав доступа к странице в drupal - PullRequest
5 голосов
/ 19 сентября 2009

Я новичок в друпале. Думаю, это очень тупой вопрос. Я включил модуль фильтра PHP, чтобы я мог создать новую страницу со своим собственным кодом PHP. Эта конкретная страница, которую я хочу быть доступной только для аутентифицированных пользователей, не видна анонимным пользователям. Как мне этого добиться? Могу ли я установить разрешения для отдельных страниц в drupal? Или можно определить, что анонимный пользователь пытается получить доступ к текущей странице через код PHP?

Ответы [ 3 ]

5 голосов
/ 19 сентября 2009

Поскольку вы упомянули, что вы новичок в Drupal, предостережение - использование фильтра PHP для вашего пользовательского кода считается плохой практикой. Это взлом, и это проблема безопасности.

Гораздо лучше написать свой пользовательский модуль, и он может реализовывать свои собственные пользовательские разрешения, которые вы можете проверить и т. Д. это должно выглядеть. Очевидно, проверьте руководство также. Это действительно не так сложно, как кажется.

Но вернемся к вашему вопросу. Вы можете поместить следующую строку на страницу с фильтром PHP:

global $user;

Это даст вам доступ к объекту, который представляет текущего пользователя. $user->roles - это массив, представляющий роли пользователя. Вы можете просто проверить, имеет ли он authenticated user (или чуть лучше - пользовательскую роль, которую вы создаете).

4 голосов
/ 14 октября 2009

Прочитав приведенные выше ответы, вы также можете рассмотреть легкодоступный модуль простого доступа . Это отвечало моим требованиям, и если вы хотите избежать фильтрации PHP и не хотите создавать свой собственный модуль (по каким-либо причинам), вы можете проверить простой доступ .

2 голосов
/ 20 сентября 2009

Для предотвращения доступа анонимных пользователей к странице вы можете использовать следующий php-код:

<?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') ;
}
?>

// Содержание страницы

- Подробнее о том, как я создал свой сайт с помощью Drupal, можно узнать здесь: http://modeling -languages.com / content / how-i-создал-site-drupal

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...