Sha256: 71fa4fe085d7f7cb5c306bc5ac7a0b3d9db1a6c0b15d14501fd83f69da7c3a0e

Contents?: true

Size: 1.35 KB

Versions: 12

Compression:

Stored size: 1.35 KB

Contents

module Doorkeeper
  module Models
    module Revocable
      # Revokes the object (updates `:revoked_at` attribute setting its value
      # to the specific time).
      #
      # @param clock [Time] time object
      #
      def revoke(clock = Time)
        update_attribute :revoked_at, clock.now.utc
      end

      # Indicates whether the object has been revoked.
      #
      # @return [Boolean] true if revoked, false in other case
      #
      def revoked?
        !!(revoked_at && revoked_at <= Time.now.utc)
      end

      # Revokes token with `:refresh_token` equal to `:previous_refresh_token`
      # and clears `:previous_refresh_token` attribute.
      #
      def revoke_previous_refresh_token!
        return unless refresh_token_revoked_on_use?
        old_refresh_token.revoke if old_refresh_token
        update_attribute :previous_refresh_token, ""
      end

      private

      # Searches for Access Token record with `:refresh_token` equal to
      # `:previous_refresh_token` value.
      #
      # @return [Doorkeeper::AccessToken, nil]
      #   Access Token record or nil if nothing found
      #
      def old_refresh_token
        @old_refresh_token ||=
          AccessToken.by_refresh_token(previous_refresh_token)
      end

      def refresh_token_revoked_on_use?
        AccessToken.refresh_token_revoked_on_use?
      end
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
doorkeeper-4.4.3 lib/doorkeeper/models/concerns/revocable.rb
doorkeeper-5.0.0 lib/doorkeeper/models/concerns/revocable.rb
doorkeeper-4.4.2 lib/doorkeeper/models/concerns/revocable.rb
doorkeeper-4.4.1 lib/doorkeeper/models/concerns/revocable.rb
doorkeeper-5.0.0.rc2 lib/doorkeeper/models/concerns/revocable.rb
doorkeeper-4.4.0 lib/doorkeeper/models/concerns/revocable.rb
doorkeeper-5.0.0.rc1 lib/doorkeeper/models/concerns/revocable.rb
doorkeeper-4.3.2 lib/doorkeeper/models/concerns/revocable.rb
doorkeeper-4.3.1 lib/doorkeeper/models/concerns/revocable.rb
doorkeeper-4.3.0 lib/doorkeeper/models/concerns/revocable.rb
doorkeeper-4.2.6 lib/doorkeeper/models/concerns/revocable.rb
doorkeeper-4.2.5 lib/doorkeeper/models/concerns/revocable.rb