GateKeeper 0.2 - Model Level Permissions Management

GateKeeper 0.2 is now available.

GateKeeper is a Ruby on Rails plugin providing natural language commands to intuitively manage complex access/security permissions on ActiveRecord models. Permissions may be based on user's system wide roles (Admin, Moderator, Employee of the Month) and on user's relationship to individual records through ActiveRecord associations.

Version 0.2 adds traversal of eagerly loaded associations to verify read permissions on loaded objects.

Rdocs and installation instructions available at http://gatekeeper.rubyforge.org/

As an appetizer, here are some sample permission declarations you can add to your models for GateKeeper to enforce.

class Article < ActiveRecord::Base
  crudable_by_admin
  crudable_by_my_author
  readable_by_supervisor_of_my_author
  updateable_by_supervisor_of_my_author :unless => :first_draft?
  readable_by_premium_subscriber :if => :published?
  destroyable_as_my_author #inherits 'destroy' permissions from author
  readable_by_guest :if => lambda { |article| article.published_on < 3.months.ago }
  etc. etc. etc