Sha256: 42b16028912e2f0d315cca77b0269bd0d7afed1c307c24ab00821b1ec830371d

Contents?: true

Size: 829 Bytes

Versions: 3

Compression:

Stored size: 829 Bytes

Contents

module Arpa
  module Entities
    class Permissions

      attr_reader :permissions

      def initialize(actions)
        @actions   = actions
        @permissions = Array.new
        build_permissions
      end

      def has_permission?(resource_name, action_name)
        hash_permission = build_hash_permission(resource_name, action_name)
        permissions.include?(hash_permission)
      end

      private
      def build_permissions
        @actions.collect do |action|
          hash_permission = build_hash_permission(action.resource_name, action.name)
          @permissions << hash_permission unless permissions.include?(hash_permission)
        end
      end

      def build_hash_permission(resource_name, action_name)
        {'resource' => resource_name, 'action' => action_name }
      end

    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
arpa-0.0.7 lib/arpa/entities/permissions.rb
arpa-0.0.6 lib/arpa/entities/permissions.rb
arpa-0.0.5 lib/arpa/entities/permissions.rb