Цикл перенаправления при входе без прав администратора - PullRequest
2 голосов
/ 24 июня 2011

Я получаю цикл перенаправления при установке Drupal 7.Всякий раз, когда пользователь, не являющийся администратором, входит в систему, сайт запускает цикл перенаправления в URL профиля пользователя;например, http://example.com/?q=user/testuser.

Этот URL-адрес доступен без проблем для учетной записи суперпользователя, и попытка получить доступ к этому URL-адресу при выходе из системы возвращает 403 Доступ запрещен, как и ожидалось.

При входе в системукак пользователь без прав администратора, попытка получить доступ к любому URL вообще перенаправит на страницу профиля пользователя, которая затем будет перенаправлена ​​на себя, вызывая повторный запуск цикла перенаправления.

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

Я также обнаружил, что если я дам пользователямразрешение «администрировать пользователей» на то, что цикл перенаправления прекратится, но все равно будет перенаправлять пользователя на имя пользователя /% username при входе в систему.

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

Кто-нибудь знает, как это исправить или как получитьвокруг этого с переопределением, связанным с ролью пользователя?

Установленные модули: блок, цвет, комментарий, контекстные ссылки, панель мониторинга, ведение журнала базы данных, поле, хранилище SQL поля, пользовательский интерфейс поля, файл, фильтр, справка, изображение,Список, Меню, Узел, Номер, Опции, Наложение, Путь, RDF, Поиск, Ярлык, Система, Таксономия, Текст, Панель инструментов, Менеджер обновлений, Пользователь, Инструменты хаоса (7.x-1.0-alpha4), Менеджер страниц, Разработка,Разработчик тем, Fieldgroup, IMCE, Pathauto, Token, Меню таксономии, Мост API Wysiwyg IMCE, Wysiwyg, Webform и несколько пользовательских модулей, которые i) предоставляют блоки 2), предоставляют пользовательские страницы и 3) изменяют поведение поиска по умолчанию (разбивает результаты поиска потип узла).Ни один из моих пользовательских модулей никогда не взаимодействует с системой управления пользователями, системой разрешений и не использует какие-либо функции, предоставляемые пользовательским модулем.

Ответы [ 6 ]

3 голосов
/ 04 августа 2011

У меня была идентичная проблема ... подстегнутая тем, что я была не единственной, столкнувшейся с этой проблемой, я стала копаться немного больше. Это было ваше обновление, которое выдало его - Custom Theme.

Я уверен, что это может быть вызвано множеством различных факторов, но в моем случае, а возможно и в вашем, виноват был мой template.php.

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

Надеюсь, это поможет кому-то вернуться на правильный путь.

2 голосов
/ 24 июня 2011

У меня нет решения, но вы можете исследовать его следующим образом:1. Перейдите http://SITE/admin/config/development/devel для настройки модуля devel.2. Проверьте «Показать страницу перенаправления» и сохраните настройки.3. Перейдите http://SITE/admin/people/permissions
4. Установите флажок «Доступ к информации для разработчиков» для других и других ролей и сохраните.5. Попробуйте войти, он должен остановиться на страницах перенаправления и показать, куда он пытается перенаправить, чтобы вы могли определить, какие модули вызывают зацикливание.

1 голос
/ 24 апреля 2013

У меня была такая же проблема, потому что я загружал форму входа, даже когда пользователь вошел в систему. Исправьте ее, не запрашивая форму, только если пользователь является анонимным.

1 голос
/ 27 февраля 2012

Та же проблема для меня, после нескольких часов отладки и навигации по форуму / блогу, я наконец-то обнаружил, что происходит на моем сайте ...

Если вы принудительно заблокируете вход на всех страницах, даже если пользовательуже вошли в систему, только администратор может перемещаться по страницам.

Это одна из возможных причин, я надеюсь, кто-то может помочь!

1 голос
/ 06 сентября 2011

У меня также была проблема со случайными циклами перенаправления для пользователей без прав администратора.Просмотр /admin/reports/dblog выявил проблему с разрешениями для нескольких узлов.Я исправил это, сбросив разрешения узла (см. /admin/reports/status/rebuild).Теперь все снова хорошо.

0 голосов
/ 04 июня 2015

из https://www.drupal.org/node/1793230

Запустите эти запросы SQL в базе данных MySQL.Если у вас установлен drush, вы можете просто «drush sqlc» из каталога настроек, чтобы войти в командную строку MySQL.В противном случае вы можете использовать PHPMyAdmin, MySQL workbench или другой клиентский инструмент для подключения и запуска этих программ:

Показать записи, которые нужно удалить:

SELECT r.rid, r.language, r.source, r.redirect  FROM redirect r INNER JOIN url_alias u ON r.source = u.alias AND r.redirect = u.source AND r.language = u.language; 

Затем, чтобы удалить перенаправления, показанные в запросе выше- попробуйте перейти на страницы, показанные в строке.Скорее всего, вы получите петлю перенаправления.Затем попробуйте еще раз после резервного копирования БД и запуска удаления ниже.Вы должны отключить безопасный режим в MYSQL Workbench, чтобы запустить его, поэтому BACKUP:

DELETE r FROM redirect r INNER JOIN url_alias u ON r.source = u.alias AND r.redirect = u.source AND r.language = u.language;

Исправил мою проблему и нашел другие страницы с циклами, которые я даже не осознавал!

...