class Jerakia::Server::Auth

Public Class Methods

authenticate(token_string) click to toggle source
# File lib/jerakia/server/auth.rb, line 58
def authenticate(token_string)
  api_id, token = token_string.split(/:/)
  entry = get_entry(api_id)
  return false if entry.nil?
  if entry.token == token and entry.active
    seen!(api_id)
    true
  else
    false
  end
end
create(api_id) click to toggle source
# File lib/jerakia/server/auth.rb, line 46
def create(api_id)
  raise Jerakia::Error, "API ID #{api_id} already exists" if exists?(api_id)
  token = generate_token
  entry = Jerakia::Server::Auth::Token.new(:api_id => api_id, :token => token)
  entry.save
  api_id + ":" + token
end
destroy(api_id) click to toggle source
# File lib/jerakia/server/auth.rb, line 37
def destroy(api_id)
  entry = get_entry(api_id)
  entry.destroy
end
disable(api_id) click to toggle source
# File lib/jerakia/server/auth.rb, line 29
def disable(api_id)
  update(api_id, { :active => false })
end
enable(api_id) click to toggle source
# File lib/jerakia/server/auth.rb, line 33
def enable(api_id)
  update(api_id, { :active => true })
end
exists?(api_id) click to toggle source
# File lib/jerakia/server/auth.rb, line 42
def exists?(api_id)
  get_entry(api_id)
end
generate_token() click to toggle source
# File lib/jerakia/server/auth.rb, line 10
def generate_token
  SecureRandom.hex(40)
end
get_entry(api_id) click to toggle source
# File lib/jerakia/server/auth.rb, line 15
def get_entry(api_id)
  Jerakia::Server::Auth::Token.get(api_id)
end
get_tokens() click to toggle source
# File lib/jerakia/server/auth.rb, line 54
def get_tokens
  Jerakia::Server::Auth::Token.find
end
seen!(api_id) click to toggle source
# File lib/jerakia/server/auth.rb, line 25
def seen!(api_id)
  update(api_id, { :last_seen => DateTime.now })
end
update(api_id, fields) click to toggle source
# File lib/jerakia/server/auth.rb, line 19
def update(api_id, fields)
  entry = get_entry(api_id)
  entry.update(fields)
  entry.save
end