class Doorkeeper::OAuth::PasswordAccessTokenRequest
def access_token
def access_token return unless client.present? && resource_owner.present? @access_token ||= Doorkeeper::AccessToken.matching_token_for client, resource_owner.id, scopes end
def authorize
def authorize validate @response = if valid? find_or_create_access_token TokenResponse.new access_token else ErrorResponse.from_request self end end
def create_access_token
def create_access_token @access_token = Doorkeeper::AccessToken.create!({ :application_id => client.id, :resource_owner_id => resource_owner.id, :scopes => scopes.to_s, :expires_in => server.access_token_expires_in, :use_refresh_token => server.refresh_token_enabled? }) end
def find_or_create_access_token
def find_or_create_access_token if access_token access_token.expired? ? revoke_and_create_access_token : access_token else create_access_token end end
def initialize(server, client, resource_owner, parameters = {})
def initialize(server, client, resource_owner, parameters = {}) @server = server @resource_owner = resource_owner @client = client @original_scopes = parameters[:scope] end
def revoke_and_create_access_token
def revoke_and_create_access_token access_token.revoke create_access_token end
def scopes
def scopes @scopes ||= if @original_scopes.present? Doorkeeper::OAuth::Scopes.from_string(@original_scopes) else server.default_scopes end end
def valid?
def valid? self.error.nil? end
def validate_client
def validate_client !!client end
def validate_resource_owner
def validate_resource_owner !!resource_owner end
def validate_scopes
def validate_scopes return true unless @original_scopes.present? ScopeChecker.valid?(@original_scopes, @server.scopes) end