Ограничить доступ к странице для анонимных пользователей в Drupal - PullRequest
3 голосов
/ 24 февраля 2011

Очень простой вопрос, с которым я застрял.

Я делаю очень простой сайт объявлений;у меня есть тип контента «классифицировано», я хотел бы предоставить доступ к этому типу контента только зарегистрированным пользователям;я отредактировал разрешения так, что только «аутентифицированные» пользователи могут «создавать классифицированные», а также создал ссылку меню на «узел / добавить / классифицированный».

Проблема в том, что когда анонимно, я не вижу 'создать классифицированную ссылку меню (верно, потому что пользователь не имеет права «создавать»), но я все еще хочу, чтобы этот пункт меню появился, и я перенаправляю на свою пользовательскую страницу 403, которая говорит «эй, вы должнысначала создайте учетную запись, прежде чем публиковать объявление ".

. Какой самый лучший и элегантный способ добиться этого?

Ответы [ 3 ]

2 голосов
/ 24 февраля 2011

Мое решение было бы создать новую страницу (через hook_menu), скажем, «классифицировано / добавить». На этой странице проверьте идентификатор пользователя = 0, а затем отобразите свое дружеское сообщение о присоединении к сайту.

Если они не равны 0, тогда добавьте / верните node_add('classified'). (Обратите внимание, что node_add находится в файле node.pages.inc, поэтому вы можете включить его при необходимости.)

1 голос
/ 24 февраля 2011

Я фактически сделал то же самое для системы классифицированных объявлений.Создание абсолютных URL как пунктов меню работает для меня и довольно просто.

Например, вместо того, чтобы указывать путь к пункту меню «узел / добавить / классифицированный», установите путь к «http://example.com/node/add/classified'.». Когда вы щелкаете по пункту меню, когда вышли из системы (как анонимный), Drupal попытаетсяперейдите на страницу создания секретной страницы, но не пройдете проверку разрешений и перенаправите на свою страницу 403.

1 голос
/ 24 февраля 2011

Попробуйте создать новый пункт меню вручную (Администратор> Создание сайта> Меню> Имя меню > Добавить элемент), чтобы указать на узел / добавить / классифицированный URL.

Обновление: вы можете попробовать связать с / node / 403 ? Destination = node / add / classic (где node / 403 - ваша пользовательская страница ошибки 403).

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