Jak wylogować wszystkich aktywnych użytkowników?


15

Zamiast przełączać moją stronę w „tryb konserwacji”, chciałbym umieścić ją w kompletnym „trybie tylko do odczytu”. Jest do tego moduł, który jednak zapobiega tylko „dodawaniu i edycji węzłów”. Chciałbym uniemożliwić wszelką aktywność użytkownika, w tym logowanie i rejestrację, aby strona była obsługiwana z pamięci podręcznej (lakieru). Jako dodatkową korzyść skorzystałbym z tego rodzaju trybu „tylko do odczytu”, jeśli strona zostanie zalana żądaniami.

Moje pytanie: jak mogę wylogować wszystkich aktywnych użytkowników? Login i rejestracje mogę następnie przekierować za pomocą haka.

Odpowiedzi:


13

O ile wiem, możesz opróżnić tabelę sesji i wszyscy użytkownicy zostaną wylogowani. Może występować problem, w zależności od zainstalowanych modułów. Na przykład zaimplementowane moduły hook_user_logout()nigdy nie zostaną uruchomione, co może być problemem. Sprawdź, czy żaden z zainstalowanych modułów nie implementuje tego haka.


4
Jak powiedział @ F1234k, usunięcie tabeli sesji nigdy nie spowoduje wyzwolenia hook_user_logout (). Ale możesz po prostu uruchomić to sam. Wybierz wszystkie identyfikatory użytkownika z tabeli sesji i następnie wykonaj `module_invoke_all ('user_logout', $ user);` dla każdego z nich. Możesz filtrować według tych, których sesja jest otwarta przez ponad 1 godzinę (sesje w Drupal mogą pozostać włączone bez ograniczeń).
— Alexandru Savin

dzięki. Będę musiał odpalić haki wylogowania, w przeciwnym razie otrzymam WSOD dla użytkowników zalogowanych za pomocą modułu „trwałe logowanie”.
— uwe

13

Możesz opróżnić tabelę sesji za pomocą drush

drush sqlq "TRUNCATE sessions"

lub jeśli ustawiłeś prefiksy dla nazw tabel:

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

0

Możesz wymusić wylogowanie wszystkich użytkowników za pomocą haka aktualizacji:

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

0

Użyj modułu Wymuś wylogowanie .

cechy

  • Formularz ustawień, w którym można włączać i wyłączać (wymuszanie wylogowania).
  • Pozwolenie, dzięki czemu możesz wykluczyć niektóre role użytkowników, jeśli chcesz na przykład wykluczyć administratora.
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.