Come disconnettersi da tutti gli utenti attivi?


15

Invece di mettere il mio sito in "modalità manutenzione", vorrei metterlo in una "modalità sola lettura" completa. C'è un modulo per questo, tuttavia, impedisce solo "aggiungi e modifica nodo". Vorrei impedire a tutte le attività dell'utente, inclusi il login e la registrazione, di fare in modo che il sito venga servito dalla cache (varnish). Come vantaggio secondario utilizzerei questo tipo di "modalità di sola lettura" se il sito viene inondato di richieste.

La mia domanda: come posso disconnettermi da tutti gli utenti attivi? Il login e le registrazioni che posso quindi reindirizzare con un hook.

Risposte:


13

Per quanto ne so, è possibile svuotare la tabella delle sessioni e tutti gli utenti verranno disconnessi. Tuttavia, potrebbe esserci un problema, a seconda dei moduli installati. Ad esempio, i moduli implementati hook_user_logout()non verranno mai attivati, il che potrebbe costituire un problema. Verificare che nessuno dei moduli installati stia implementando questo hook.


4
Come diceva @ F1234k, l'eliminazione della tabella delle sessioni non farà mai innescare hook_user_logout (). Ma potresti attivarlo da solo. Seleziona tutti gli uid dalla tabella delle sessioni ed esegui `module_invoke_all ('user_logout', $ user);` per ognuno di essi. Puoi comunque filtrare per quelli che hanno aperto la sessione per più di 1 ora (le sessioni in Drupal possono rimanere abilitate senza limiti).
Alexandru Savin,

Grazie. Dovrò attivare gli hook di logout, altrimenti riceverò un WSOD per gli utenti che hanno effettuato l'accesso con il modulo "accesso persistente".
Uwe

13

Puoi svuotare la tabella delle sessioni usando drush

drush sqlq "TRUNCATE sessions"

o se hai impostato prefissi per i nomi delle tabelle:

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

0

È possibile forzare il logout di tutti gli utenti tramite un hook di aggiornamento:

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

0

Usa il modulo di logout forzato .

Caratteristiche

  • Modulo Impostazioni in cui è possibile abilitare e disabilitare (Forza disconnessione).
  • Autorizzazione in modo da poter escludere alcuni ruoli utente se si desidera escludere l'amministratore, ad esempio.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.