module Departr::Session

Public Instance Methods

filename(provider, user, session_or_profile) click to toggle source
# File lib/departr/session.rb, line 5
def filename(provider, user, session_or_profile)
  if session_or_profile == :profile
    file = File.join(Config.data_path, provider, user, 'profile')
  else
    file = File.join(Config.data_path, provider, user, 'session', session_or_profile)
  end
  FileUtils.mkdir_p File.dirname(file) if not File.directory? File.dirname(file)
  file
end
profile(provider, user) click to toggle source
# File lib/departr/session.rb, line 36
def profile(provider, user)
  JSON.parse(File.read(filename(provider, user, :profile)))
end
signin(profile) click to toggle source
# File lib/departr/session.rb, line 23
def signin(profile)
  user = Digest::SHA1.hexdigest(profile['identifier'])
  provider = profile['providerName'].downcase
  File.open(filename(provider, user, :profile), 'w') do |fd|
    fd.write profile.to_json
  end
  session = Digest::SHA1.hexdigest("#{profile['identifier']}#{Time.now}#{rand}")
  File.open(filename(provider, user, session), 'w') do |fd|
    fd.write Time.now.to_s
  end
  [user, session]
end
valid?(provider, user, session) click to toggle source
# File lib/departr/session.rb, line 15
def valid?(provider, user, session)
  begin
    File.exists? filename(provider, user, session)
  rescue
    false
  end
end