Sha256: 070feb78d7a1e232c14eb81b8fa58b37fc95b2323eb751e203cd31ff9e02be4a

Contents?: true

Size: 965 Bytes

Versions: 14

Compression:

Stored size: 965 Bytes

Contents

module CanTango
  class PermissionEngine < Engine
    class Collector
      attr_reader :ability, :permissions, :type

      def initialize ability, permissions, type
        @ability = ability
        @permissions = permissions
        @type = type
      end

      def build
        relevant_rules.inject([]){|evaluators, (name, rules)|
          evaluators << CanTango::PermissionEngine::Evaluator.new(ability, rules) 
        }
      end

      def relevant_rules
        selector.select permissions
      end

      def selector
        CanTango::PermissionEngine::Selector.create type, self
      end

      def role_groups_list
        ability.role_groups
      end

      def roles_list
        ability.roles
      end

      def user
        ability.user
      end

      def user_account
        ability.user_account
      end
      alias_method :account, :user_account

      def user_key_field
        ability.user_key_field
      end
    end
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
cantango-0.9.3.2 lib/cantango/permission_engine/collector.rb
cantango-0.8.9.5 lib/cantango/permission_engine/collector.rb
cantango-0.8.9.4 lib/cantango/permission_engine/collector.rb
cantango-0.8.9.3 lib/cantango/permission_engine/collector.rb
cantango-0.8.9.2 lib/cantango/permission_engine/collector.rb
cantango-0.8.9.1 lib/cantango/permission_engine/collector.rb
cantango-0.8.9 lib/cantango/permission_engine/collector.rb
cantango-0.8.8.1 lib/cantango/permission_engine/collector.rb
cantango-0.8.8 lib/cantango/permission_engine/collector.rb
cantango-0.8.7 lib/cantango/permission_engine/collector.rb
cantango-0.8.6.2 lib/cantango/permission_engine/collector.rb
cantango-0.8.6.1 lib/cantango/permission_engine/collector.rb
cantango-0.8.6 lib/cantango/permission_engine/collector.rb
cantango-0.8.5.1 lib/cantango/permission_engine/collector.rb