私のサイトを「メンテナンスモード」にする代わりに、完全な「読み取り専用モード」にしたいと思います。 module がありますが、「ノードの追加と編集」のみが防止されます。ログインと登録を含むすべてのユーザーアクティビティを禁止して、基本的に(ワニス)キャッシュからサイトを提供するようにします。副次的な利点として、サイトがリクエストであふれている場合は、このタイプの「読み取り専用モード」を使用します。
私の質問:すべてのアクティブユーザーをログアウトするにはどうすればよいですか?ログインと登録をフックでリダイレクトできます。
私の知る限り、セッションテーブルを空にすると、すべてのユーザーがログアウトされます。ただし、インストールしたモジュールによっては問題が発生する場合があります。たとえば、 hook_user_logout()
を実装するモジュールは、アクションが発生することはなく、これは問題になる可能性があります。インストールされているモジュールがこのフックを実装していないことを確認してください。
Drushを使用してセッションテーブルを空にすることができます
drush sqlq "TRUNCATE sessions"
または、テーブル名にプレフィックスを設定している場合:
drush sqlq --db-prefix "TRUNCATE {sessions}"
更新フックを使用して、すべてのユーザーを強制的にログアウトさせることができます。
/**
* Force to logout all the users.
*/
function mymodule_update_7001() {
db_truncate('sessions')->execute();
}