Что делать, если выбрасывает из админки на страницу авторизации? Решение проблемы.
Немного предыстории. Итак, дано:
Сайт на Prestashop 1.6, установлено ограничение доступа к админ-панели по ip-адресу, несколько пользователей.
Один из пользователей уезжает на длительный срок, соответственно нужно добавить его новый ip-адрес в список разрешенных. В процессе добавления выясняется, что интернет-провайдер дает динамические адреса. Ну и фиг бы с ним, добавляем разрешение по маске подсети (как это сделать рассказала тут)
Но… пользователь заходит в админку, а при попытке перехода по любой ссылке выкидывает на страницу авторизации. У всех остальных все работает, как часы.
Варианты решения:
- почистить кеш магазина
- почистить кеш браузера
- отключить режим экономии трафика (Chrome)
- поставить галочку “помнить меня” при заходе в админ-панель
- закомментировать или удалить этот код в файле /classes/controller/AdminController.php
if (isset(Context::getContext()->cookie->last_activity)) { if ($this->context->cookie->last_activity + 900 < time()) $this->context->employee->logout(); else $this->context->cookie->last_activity = time(); }
Все вышеперечисленные варианты в некоторых случаях помогают, но не в нашем. Попробовала все, а пользователя все равно выбрасывает. При этом у всех остальных все нормально. И с других устройств под этим пользователем все работает.
Но вы же помните, что ip-адрес динамический? 🙂
Проблема решена следующим образом.
Панель управления > Администрирование > Настройки
Проверять IP-адрес в cookies – ставим “Нет”
Prestashop из соображений безопасности хранит “свои” cookies для каждого ip-адреса. И при обновлении страницы проверяет адрес. Если он не тот – то идите лесом. Т.е. на страницу авторизации. А с динамическим ip он каждый раз новый…