Class: Arkaan::OAuth::Application

Inherits:
Object
  • Object
show all
Includes:
Mongoid::Document, Mongoid::Timestamps
Defined in:
lib/arkaan/oauth/application.rb

Overview

An application is what is referred to in the OAuth2.0 RFC as a client, wanting to access private informations about the user.

Author:

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#authorizationsArray<Arkaan::OAuth::Authorization>

Returns the authorizations linked to the accounts this application can get the data from.

Returns:



32
# File 'lib/arkaan/oauth/application.rb', line 32

has_many :authorizations, class_name: 'Arkaan::OAuth::Authorization', inverse_of: :application

#creatorArkaan::Account

Returns the account that has created this application, considered its owner.

Returns:

  • (Arkaan::Account)

    the account that has created this application, considered its owner.



28
# File 'lib/arkaan/oauth/application.rb', line 28

belongs_to :creator, class_name: 'Arkaan::Account', inverse_of: :applications

#keyString

Returns the unique key for the application, identifying it when requesting a token for the API.

Returns:

  • (String)

    the unique key for the application, identifying it when requesting a token for the API.



17
# File 'lib/arkaan/oauth/application.rb', line 17

field :app_key, type: String, default: -> { SecureRandom.hex }

#nameString

Returns the unique name of the application, mainly used to identify and display it.

Returns:

  • (String)

    the unique name of the application, mainly used to identify and display it.



14
# File 'lib/arkaan/oauth/application.rb', line 14

field :name, type: String

#premiumBoolean

Returns a value indicating whether the application should automatically receive a token when an account is created, or not.

Returns:

  • (Boolean)

    a value indicating whether the application should automatically receive a token when an account is created, or not.



21
# File 'lib/arkaan/oauth/application.rb', line 21

field :premium, type: Boolean, default: false

Instance Method Details

#redirect_uris_valuesObject

Checks the URIs to get sure they are correct, a URI is correct if :

  • it is a string

  • it has a correct URL format.



48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/arkaan/oauth/application.rb', line 48

def redirect_uris_values
  regex = %r{\A(https?:\/\/)((([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*)|(localhost:[0-9]{2,4})\/?)\z}
  redirect_uris.each do |uri|
    if !uri.is_a? String
      errors.add(:redirect_uris, 'type')
      break
    elsif uri.match(regex).nil?
      errors.add(:redirect_uris, 'format')
      break
    end
  end
end