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.

uwe
źródło

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.

F1234k
źródło
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}"
batigolix
źródło
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();
}
Milkovsky
źródło
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.
Saud Alfadhli
źródło