Как принудительно выйти из системы пользователя, отличного от current_user, с помощью devise - PullRequest
0 голосов
/ 08 мая 2020

Мне нужно создать функцию на сайте администратора, которая позволит администратору принудительно выйти из системы любого пользователя.

Я использую аутентификацию на основе токена разработки и пробовал метод sign_out user. Он не работает.

1 Ответ

0 голосов
/ 08 мая 2020

Добавьте новый столбец для admin, который называется force_logout:boolean

В любом контроллере добавьте новое действие, чтобы установить force_logout на true. Например:

# in admins_controller.rb

def force_logout
  admin = Admin.find(params[:id])
  admin.update_column(:force_logout, true)
  redirect_to :back
end

В application_controller.rb добавьте before_action для выхода пользователя, если force_logout равно true

before_action :check_force_logout

def check_force_logout
  if current_user && current_user.force_logout?
    current_user.update_column(:force_logout, false)
    sign_out(current_user)
  end
end

Также вам нужно сбросить force_logout столбец после admin будет выполнен вход. Обычно это можно сделать session_controller.rb в действии create.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...