module PeRbac::Role
Public Class Methods
create_role(display_name, description=display_name, permissions=[], user_ids=[], group_ids=[])
click to toggle source
docs.puppet.com/pe/latest/rbac_roles_v1.html#post-roles
# File lib/pe_rbac/role.rb, line 56 def self.create_role(display_name, description=display_name, permissions=[], user_ids=[], group_ids=[]) safe_perms = Permission::safe_permissions(permissions) role = { "permissions" => safe_perms, "user_ids" => Array(user_ids), "group_ids" => Array(group_ids), "display_name" => display_name, "description" => description, } PeRbac::Core::request(:post, '/roles', role) ? true : false end
ensure_role(display_name, description, permissions=[], user_ids=[])
click to toggle source
CREATE
# File lib/pe_rbac/role.rb, line 47 def self.ensure_role(display_name, description, permissions=[], user_ids=[]) if get_role_id(display_name) update_role(display_name, description, permissions, user_ids) else create_role(display_name, description, permissions, user_ids) end end
get_role(id)
click to toggle source
# File lib/pe_rbac/role.rb, line 28 def self.get_role(id) resp = PeRbac::Core::request(:get, "/roles/#{id}") resp ? JSON.parse(resp.body) : false end
get_role_id(display_name)
click to toggle source
# File lib/pe_rbac/role.rb, line 33 def self.get_role_id(display_name) i=0 found=false roles = get_roles() while !found and i < roles.length do if roles[i]['display_name'] == display_name found = roles[i]['id'] end i+=1 end found end
get_roles()
click to toggle source
role
# File lib/pe_rbac/role.rb, line 24 def self.get_roles JSON.parse(PeRbac::Core::request(:get, "/roles").body) end
update_role(display_name, description=nil, permissions=nil, user_ids=nil, group_ids=nil)
click to toggle source
# File lib/pe_rbac/role.rb, line 69 def self.update_role(display_name, description=nil, permissions=nil, user_ids=nil, group_ids=nil) role_id = get_role_id(display_name) safe_perms = Permission::safe_permissions(permissions) status = false if role_id role = get_role(role_id) role['display_name'] = display_name ? display_name : role['display_name'] role['description'] = description ? display_name : role['description'] role['permissions'] = safe_perms ? safe_perms : role['permissions'] role['user_ids'] = user_ids ? Array(user_ids) : role['user_ids'] role['group_ids'] = group_ids ? Array(group_ids) : role['group_ids'] PeRbac::Core::request(:put, "/roles/#{role_id}", role) status = true end status end