class EME::AdminUser

Public Class Methods

all_permissions(admin_session_key, conn = connection, opts={}) click to toggle source

returns all permissions if they are still logged in, and have permissions to see all permissions, permission data only includes, id, controller, action, method

# File lib/eme/admin_user.rb, line 74
def self.all_permissions(admin_session_key, conn = connection, opts={})
  return do_request("/permissions", conn, opts_work(opts, admin_session_key))
end
all_roles(admin_session_key, conn = connection, opts={}) click to toggle source

returns all roles if they are still logged in, and have permissions to see all roles, role data only includes, id, name

# File lib/eme/admin_user.rb, line 55
def self.all_roles(admin_session_key, conn = connection, opts={})
  return do_request("/roles", conn, opts_work(opts, admin_session_key))
end
all_users(admin_session_key, conn = connection, opts={}) click to toggle source

returns all users if they are still logged in, and have permissions to see all users, user data only includes, id, name, last_login, roles, and current_logged_in_status

# File lib/eme/admin_user.rb, line 23
def self.all_users(admin_session_key, conn = connection, opts={})
  return do_request("/users", conn, opts_work(opts, admin_session_key))
end
check_salts() click to toggle source
# File lib/eme/admin_user.rb, line 90
def self.check_salts
  if(self.settings[:salt].nil? || self.settings[:pepper].nil? || self.settings[:salt].length < 15 || self.settings[:pepper].length < 15)
    raise RuntimeError, "Requires settings salt and pepper, min length 15."
  end
end
heartbeat(admin_session_key, conn = connection, opts={}) click to toggle source

requires admin_session_key. Just returns true or false if you are still logged in or not. if still logged in: returns json {“logged_in”: true, “permissions_updated”: false} Most likely to be used via AJAX on the front end.

# File lib/eme/admin_user.rb, line 43
def self.heartbeat(admin_session_key, conn = connection, opts={})
  return do_request("/users/heartbeat", conn, opts_work(opts, admin_session_key))
end
ipaddress_factor(ip) click to toggle source
# File lib/eme/admin_user.rb, line 96
def self.ipaddress_factor(ip)
  ip.gsub(/\./, "d").to_i(17) * 93
end
login(email, password, conn = connection, opts = {}) click to toggle source

if successful username/password combo, it should return a unique 16 digit hex session id for the user.

{"admin_session_key": "432423h13h341ab2", "error": false}

if failed it should return error true, and error message.

{"error": true, "message": "Incorrect email/password combination."}

NOTE: This is the only call that does not require an admin_session_key in the headers/cookies, still requires the API_KEY.

# File lib/eme/admin_user.rb, line 10
def self.login(email, password, conn = connection, opts = {})
  opts[:method] = :post
  opts[:body] = {:email => email, :password => password}.to_json
  return do_request("/users/login", conn, opts_work(opts))
end
logout(admin_session_key, conn = connection, opts = {}) click to toggle source

a get or delete call. It only requires the first 8 digits of the admin_session_key, but will accept all 16 digits.

# File lib/eme/admin_user.rb, line 17
def self.logout(admin_session_key, conn = connection, opts = {})
  opts[:method] = :delete
  return do_request("/users/logout", conn, opts_work(opts, admin_session_key))
end
me(admin_session_key, conn = connection, opts={}) click to toggle source

This is the call that returns the current user data, including permissions and roles, this will be converted to a Session object that will be used by the app to get your logged in status, and permissions, etc.

# File lib/eme/admin_user.rb, line 48
def self.me(admin_session_key, conn = connection, opts={})
  tmp = do_request("/users/me", conn, opts_work(opts, admin_session_key))
end
role(role_id, admin_session_key, conn = connection, opts={}) click to toggle source

returns specific a role's data; id, name, permissions, users with role.

# File lib/eme/admin_user.rb, line 60
def self.role(role_id, admin_session_key, conn = connection, opts={})
  return do_request("/roles/#{role_id}", conn, opts_work(opts, admin_session_key))
end
update_role(role_data, admin_session_key, conn = connection, opts={}) click to toggle source

takes a hash of role info(name, and permissions), and posts it to the service to edit the role, if they have permissions.

# File lib/eme/admin_user.rb, line 65
def self.update_role(role_data, admin_session_key, conn = connection, opts={})
  opts[:method] = :post
  opts[:body] = role_data.to_json
  return do_request("/roles/#{user_id}", conn, opts_work(opts, admin_session_key))
end
update_user(user_data, admin_session_key, conn = connection, opts={}) click to toggle source

takes a hash of user info, and posts it to the service to edit the user record, if they have permissions. if there is a password change it requires the fields password, and confirmed password.

# File lib/eme/admin_user.rb, line 34
def self.update_user(user_data, admin_session_key, conn = connection, opts={})
  opts[:method] = :post
  opts[:body] = user_data.to_json
  return do_request("/users/#{user_id}", conn, opts_work(opts, admin_session_key))
end
user(user_id, admin_session_key, conn = connection, opts={}) click to toggle source

returns specific users data, DO NOT include session_key_id, or password/hashed_password. Requires permission check.

# File lib/eme/admin_user.rb, line 28
def self.user(user_id, admin_session_key, conn = connection, opts={})
  return do_request("/users/#{user_id}", conn, opts_work(opts, admin_session_key))
end

Private Class Methods

opts_work(opts, admin_session_key = nil) click to toggle source
# File lib/eme/admin_user.rb, line 103
def self.opts_work(opts, admin_session_key = nil)
  if opts[:headers].nil?
    opts[:headers] = @@auth_opts
  else
    opts[:headers].merge(@@auth_opts)
  end
  opts[:headers]["Authorization"] = "#{opts[:headers]["Authorization"]}|#{admin_session_key}" unless admin_session_key.nil?
  #opts[:headers]["Authorization"] += "|"+admin_session_key unless admin_session_key.nil?
  return opts
end