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