Je suis un grand amateur de ruby et de rails depuis que j’ai découvert ces technos il y a de ca 2 ans et demi.
Pour mon boulot, j’ai eu besoin de gérer des rôles et permissions entre modèles. Typiquement, on peut imaginer le cas d’un modèle User et d’un modèle Article.
Certains utilisateurs peuvent lire l’article, certains autres peuvent l’éditer, etc.
De nombreuses gems existent pour résoudre ce problème. J’ai moi même utilisé ACL9 qui n’est pas mal dans son genre.
Cependant, je l’ai trouvée trop compliquée et certaines choses manquaient à mes yeux. J’ai donc pris mon courage à deux mains et décidé de coder ma propre gem pour résoudre ce problème.
Ainsi est née rails-canhaz
Voici un exemple de ce que cette gem peut faire :
user = User.find(42)article = Article.find(1337)
user.can?(:read, article) # Can the user read this article? false for now
user.can(:read, article) # Ok, so the user can read this articleuser.can(:edit, article) # He can edit it as well
user.can?(:read, article) # Will be true
user.objects_with_permission(Article, :read) # Will return all the articles w/ read permissions for this user
artice.subjects_with_permission(User, :read) # Will return all the users hat are able to read this article
#You can also remove permissions
user.cannot(:read, article)C’est ma première contribution au monde des gems ruby, je suis donc tout à fait ouvert aux critiques, pull requests, ou commentaires



