2016-03-18 8 views
0

私は登録ユーザーが多いパネルがあります。各ユーザーのリンクが必要です。リンクをクリックすると、パスワードなしでそのアカウントにログインします。 リセラーシステムはそうしています。販売代理店の管理者は、顧客アカウントのアカウントにログインします(Parallels Pleskはそれを行います)。Devitsでログイン - リンクをクリックするとアカウントにログインします

すべてのユーザーはDeviseに登録されています。 これは可能ですか?

答えて

1

はい。それが可能だ。そのユーザーのセッションを作成するために呼び出すのと同じメソッドを呼び出すだけです。リンクは次のようなものになるだろう(あなたはパスは、使用しているものと一致していることを確認する必要があります):

def sign_in_as_user 
    if current_user.admin? 
    user = User.find(params[:user_id]) 
    sign_in(user) 
    redirect_to '/wherever' 
    else 
    redirect_to '/' 
    end 
end 
+0

申し訳遅延:コントローラでこのような何かを持つ

<a href="/users/sign_in_as_user/<%= user['user_id'] %>" class="btn btn-default btn-xs">Sign In</a> 

、私はフィードバックを忘れてしまった。あなたのソリューションは完璧に動作します、ありがとう!私は1つだけ追加のパラメータを追加しました。ユーザーデータとの複雑な組み合わせによる安全なハッシュこれで、このURLでIdを試してみた人は、もっと情報が必要なのでアクセスできません –

+0

素晴らしい!それが助けてくれてうれしい。 – toddmetheny

関連する問題