Un jour, une gem

01/06/2012

Vendredi c'est Rails-Canhaz

gem install rails-canhaz

Un Objet pour les gouverner tous

Aujourd’hui une gem d’@Intrepidd qui permet de mettre en place simplement des droits entre des objets.

Avant toute chose, il faut l’installer :

rails g can_haz:install

Et une fois qu’on a exécuté la migration et qu’on a édité nos models comme suit :

Un sujet

class User < ActiveRecord::Base
  acts_as_canhaz_subject
end

Un objet

class Article < ActiveRecord::Base
  acts_as_canhaz_object
end

On peut utiliser toutes ces petites méthodes :

user = User.find(666)
article = Article.find(999)

user.can?(:read, article) # l'utilisateur peut-il lire l'article ? non pas pour le moment

user.can!(:read, article) # ok maintenant il peut le lire
user.can!(:edit, article) # et il peut aussi l'éditer !

user.can?(:read, article) # retournera true

user.objects_with_permission(Article, :read) # retournera une liste d'articles que l'utilisateur peut lire

artice.subjects_with_permission(User, :read) # retournera la liste des utilisateurs qui peuvent lire ce livre

user.cannot!(:read, article) # on peut également enlever des permissions

Voilà c’est tout pour aujourd’hui !

Le lien utile