web-dev-qa-db-ja.com

すべてのアクティブユーザーをログアウトする方法

私のサイトを「メンテナンスモード」にする代わりに、完全な「読み取り専用モード」にしたいと思います。 module がありますが、「ノードの追加と編集」のみが防止されます。ログインと登録を含むすべてのユーザーアクティビティを禁止して、基本的に(ワニス)キャッシュからサイトを提供するようにします。副次的な利点として、サイトがリクエストであふれている場合は、このタイプの「読み取り専用モード」を使用します。

私の質問:すべてのアクティブユーザーをログアウトするにはどうすればよいですか?ログインと登録をフックでリダイレクトできます。

15
uwe

私の知る限り、セッションテーブルを空にすると、すべてのユーザーがログアウトされます。ただし、インストールしたモジュールによっては問題が発生する場合があります。たとえば、 hook_user_logout() を実装するモジュールは、アクションが発生することはなく、これは問題になる可能性があります。インストールされているモジュールがこのフックを実装していないことを確認してください。

13
F1234k

Drushを使用してセッションテーブルを空にすることができます

drush sqlq "TRUNCATE sessions"

または、テーブル名にプレフィックスを設定している場合:

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

更新フックを使用して、すべてのユーザーを強制的にログアウトさせることができます。

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

Force Logout Module ..を使用します。

特徴

  • 有効および無効にできる設定フォーム(強制ログアウト)。
  • たとえば、管理者を除外したい場合に一部のユーザーロールを除外できる権限。
0
Saud Alfadhli