Sha256: f01a02517504f4f7a909a9b8e9f49be0cb9f424b1f41a245ca5fe30e4448c15a

Contents?: true

Size: 570 Bytes

Versions: 16

Compression:

Stored size: 570 Bytes

Contents

module Clearance
  module Constraints
    class SignedIn
      def initialize(&block)
        @block = block || lambda { |user| true }
      end

      def matches?(request)
        @request = request
        signed_in? && current_user_fulfills_additional_requirements?
      end

      private

      def current_user
        @request.env[:clearance].current_user
      end

      def current_user_fulfills_additional_requirements?
        @block.call current_user
      end

      def signed_in?
        @request.env[:clearance].signed_in?
      end
    end
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
clearance-1.4.2 lib/clearance/constraints/signed_in.rb
clearance-1.4.1 lib/clearance/constraints/signed_in.rb
clearance-1.4.0 lib/clearance/constraints/signed_in.rb
clearance-1.3.0 lib/clearance/constraints/signed_in.rb
clearance-1.2.1 lib/clearance/constraints/signed_in.rb
clearance-1.2.0 lib/clearance/constraints/signed_in.rb
clearance-1.1.0 lib/clearance/constraints/signed_in.rb
clearance-1.0.1 lib/clearance/constraints/signed_in.rb
clearance-1.0.0 lib/clearance/constraints/signed_in.rb
clearance-1.0.0.rc8 lib/clearance/constraints/signed_in.rb
clearance-1.0.0.rc7 lib/clearance/constraints/signed_in.rb
clearance-1.0.0.rc6 lib/clearance/constraints/signed_in.rb
clearance-1.0.0.rc4 lib/clearance/constraints/signed_in.rb
clearance-1.0.0.rc3 lib/clearance/constraints/signed_in.rb
clearance-1.0.0.rc2 lib/clearance/constraints/signed_in.rb
clearance-1.0.0.rc1 lib/clearance/constraints/signed_in.rb