Module: PeRbac::Group

Defined in:
lib/pe_rbac/group.rb

Class Method Summary collapse

Class Method Details

.create_group(login, role_ids = []) ⇒ Object



57
58
59
60
61
62
63
64
65
66
# File 'lib/pe_rbac/group.rb', line 57

def self.create_group(, 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"         => ,
    "role_ids"      => Array(role_ids),
  }

  PeRbac::Core::request(:post, '/groups', group) ? true : false
end

.delete_group(login) ⇒ Object



80
81
82
83
84
85
86
87
# File 'lib/pe_rbac/group.rb', line 80

def self.delete_group()
  group = get_group(get_group_id())
  status = false
  if group
    PeRbac::Core::request(:delete, "/groups/#{group['id']}") ? true : false
  end
  status
end

.ensure_group(login, role_ids) ⇒ Object



46
47
48
49
50
51
52
53
54
55
# File 'lib/pe_rbac/group.rb', line 46

def self.ensure_group(, role_ids)
  if get_group_id()
    # existing group
    update_group(, role_ids)
  else
    # new group
    create_group(, role_ids)
  end

end

.get_group(id) ⇒ Object



41
42
43
44
# 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) ⇒ 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/group.rb', line 28

def self.get_group_id()
  groups = get_groups
  id = false
  i = 0
  while !id and i < groups.length do
    if groups[i]['login'] == 
      id = groups[i]['id']
    end
    i += 1
  end
  id
end

.get_groupsObject



22
23
24
# 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 = []) ⇒ Object



68
69
70
71
72
73
74
75
76
77
78
# File 'lib/pe_rbac/group.rb', line 68

def self.update_group(, role_ids=[])
  group = get_group(get_group_id())
  status = false
  if group
    group['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