Sha256: afc3f619aa3a77b020a0b58bfb8cf338c1c5d96257f3000280b86c085f0c9374

Contents?: true

Size: 649 Bytes

Versions: 1

Compression:

Stored size: 649 Bytes

Contents

module AuthAssistant
  class Ability
    include CanCan::Ability

    # set up each RolePermit instance to share this same Ability 
    # so that the can and cannot operations work on the same permission collection!
    def self.role_permits ability
      @role_permits = AuthAssistant::Roles.available.inject([]) do |permits, role|
        permits << "RolePermit::#{role.to_s.camelize}".constantize.new(ability)
      end
    end

    def initialize(user, request=nil)
      # put ability logic here!
      user ||= Guest.new   
      Ability.role_permits(self).each{|role_permit| role_permit.permit?(user, request) }
    end      
  end
end      

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
cancan-permits-0.1.0 spec/cancan-permits/fixtures/ability.rb