Господа, нужно чтобы все пользователи сайта разлогинивались автоматически в определенное время.
Кто знает, какую команду давать крону? (Версия 1.10.4)
Подскажите, как?
#2
4 декабря 2014 в 16:45
Интересная задача, присоединяюсь к вопросу
#3
4 декабря 2014 в 17:01
Возможно как вариант прописать в задании метод logout() класса user.class
Сегодня в 14:30
#4
4 декабря 2014 в 19:03
Так сделать нельзя для всех разом. Только в автологине разлогинивать самостоятельно.
#5
4 декабря 2014 в 19:08
А разве нельзя циклом перебрать всех юзеров и каждого разлогинить? Только не соображу какую команду давать?
Только надо ID юзера сюда подставлять как-то
$inUser->logout();
#6
4 декабря 2014 в 23:58
Alexneva, нет, если у юзера есть кука автовхода, то разлогинить его можно только при его первом входе.
Разлогинить всех пользователей равнозначно удалению всех текущих сессий вашего сайта, что делается следующим образом:
К сожалению, механизм "вечной куки" в первой ветке InstantCMS таков, каков он есть и, избегая изменения кода непосредственно самой CMS, можно сделать следующее:
1. В обработчике, вызываемом по крону, после приведенной выше команды на удаление всех сессий, необходимо изменить текущий .htaccess
К примеру, просто переименовать его в .htaccess_orig, а другой (ваш) файл переименовать из .htaccess_new в .htaccess
2. В файле .htaccess_new должны быть строки, определяющие наличие "вечной куки" и отправляющие такого пользователя на файл, отличный от index.php К примеру, можно сделать так:
RewriteCond %{HTTP_COOKIE} ^userid=([0-9]*)$ [NC]
RewriteRule ^(.*)$ /no_cookie.php [L]
3. В файле no_cookie.php должна быть процедура удаления "вечной куки" и обратное переименование .htaccess в .htaccess_new и .htaccess_orig в .htaccess
4. PROFIT!
К сожалению, механизм "вечной куки" в первой ветке InstantCMS таков, каков он есть и, избегая изменения кода непосредственно самой CMS, можно сделать следующее:
1. В обработчике, вызываемом по крону, после приведенной выше команды на удаление всех сессий, необходимо изменить текущий .htaccess
К примеру, просто переименовать его в .htaccess_orig, а другой (ваш) файл переименовать из .htaccess_new в .htaccess
2. В файле .htaccess_new должны быть строки, определяющие наличие "вечной куки" и отправляющие такого пользователя на файл, отличный от index.php К примеру, можно сделать так:
RewriteCond %{HTTP_COOKIE} ^userid=([0-9]*)$ [NC]
RewriteRule ^(.*)$ /no_cookie.php [L]
3. В файле no_cookie.php должна быть процедура удаления "вечной куки" и обратное переименование .htaccess в .htaccess_new и .htaccess_orig в .htaccess
4. PROFIT!
#8
5 декабря 2014 в 13:17
stealthdebuger, благодарю за столь подробный ответ. Будем пробовать…