class EME::AdminUser
Public Class Methods
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
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
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
# 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
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
# File lib/eme/admin_user.rb, line 96 def self.ipaddress_factor(ip) ip.gsub(/\./, "d").to_i(17) * 93 end
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
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
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
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
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
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
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
# 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