web-dev-qa-db-fra.com

Comment déconnecter tous les utilisateurs actifs?

Au lieu de mettre mon site en "mode maintenance", je voudrais le mettre en "mode lecture seule" complet. Il y a un module pour cela, cependant, cela empêche seulement "l'ajout et l'édition de nœuds". Je voudrais empêcher toute activité des utilisateurs, y compris la connexion et l'enregistrement, pour que le site soit servi à partir du cache (vernis). Comme avantage secondaire, j'utiliserais ce type de "mode lecture seule" si le site est inondé de demandes.

Ma question: comment déconnecter tous les utilisateurs actifs? La connexion et les enregistrements que je peux ensuite rediriger avec un crochet.

15
uwe

Autant que je sache, vous pouvez vider la table des sessions et tous les utilisateurs seront déconnectés. Il peut cependant y avoir un problème, selon les modules que vous avez installés. Par exemple, les modules qui implémentent hook_user_logout() ne verront jamais leurs actions déclenchées, ce qui pourrait être un problème. Assurez-vous qu'aucun de vos modules installés n'implémente ce hook.

13
F1234k

Vous pouvez vider la table des sessions à l'aide de drush

drush sqlq "TRUNCATE sessions"

ou si vous avez défini des préfixes pour les noms de table:

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

Vous pouvez forcer la déconnexion de tous les utilisateurs via un hook de mise à jour:

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

Utilisez Forcer la déconnexion du module ..

Caractéristiques

  • Formulaire de paramètres où vous pouvez activer et désactiver (Forcer la déconnexion).
  • Autorisation afin que vous puissiez exclure certains rôles utilisateur si vous souhaitez exclure l'administrateur par exemple.
0
Saud Alfadhli