Как добавить форму входа на страницу «Отказано в доступе»?

7

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

Любые предложения / идеи?

jelly46
источник
1
Место Войти Блок на 404 странице обратного вызова и использовать этот модуль drupal.org/project/blocks404 или использовать этот модуль при использовании Drupal 7 drupal.org/project/navigation404
Rupesh
Это ошибка "страница не найдена", а не ошибка "отказано в доступе".
kiamlaluno

Ответы:

4

Другое решение здесь - модуль LoginToboggan . Он предоставляет ряд различных улучшений для входа в систему.

Модуль logintoboggan предлагает несколько модификаций системы входа в систему drupal во внешнем модуле, предлагая следующие функции и улучшения удобства использования:

  1. разрешить пользователям входить в систему, используя свое имя пользователя или адрес электронной почты.
  2. разрешить пользователям войти в систему немедленно.
  3. предоставить форму входа на страницах, на которых отказано в доступе для не вошедших (анонимных) пользователей.
  4. модуль предоставляет две опции блока входа в систему: один использует javascript для отображения формы внутри блока сразу после нажатия кнопки «войти». другой переносит пользователя на отдельную страницу, но возвращает пользователя к его исходной странице при входе в систему.
  5. настроить форму регистрации с двумя полями электронной почты для обеспечения точности.
  6. при желании перенаправить пользователя на определенную страницу при использовании функции «немедленного входа».
  7. При желании перенаправить пользователя на определенную страницу после проверки его адреса электронной почты.
  8. при желании отобразить сообщение пользователя, указывающее на успешный вход в систему.
  9. При желании можно объединить форму входа и регистрации на одной странице.
  10. по желанию, пользователи, не прошедшие проверку, будут очищены из системы через заданный интервал времени (пожалуйста, прочтите раздел caveats файла install.txt для получения важной информации о настройке этой функции!).
  11. интегрируется с модулем правил для выполнения различных задач, когда пользователь проверяет по электронной почте в процессе проверки (например, см. http://drupal.org/node/880904 )

Форма конфигурации параметров имеет опцию « Присутствовать при входе в систему при отказе в доступе» (403), которая включает / отключает эту функцию.

Шон Конн
источник
Модуль LoginToboggan работал как шарм, должен был включать страницу 403, но это было супер, спасибо.
jelly46
10

Вариант 1. Используйте модуль CustomError

Модуль CustomError позволяет администратору сайта создавать пользовательские страницы ошибок для кодов состояния HTTP 403 (доступ запрещен) и 404 (не найден) без необходимости создавать узлы для каждого из них. Еще несколько подробностей о его функциях (со страницы проекта):

  • Настраиваемый заголовок страницы и описания.
  • Нет заголовков автора и даты / времени, как с обычными узлами.
  • В текст страницы можно поместить любой текст в формате HTML.
  • Страницы с ошибками являются тематическими.
  • Пользователи, которые не вошли в систему и не пытаются получить доступ к области, требующей входа в систему, будут перенаправлены на страницу, к которой они пытались получить доступ после входа в систему.
  • Позволяет пользовательские перенаправления для 404 с.

Вы должны быть заинтересованы в части « Пользователи, которые не вошли в систему и пытаются получить доступ к области, требующей входа в систему, будут перенаправлены на страницу, к которой они пытались получить доступ после входа в систему ».

Вариант 2. Перенаправление на пользователя / логин с помощью модуля «Правила»

«Добавление настроек для страницы« Отказано в доступе »и отображение блока« Вход пользователя в систему »на этой странице» - действительно решение, которое должно работать. Тем не менее, вы можете сделать еще один шаг вперед и улучшить пользовательский опыт AbitMORE. С помощью варианта подхода, описанного в ответе на вопрос « Как перенаправить анонимных пользователей на страницу входа с помощью модуля « Правила »? ».

Для этого предположим, что путь к странице «Default 403» установлен как «no_access» (через /admin/config/system/site-informationнижнюю часть этой страницы администратора). Затем создайте правило с помощью модуля « Правила », используя в качестве события что-то вроде «После посещения узла no_access». Чтобы все правило выглядело примерно так:

  • События: после посещения узла no_access
  • условия:

    1. У пользователя есть роль (и) -Parameter: User: [site:current-user], Roles: anonymous user
    2. НЕ Сравнение текста -Parameter: Text: [site:current-page:url], Matching text: user/login
  • Действия: перенаправление страницы -Parameter: URL: user/login

Если вы захотите сделать это, вы можете даже добавить другое действие, чтобы также отображать некоторые (информационные) сообщения в области сообщений Drupal, например, «Вы пытались посетить страницу, для которой требуется вход в систему ...».

Правда, для этого может потребоваться включить дополнительный модуль ( Правила ). Но, как показывает его растущая популярность, этот модуль, вероятно, уже включен практически на любом сайте (аналогично модулю Views ), потому что для этого модуля существуют десятки вариантов использования. Только 1 вариант этого вопроса: как насчет улучшения пользовательского опыта для «Страница не найдена» подобным образом?

Вариант 3: Показать блок входа пользователя на выделенной странице

Другой вариант, в качестве альтернативы правилам «Действие» (для перенаправления user/login), заключается в создании некоторого назначенного узла, скажем, с путем, подобным «my_login_page_with_login_block». А затем объедините это с настройкой блока «Вход пользователя» (через admin/structure/block) следующим образом:

  • Отобразите этот блок в любой области темы по вашему выбору.
  • Используйте configureссылку «» справа от этого блока входа пользователя, чтобы установить « Настройки видимости » для « Страниц ». Т.е. измените параметр « Показать блок на определенных страницах » на « Только перечисленные страницы » и укажите путь ( my_login_page_with_login_block) в текстовом поле под ним. Если по какой-то причине вы не хотите использовать путь, просто укажите вместо него узел / nid (nid = id узла).
Pierre.Vriens
источник
Привет, Пьер, это большая помощь, я попробую это и дам тебе знать, как у меня дела. Спасибо
jelly46
1
Спасибо за отзыв ... Надеюсь, вы не забудете когда-нибудь "вернуться" со своим отзывом об этом (после того, как вы попробовали). Жаль, что нет такой вещи, как «напомнить мне позже» (чтобы вернуться к ней), например, реализованной с использованием чего-то вроде «Rules Scheduler» и / или «Flag» (как мы делали бы в Drupal, верно?). .. Примечание для себя: добавьте такую ​​функцию в дистрибутив "ArrayShift" ...
Pierre.Vriens
Ну, он расширил мои знания, но еще не ответил на вопрос, это большая помощь, но все еще не достиг земли обетованной.
jelly46
Модуль LoginToboggan работал как шарм
jelly46
1
Конечно, нет проблем, давайте рассмотрим гибкость и возможности Drupal, чтобы выбрать то, что подходит каждому индивидуально!
Pierre.Vriens
5

Вы можете добавить настройки для страницы «По умолчанию 403 (доступ запрещен)» в конфигурации сайта (admin / config / system / site-information). А затем отобразите блок «Вход пользователя» (admin / структура / блок / управление / пользователь / логин / настройка) на этой странице.

Эндрю
источник
3

Без модуля LoginToboggan можно настроить блок входа пользователя в систему, чтобы он отображался на назначенных страницах и был доступен только для анонимных пользователей. В блоке Настройки видимости для блока Вход пользователя:

  1. На вкладке «страницы» установите для параметра «Показать блок на определенных страницах» значение «Только перечисленные страницы» и введите страницы.

  2. На вкладке «Роли» установите флажок «Анонимный пользователь» для параметра «Показать блок» для настройки определенных ролей.

MikeSNP
источник
2

Теоретически вы можете установить страницу по умолчанию 403 (доступ запрещен) в разделе «Информация о сайте» для пользователя / входа в систему / admin / config / system / site-information.

Никогда не пробовал, но это просто идея?

Коннор Герни
источник
1
Плохая идея. Зарегистрированные пользователи, получившие отказ в доступе, попадают в бесконечный цикл перенаправления, который вызывает сбой браузера.
Джайлз Б