class RippleKeycloak::Group
Public Class Methods
add_role(group_id, role_name)
click to toggle source
# File lib/ripple_keycloak/group.rb, line 17 def add_role(group_id, role_name) role = RippleKeycloak::Role.find_by(field: 'name', value: role_name) client.post("groups/#{group_id}/role-mappings/realm", [role]) end
create(name:, parent: false)
click to toggle source
# File lib/ripple_keycloak/group.rb, line 8 def create(name:, parent: false) payload = { name: name } path = create_path(parent) response = client.post(path, payload) group_id = response.headers['location'].split('/').last group_id end
members(group_id)
click to toggle source
# File lib/ripple_keycloak/group.rb, line 27 def members(group_id) client.get("groups/#{group_id}/members") end
remove_role(group_id, role_name)
click to toggle source
# File lib/ripple_keycloak/group.rb, line 22 def remove_role(group_id, role_name) role = RippleKeycloak::Role.find_by(field: 'name', value: role_name) client.delete("groups/#{group_id}/role-mappings/realm", [role]) end
Private Class Methods
create_path(parent)
click to toggle source
# File lib/ripple_keycloak/group.rb, line 33 def create_path(parent) if parent parent_group = find_by(field: 'name', value: parent) raise GroupNotFoundError, parent unless parent_group path = "groups/#{parent_group['id']}/children" else path = 'groups' end path end