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.