Bagaimana cara logout semua pengguna aktif?

15

Alih-alih menempatkan situs saya dalam "mode pemeliharaan", saya ingin meletakkannya dalam "mode baca saja" yang lengkap. Ada modul untuk itu, bagaimanapun, itu hanya mencegah "simpul menambah dan mengedit". Saya ingin mencegah semua aktivitas pengguna termasuk login dan registrasi pada dasarnya membuat situs dilayani dari cache (pernis). Sebagai manfaat sampingan saya akan menggunakan jenis "mode baca saja" jika situs ini dibanjiri dengan permintaan.

Pertanyaan saya: bagaimana saya bisa keluar dari semua pengguna aktif? Login dan registrasi saya dapat mengarahkan dengan hook.

kamu
sumber

Jawaban:

13

Sejauh yang saya tahu Anda dapat mengosongkan tabel sesi dan semua pengguna akan keluar. Mungkin ada masalah, tergantung pada modul yang telah Anda instal. Misalnya, modul yang menerapkan hook_user_logout()tidak akan pernah mendapatkan tindakan mereka dipecat, yang bisa menjadi masalah. Periksa untuk memastikan tidak ada modul yang terpasang Anda yang menerapkan hook ini.

F1234k
sumber
4
Seperti yang dikatakan @ F1234k, menghapus tabel sesi tidak akan pernah dipicu hook_user_logout (). Tapi, Anda bisa memicunya sendiri. Pilih semua uid dari tabel sesi dan kemudian jalankan `module_invoke_all ('user_logout', $ user);` untuk masing-masingnya. Anda dapat memfilter berdasarkan sesi yang dibuka lebih dari 1 jam (sesi di Drupal dapat tetap diaktifkan tanpa batas).
Alexandru Savin
Terima kasih. Saya perlu memecat kait logout, jika tidak saya akan mendapatkan WSOD untuk pengguna yang masuk dengan modul "persistent login".
uwe
13

Anda dapat mengosongkan tabel sesi menggunakan drush

drush sqlq "TRUNCATE sessions"

atau jika Anda telah menetapkan awalan untuk nama tabel:

drush sqlq --db-prefix "TRUNCATE {sessions}"
batigolix
sumber
0

Anda dapat memaksa untuk keluar semua pengguna melalui kait pembaruan:

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

Gunakan Force Logout Module ..

fitur

  • Formulir pengaturan tempat Anda dapat mengaktifkan dan menonaktifkan (Force logout).
  • Izin sehingga Anda dapat mengecualikan beberapa peran pengguna jika Anda ingin mengecualikan administrator misalnya.
Saud Alfadhli
sumber