2017-05-30 1 views
0

J'ai une application simple où j'ai utilisé concevoir pour l'authentification. Je viens d'ajouter bijou rails_adminComment limiter l'accès au panneau d'administration rails_admin?

https://github.com/sferik/rails_admin

Cela permettra d'accéder facilement aux données via/itinéraire d'administration. J'ai également ajouté

RailsAdmin.config do |config| 
    config.authenticate_with do 
    warden.authenticate! scope: :admin 
    end 
    config.current_user_method(&:current_admin) 
end 

à Initializer maintenant l'authentification est nécessaire avant d'accéder à/admin.

Mais je veux une restriction de plus. J'ai une propriété d'administration dans mon modèle d'utilisateur. Je change la propriété admin uniquement via la console. Je souhaite limiter l'accès au panneau/admin aux utilisateurs dont la propriété admin est définie sur true.

Actuellement, tout utilisateur peut accéder au panneau/admin fourni par rails_admin gem. Comment puis-je atteindre cet objectif? J'apprécie toute aide! Merci!

Répondre

1

Je vous suggère d'écrire cette autorisation personnalisée puisque vous avez un champ boolean pour admin ..

config.authorize_with do |controller| 
    if current_user.nil? 
    redirect_to main_app.new_account_session_path, flash: {error: 'Please Login to Continue..'} 
    elsif !current_user.admin? 
    redirect_to main_app.root_path, flash: {error: 'You are not Admin bro!'} 
    end 
end 
+0

ok merci ce fait le tour https://github.com/sferik/rails_admin/wiki/Authorization – kofhearts