2016-03-23 20 views
0

Ich versuche, ein Admin-Panel zu authentifizieren.Rails Devise: Anmelden Customizing

Wenn der Benutzer nicht admin, brechen Sie den Antrag auf Zeichen in.

In Standard, wenn E-Mail/Passwort falsch ist. Es macht /users/sign_in

def create 
    super do |user| 
     if user.role >= 30 
     res 
     else 
     #Do not create sessions, authenticate 
     flash[:notice] = "You do not have permission" 
     redirect_to :back 
     end 
    end 
    end 

Derzeit jedoch keine Angelegenheit unterzeichnet, was ich tat.

Wie kann ich anpassen?

Vielen Dank.

Antwort

0

Okay, diese Weise für mich gearbeitet.

Ich möchte bessere und einfachere Lösungen sehen, wenn möglich.

def create 
    user = User.find_by_email(params[:user][:email]) 
    if user.role >= 30 
    super 
    else 
    render 'users/sessions/new' 
    end 
end 
0

Die Standardmethode wird ein Verfahren sagt

def if_user_admin 
    return user.role < 30 
end 

und dies in Ihrem Controller Hinzufügen zu definieren:

before_action :if_user_admin 
+0

Es wird mir nicht helfen, weil das super mich Sitzung sowieso schafft. – 7urkm3n

Verwandte Themen