2016-03-18 10 views
0

Ich habe ein Panel mit vielen registrierten Benutzern. Ich möchte einen Link für jeden Benutzer, wenn ich auf den Link klicke, logge ich diesen Account ein, ohne das Passwort. Wie die Reseller-Systeme tun. Der Reseller-Administrator meldet sich im Account des Kundenaccounts an (Parallels Plesk macht das).Anmeldung mit Devise - Melden Sie sich beim Konto an, wenn Sie auf den Link klicken

Alle Benutzer wurden bei Devise registriert. Ist das möglich?

Antwort

1

ja. es ist möglich. Rufen Sie einfach dieselbe Methode auf, die Sie aufrufen, um eine Sitzung für den Benutzer zu erstellen. wäre der Link so etwas wie (Sie werden der Weg stimmt mit dem müssen sicherstellen, Sie verwenden):

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

mit so etwas wie dies in der Steuerung:

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

Leider die Verzögerung Ich habe das Feedback vergessen. Ihre Lösung funktioniert perfekt, danke! Ich fügte nur einen weiteren Parameter hinzu. Ein sicherer Hash mit einer komplexen Kombination mit den Benutzerdaten. Damit haben Leute, die versucht haben, die ID in dieser URL nicht zu bekommen, weil brauchen mehr Informationen –

+0

Großartig! Froh, dass es geholfen hat. – toddmetheny

Verwandte Themen