module PeRbac::Group
Public Class Methods
create_group(login, role_ids=[])
click to toggle source
# File lib/pe_rbac/group.rb, line 57 def self.create_group(login, role_ids=[]) # completely different to what the PE console sends... :/ # Elegantly convert role_ids to an array if it isn't one already group={ "login" => login, "role_ids" => Array(role_ids), } PeRbac::Core::request(:post, '/groups', group) ? true : false end
delete_group(login)
click to toggle source
# File lib/pe_rbac/group.rb, line 80 def self.delete_group(login) group = get_group(get_group_id(login)) status = false if group PeRbac::Core::request(:delete, "/groups/#{group['id']}") ? true : false end status end
ensure_group(login, role_ids)
click to toggle source
# File lib/pe_rbac/group.rb, line 46 def self.ensure_group(login, role_ids) if get_group_id(login) # existing group update_group(login, role_ids) else # new group create_group(login, role_ids) end end
get_group(id)
click to toggle source
# File lib/pe_rbac/group.rb, line 41 def self.get_group(id) resp = PeRbac::Core::request(:get, "/groups/#{id}") resp ? JSON.parse(resp.body) : false end
get_group_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/group.rb, line 28 def self.get_group_id(login) groups = get_groups id = false i = 0 while !id and i < groups.length do if groups[i]['login'] == login id = groups[i]['id'] end i += 1 end id end
get_groups()
click to toggle source
# File lib/pe_rbac/group.rb, line 22 def self.get_groups JSON.parse(PeRbac::Core::request(:get, '/groups').body) end
update_group(login, role_ids=[])
click to toggle source
# File lib/pe_rbac/group.rb, line 68 def self.update_group(login, role_ids=[]) group = get_group(get_group_id(login)) status = false if group group['login'] = login ? login : group['login'] group['role_ids'] = role_ids ? Array(role_ids) : group['role_ids'] status = PeRbac::Core::request(:put, "/groups/#{group['id']}", group) ? true : false end status end