Bonjour, tout le monde !

Pour mon application, j'ai plusieurs rôle
Users = 1 / Modos = 2 / Admin = 3
Du coup avec devise j'ai ajouter un champ role en integer ^^

Le problème c'est qu'avec Rails admin lorsque je souhaite accéder à l'admin lorsque je suis connecter et que j'ai le bon role je suis automatiquement rediriger comme ci j'était simple utilisateur ou visiteur.

# rails_admin.rb
if current_user.nil?
        redirect_to '/posts'
elsif current_user.role == 2
    redirect_to main_app.root_path
else
    redirect_to '/posts'
 end

Pour moi je ne vois pas d'erreur dans l'authorisation ^^

Pourquoi me redirige t-il ?

Merci de votre aide

4 réponses


Et si tu debug la variable current_user il y a quoi dedans?

puts YAML::dump(current_user)

(Je ne savais pas le faire du coup je te l'ai mise au cas ou ^_^ )

EDIT: pourquoi redirect vers '/posts' dans le else? Et je pense que tu devrais faire l'inverse, d'abord les cas spécifiques (admin, modo, etc) et le reste dans le else

Bonsoir.
Est-ce spécifique à Rails elsif au lieu de elseif ou bien est-ce une faute de frappe ?

@Lartak oui en ruby c'est bien elsif

Muxabble
Auteur

@Lartak j'avoue que c'est déstabilisant quand on vient de php, par exemple le elsif ^^, mais je ne pense pas m'être tromper sur ce point :)
@TransientDev pour le debug, j'ai juste rails qui me ressort les infos de l'utilisateur admin ^^ avec le role : 2