This is an approach to handling tiered access levels within the CanCan gem. The user inherits access grants for all levels up to and including their granted access level. This implementation assumes a User class of some kind with a method called access_level that returns the appropriate AccessLevel instance for the current user. The ability.rb file contains an example of the DSL that the TieredAbility class implements. Specs are included.
Any feedback is appreciated!