Sha256: 1448faaeff5841ce6a0fd3c8a5ec0997c0690444b4c1d0345c7b9e844622f2d5

Contents?: true

Size: 817 Bytes

Versions: 8

Compression:

Stored size: 817 Bytes

Contents

# frozen_string_literal: true

module Pathway
  module Plugins
    module SimpleAuth
      module ClassMethods
        def authorization(&block)
          define_method(:authorized?) do |*args|
            instance_exec(*args, &block)
          end
        end
      end

      module InstanceMethods
        def authorize(state, using: nil)
          auth_state = if using.is_a?(Array)
                         authorize_with(*state.values_at(*using))
                       else
                         authorize_with(state[using || result_key])
                       end

          auth_state.then { state }
        end

        def authorize_with(*objs)
          authorized?(*objs) ? wrap(objs) : error(:forbidden)
        end

        def authorized?(*)
          true
        end
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
pathway-0.12.3 lib/pathway/plugins/simple_auth.rb
pathway-0.12.2 lib/pathway/plugins/simple_auth.rb
pathway-0.12.1 lib/pathway/plugins/simple_auth.rb
pathway-0.12.0 lib/pathway/plugins/simple_auth.rb
pathway-0.11.3 lib/pathway/plugins/simple_auth.rb
pathway-0.11.2 lib/pathway/plugins/simple_auth.rb
pathway-0.11.1 lib/pathway/plugins/simple_auth.rb
pathway-0.11.0 lib/pathway/plugins/simple_auth.rb