Làm thế nào để đăng xuất tất cả người dùng đang hoạt động?


15

Thay vì đặt trang web của tôi ở "chế độ bảo trì", tôi muốn đặt nó ở chế độ "chỉ đọc" hoàn chỉnh. Có một mô-đun cho điều đó, tuy nhiên, nó chỉ ngăn "thêm và chỉnh sửa nút". Tôi muốn ngăn chặn tất cả các hoạt động của người dùng bao gồm đăng nhập và đăng ký để về cơ bản trang web được phục vụ từ bộ đệm (véc ni). Vì lợi ích phụ, tôi sẽ sử dụng loại "chế độ chỉ đọc" này nếu trang web bị ngập trong các yêu cầu.

Câu hỏi của tôi: làm thế nào tôi có thể đăng xuất tất cả người dùng đang hoạt động? Đăng nhập và đăng ký sau đó tôi có thể chuyển hướng với một cái móc.

Câu trả lời:


13

Theo tôi biết bạn có thể làm trống bảng phiên và tất cả người dùng sẽ được đăng xuất. Có thể có một vấn đề mặc dù, tùy thuộc vào các mô-đun mà bạn đã cài đặt. Ví dụ, các mô-đun triển khai hook_user_logout()sẽ không bao giờ bị sa thải, đây có thể là một vấn đề. Kiểm tra để đảm bảo không có mô-đun đã cài đặt nào của bạn thực hiện móc này.


4
Như @ F1234k đã nói, xóa bảng phiên sẽ không bao giờ được kích hoạt hook_user_logout (). Nhưng, bạn chỉ có thể tự kích hoạt nó. Chọn tất cả các uid từ bảng phiên và thực hiện `module_invoke_all ('user_logout', $ user);` cho mỗi trong số chúng. Mặc dù bạn có thể lọc theo những người đã mở phiên của họ trong hơn 1 giờ (các phiên trong Drupal có thể được bật vô hạn).
Alexandru Savin

cảm ơn. Tôi sẽ cần phải kích hoạt các móc đăng xuất, nếu không tôi sẽ nhận được WSOD cho người dùng đã đăng nhập bằng mô-đun "đăng nhập liên tục".
uwe

13

Bạn có thể làm trống bảng phiên bằng cách sử dụng drush

drush sqlq "TRUNCATE sessions"

hoặc nếu bạn đã đặt tiền tố cho tên bảng:

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

0

Bạn có thể buộc phải đăng xuất tất cả người dùng thông qua móc cập nhật:

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

0

Sử dụng mô-đun đăng xuất lực lượng ..

Đặc trưng

  • Hình thức cài đặt nơi bạn có thể bật và tắt (Bắt buộc đăng xuất).
  • Quyền để bạn có thể loại trừ một số vai trò người dùng nếu bạn muốn loại trừ quản trị viên chẳng hạn.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.