Novecento Normal
Novecento Demibold
Novecento Bold
25/01/2012
Plusieurs niveaux d’utilisateurs dans une application
Dans une application on a parfois besoin de plusieurs niveaux d’utilisateurs. Dans ce cas, Cancan est là et vous permettra de gérer simplement (et proprement !) cela.
Un petit exemple :
Model Ability, où je définis les possibilités de mes utilisateurs
class Ability
include CanCan::Ability
def initialize(user)
user ||= User.new # utilisateur invité
if user.admin?
can :manage, :all
else
can :read, :all
end
end
end
Donc si mon utilisateur est admin, il peut tout faire (CRUD) sur toutes mes entités. S’il ne l’est pas, il peut juste les afficher.
View
<% if can? :update, @monmodel %>
<%= link_to "Edit", edit_monmodel_path(@monmodel) %>
<% end %>
Voilà c’est tout ! Envie d’aller plus loin, ou de mettre un message d’erreur qui insultera l’utilisateur un peu fourbe qui voudra accéder à la fonctionnalité par l’url ? Voici les liens utiles :