class TrivialSso::Login

Attributes

data[RW]
default_expire[R]
expire_time[RW]
mode[R]
secret[RW]
struct[RW]
unwrap[R]
wrap[R]

Public Class Methods

new(opts = {}) click to toggle source
# File lib/trivial_sso/login.rb, line 7
def initialize(opts = {})
  opts[:expire_time] = default_expire unless opts[:expire_time]
  opts[:secret]      = default_secret unless opts[:secret]
  opts.each {|k,v| send("#{k}=".to_sym, v) if available_opts.include?(k.to_sym)}
end

Public Instance Methods

data=(value) click to toggle source
# File lib/trivial_sso/login.rb, line 17
def data=(value)
  if value.is_a?(String)
    @mode, @data = :unwrap, value
  elsif value.is_a?(Hash)
    @mode, @data = :wrap, OpenStruct.new(value)
  else
    raise Error::BadData::Given
  end
end
expire_time=(value) click to toggle source
# File lib/trivial_sso/login.rb, line 13
def expire_time=(value)
  @expire_time = time_or_default(value) if time_value_good?(value)
end
sso_secret() click to toggle source
# File lib/trivial_sso/login.rb, line 40
def sso_secret
  TrivialSso::Secret.new(secret).sso_secret
end

Private Instance Methods

available_opts() click to toggle source
# File lib/trivial_sso/login.rb, line 85
def available_opts
  [:data, :secret, :expire_time]
end
check_mode_set() click to toggle source
# File lib/trivial_sso/login.rb, line 68
def check_mode_set
  raise Error::BadData::Given if mode.nil? || mode.empty?
end
default_secret() click to toggle source
# File lib/trivial_sso/login.rb, line 50
def default_secret
  get_defined_sso_secret || SecureRandom.hex(64)
end
get_defined_sso_secret() click to toggle source
# File lib/trivial_sso/login.rb, line 54
def get_defined_sso_secret
  if rails_sso_secret_exists?
    Rails.configuration.sso_secret
  elsif defined? Rails
    raise Error::MissingRailsConfig
  else
    false
  end
end
rails_sso_secret_exists?() click to toggle source
# File lib/trivial_sso/login.rb, line 64
def rails_sso_secret_exists?
  defined?(Rails) && Rails.configuration.sso_secret
end
time_or_default(value) click to toggle source
# File lib/trivial_sso/login.rb, line 80
def time_or_default(value)
  value.to_i.nonzero? ? value.to_i : default_expire
end
time_value_good?(value) click to toggle source
# File lib/trivial_sso/login.rb, line 72
def time_value_good?(value)
  if (value.is_a?(Integer) || value.is_a?(String)) && value.to_s.length == 10
    true
  else
    raise Error::BadExpireTime
  end
end