module PeRbac::User
Public Class Methods
create_user(login, email, display_name, password=nil, role_ids=[])
click to toggle source
# File lib/pe_rbac/user.rb, line 60 def self.create_user(login, email, display_name, password=nil, role_ids=[]) # completely different to what the PE console sends... :/ # Elegantly convert role_ids to an array if it isn't one already user={ "login" => login, "email" => email, "display_name" => display_name, "role_ids" => Array(role_ids), } if password user["password"] = password end PeRbac::Core::request(:post, '/users', user) ? true : false end
ensure_user(login, email, display_name, password=nil, role_ids=[])
click to toggle source
# File lib/pe_rbac/user.rb, line 46 def self.ensure_user(login, email, display_name, password=nil, role_ids=[]) if get_user_id(login) # existing user update_user(login, email, display_name, role_ids) if password PeRbac::Action::reset_password(login, password) end else # new user create_user(login, email, display_name, password, role_ids) end end
get_user(id)
click to toggle source
# File lib/pe_rbac/user.rb, line 41 def self.get_user(id) resp = PeRbac::Core::request(:get, "/users/#{id}") resp ? JSON.parse(resp.body) : false end
get_user_id(login)
click to toggle source
get the user id for a login or false if missing eg 'admin' => '42bf351c-f9ec-40af-84ad-e976fec7f4bd'
# File lib/pe_rbac/user.rb, line 28 def self.get_user_id(login) users = get_users id = false i = 0 while !id and i < users.length do if users[i]['login'] == login id = users[i]['id'] end i += 1 end id end
get_users()
click to toggle source
# File lib/pe_rbac/user.rb, line 22 def self.get_users JSON.parse(PeRbac::Core::request(:get, '/users').body) end
update_user(login, email=nil, display_name=nil, role_ids=nil, is_revoked=nil)
click to toggle source
# File lib/pe_rbac/user.rb, line 77 def self.update_user(login, email=nil, display_name=nil, role_ids=nil, is_revoked=nil) user = get_user(get_user_id(login)) status = false if user if ! user['remote'] # trade-off for auto id lookup is that you cant change logins... user['login'] = login ? login : user['login'] user['email'] = email ? email : user['email'] user['display_name'] = display_name ? display_name : user['display_name'] end user['role_ids'] = role_ids ? Array(role_ids) : user['role_ids'] user['is_revoked'] = (! is_revoked.nil?) ? is_revoked : user['is_revoked'] status = PeRbac::Core::request(:put, "/users/#{user['id']}", user) ? true : false end status end