Sha256: 42bff9e718c4b1f1c1462ae005cedd1bd71307190b33d0c60d1f542f83378549
Contents?: true
Size: 1.61 KB
Versions: 2
Compression:
Stored size: 1.61 KB
Contents
module Doorkeeper module OAuth class PreAuthorization include Validations validate :response_type, error: :unsupported_response_type validate :client, error: :invalid_client validate :scopes, error: :invalid_scope validate :redirect_uri, error: :invalid_redirect_uri attr_accessor :server, :client, :response_type, :redirect_uri, :state attr_writer :scope def initialize(server, client, attrs = {}) @server = server @client = client @response_type = attrs[:response_type] @redirect_uri = attrs[:redirect_uri] @scope = attrs[:scope] @state = attrs[:state] end def authorizable? valid? end def scopes Scopes.from_string scope end def scope @scope.presence || server.default_scopes.to_s end def error_response OAuth::ErrorResponse.from_request(self) end private def validate_response_type server.authorization_response_types.include? response_type end def validate_client client.present? end def validate_scopes return true unless scope.present? Helpers::ScopeChecker.valid?( scope, server.scopes, client.application.scopes ) end # TODO: test uri should be matched against the client's one def validate_redirect_uri return false if redirect_uri.blank? Helpers::URIChecker.valid_for_authorization?( redirect_uri, client.redirect_uri ) end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
doorkeeper-4.4.3 | lib/doorkeeper/oauth/pre_authorization.rb |
doorkeeper-4.4.2 | lib/doorkeeper/oauth/pre_authorization.rb |