Як вийти з усіх активних користувачів?


15

Замість того, щоб переводити свій сайт в "режим обслуговування", я хотів би перевести його в повний "режим лише для читання". Для цього є модуль , однак він лише запобігає "додавання та редагування вузла". Я хотів би запобігти всій діяльності користувачів, включаючи вхід та реєстрацію, щоб сервіс в основному обслуговувався з кешу (лаку). Як побічну вигоду, я би використовував цей тип "режиму лише для читання", якщо сайт заповнений запитами.

Моє запитання: як я можу вийти з усіх активних користувачів? Потім логін та реєстрації я можу переадресувати за допомогою гачка.

Відповіді:


13

Наскільки я знаю, ви можете спорожнити таблицю сеансів, і всі користувачі вийдуть із системи. Однак може виникнути проблема, залежно від встановлених модулів. Наприклад, модулі, які реалізують hook_user_logout(), ніколи не будуть звільняти свої дії, що може стати проблемою. Переконайтеся, що жоден із встановлених модулів не реалізує цей гачок.


4
Як сказав @ F1234k, видалення таблиці сеансу ніколи не призведе до запуску_загалу_все_виключення (). Але, ви можете просто викликати це самотужки. Виберіть усі uid з таблиці сеансів і виконайте `module_invoke_all ('user_logout', $ user);` для кожного з них. Ви можете хоч відфільтрувати ті, у кого їх сеанс відкритий більше 1 години (сеанси в Drupal можуть залишатися безмежними).
Олександру Савін

Спасибі. Мені потрібно запустити гачки виходу, інакше я отримаю WSOD для користувачів, які ввійшли в систему за допомогою модуля "стійкого входу".
uwe

13

Ви можете спорожнити таблицю сеансів за допомогою друку

drush sqlq "TRUNCATE sessions"

або якщо ви встановили префікси для імен таблиць:

drush sqlq --db-prefix "TRUNCATE {sessions}"

0

Ви можете змусити виходити з системи всіх користувачів за допомогою гачка оновлення:

/**
 * Force to logout all the users.
 */
function mymodule_update_7001() {
  db_truncate('sessions')->execute();
}

0

Використовувати модуль примусового виходу ..

Особливості

  • Форма налаштувань, де можна вмикати та вимикати (примусовий вихід).
  • Дозвіл, тому ви можете виключити деякі ролі користувача, якщо, наприклад, хочете виключити адміністратора.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.