def new
before_filter do
redirect_to "/" unless current_admin || current_company
flash[:notice] = 'You dont have enough permissions to be here' unless current_admin || current_company
end
CODE CODE CODE
end
def edit
before_filter do
redirect_to "/" unless current_admin.id = 5
flash[:notice] = 'You dont have enough permissions to be here' unless current_admin || current_company
end
CODE CODE CODE
end
C'est le code que je veux faire, mais je n'arrive pas à comprendre comment le faire correctement. Ce que je veux réaliser, c'est appliquer une règle before_filter pour chacune de mes actions. Donc, peut-être qu'un utilisateur peut accéder à l'action INDEX mais pas à l'action EDIT, etc. Je sais que la méthode before_filter s'exécute une seule fois, et je ne peux pas exécuter 4 before_filters, je donne juste une référence en raison de mon anglais médiocre.
Vous devez savoir que j'utilise Devise pour les méthodes current_admin et current_company. J'ai besoin d'appliquer différents filtres (si admin ou si company.id = X) et d'autres actions.
Merci d'avance, je suis plutôt coincé ici. Toute aide serait appréciée.
Créez dans votre méthode ApplicationController
:
def check_privileges!
redirect_to "/", notice: 'You dont have enough permissions to be here' unless current_admin || current_company
end
Et puis dans votre contrôleur:
before_filter :check_privileges!, only: [:new, :create, :edit, :save]
Ou
before_filter :check_privileges!, except: [:index, :show]