Module: PeRbac::User
- Defined in:
- lib/pe_rbac/user.rb
Class Method Summary collapse
- .create_user(login, email, display_name, password = nil, role_ids = []) ⇒ Object
- .ensure_user(login, email, display_name, password = nil, role_ids = []) ⇒ Object
- .get_user(id) ⇒ Object
-
.get_user_id(login) ⇒ Object
get the user id for a login or false if missing eg ‘admin’ => ‘42bf351c-f9ec-40af-84ad-e976fec7f4bd’.
- .get_users ⇒ Object
- .update_user(login, email = nil, display_name = nil, role_ids = nil, is_revoked = nil) ⇒ Object
Class Method Details
.create_user(login, email, display_name, password = nil, role_ids = []) ⇒ Object
60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
# 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 = []) ⇒ Object
46 47 48 49 50 51 52 53 54 55 56 57 58 |
# 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) ⇒ Object
41 42 43 44 |
# 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) ⇒ Object
get the user id for a login or false if missing eg ‘admin’ => ‘42bf351c-f9ec-40af-84ad-e976fec7f4bd’
28 29 30 31 32 33 34 35 36 37 38 39 |
# 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 ⇒ Object
22 23 24 |
# 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) ⇒ Object
77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 |
# 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 |