2013-07-17 4 views
0

У меня есть приложение и подключено активный администратор. Я пытаюсь разрешить администратору войти в систему как любой пользователь с помощью активного администратора без пароля, используя метод sign_in @user. Возможно ли это сделать из коробки?Вход в главное приложение от активного администратора

Я могу сделать перенаправление с именем пользователя в params/session, но это не безопасно, как если бы я не хотел пропускать что-либо за пределами активного администратора.

Любые идеи?

+0

вы можете слияние activeadmin пользователей и существующих пользователей, так что существующие пользователи с флагом администратора может войти в активный администратор. проверьте это http://stackoverflow.com/questions/9253587/merging-activeadmin-users-with-existing-user-model –

+0

Это немного другое. Я хочу, чтобы мои admin_user (ы) могли войти в систему как любой пользователь (через активного администратора) – Avdept

ответ

0

Я не уверен, что вы подразумеваете под «небезопасным»; внутренняя среда разработки может гарантировать, что вы являетесь пользователем admin и т. д., и все, что вам нужно пройти, - это имя пользователя нового пользователя. Тем не менее, приведенный ниже код полностью находится в ActiveAdmin и достигнет того, чего вы хотите.

N.B. Я не могу придумать простой способ подписать пользователя Admin (я использую тот же Devise для всех пользователей и использую auth на основе ролей).

member_action :sign_in_as, :method => :put do 
    user = User.find(params[:id]) 
    sign_in user, bypass: true 
    redirect_to root_path 
end 

action_item :only => :show do 
    link_to('Sign in As', sign_in_as_admin_user_path(user), method: 'put') 
end 
0

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

def authenticate_any! 
    if authenticate_admin_user! 
    true 
    else 
    authenticate_user! 
    end 
end 

или переопределение разработать

module Devise 
module Controllers 
    module Helpers 
    def authenticate_user! 
    if authenticate_admin_user! 
     return true 
    end 
    super 
    end 
    end 
end 
end 
Смежные вопросы