Novecento Normal
Novecento Demibold
Novecento Bold
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 :
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