module Grape::OAuth2::Sequel::AccessGrant

Grape::OAuth2 Authorization Grant role mixin for Sequel toolkit. Includes all the required API, associations, validations and callbacks.

Public Class Methods

create_for(client, resource_owner, redirect_uri, scopes = nil) click to toggle source
# File lib/grape_oauth2/mixins/sequel/access_grant.rb, line 26
def create_for(client, resource_owner, redirect_uri, scopes = nil)
  create(
    client_id: client.id,
    resource_owner_id: resource_owner && resource_owner.id,
    redirect_uri: redirect_uri,
    scopes: scopes.to_s
  )
end

Public Instance Methods

before_validation() click to toggle source
Calls superclass method
# File lib/grape_oauth2/mixins/sequel/access_grant.rb, line 16
def before_validation
  if new?
    generate_token
    setup_expiration
  end

  super
end
expired?() click to toggle source
# File lib/grape_oauth2/mixins/sequel/access_grant.rb, line 42
def expired?
  expires_at && Time.now.utc > expires_at
end
generate_token() click to toggle source
# File lib/grape_oauth2/mixins/sequel/access_grant.rb, line 57
def generate_token
  self.token = Grape::OAuth2.config.token_generator.generate(values)
end
revoke!(revoked_at = Time.now) click to toggle source
# File lib/grape_oauth2/mixins/sequel/access_grant.rb, line 50
def revoke!(revoked_at = Time.now)
  set(revoked_at: revoked_at.utc)
  save(columns: [:revoked_at], validate: false)
end
revoked?() click to toggle source
# File lib/grape_oauth2/mixins/sequel/access_grant.rb, line 46
def revoked?
  revoked_at && revoked_at <= Time.now.utc
end
setup_expiration() click to toggle source
# File lib/grape_oauth2/mixins/sequel/access_grant.rb, line 61
def setup_expiration
  self.expires_at = Time.now.utc + Grape::OAuth2.config.authorization_code_lifetime if expires_at.nil?
end
validate() click to toggle source
Calls superclass method
# File lib/grape_oauth2/mixins/sequel/access_grant.rb, line 36
def validate
  super
  validates_presence %i[token client_id]
  validates_unique [:token]
end