Sha256: b19ce5661ba0fc58d443c5e891170f4966692a7f06b931a7ee820df619536151

Contents?: true

Size: 852 Bytes

Versions: 1

Compression:

Stored size: 852 Bytes

Contents

module CanTango
  module PermissionEngine
    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_key_field
        ability.user_key_field
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
cantango-0.8.0 lib/cantango/permission_engine/collector.rb