|
|
@ -229,6 +229,13 @@ class KeycloakAdmin: |
|
|
|
page += 1 |
|
|
|
return results |
|
|
|
|
|
|
|
def __fetch_paginated(self, url, query=None): |
|
|
|
query = query or {} |
|
|
|
|
|
|
|
return raise_error_from_response( |
|
|
|
self.raw_get(url, **query), |
|
|
|
KeycloakGetError) |
|
|
|
|
|
|
|
def import_realm(self, payload): |
|
|
|
""" |
|
|
|
Import a new realm from a RealmRepresentation. Realm name must be unique. |
|
|
@ -326,8 +333,14 @@ class KeycloakAdmin: |
|
|
|
:param query: Query parameters (optional) |
|
|
|
:return: users list |
|
|
|
""" |
|
|
|
query = query or {} |
|
|
|
params_path = {"realm-name": self.realm_name} |
|
|
|
return self.__fetch_all(URL_ADMIN_USERS.format(**params_path), query) |
|
|
|
url = URL_ADMIN_USERS.format(**params_path) |
|
|
|
|
|
|
|
if "first" in query or "max" in query: |
|
|
|
return self.__fetch_paginated(url, query) |
|
|
|
|
|
|
|
return self.__fetch_all(url, query) |
|
|
|
|
|
|
|
def create_idp(self, payload): |
|
|
|
""" |
|
|
@ -618,7 +631,7 @@ class KeycloakAdmin: |
|
|
|
data_raw = self.raw_get(URL_ADMIN_SERVER_INFO) |
|
|
|
return raise_error_from_response(data_raw, KeycloakGetError) |
|
|
|
|
|
|
|
def get_groups(self): |
|
|
|
def get_groups(self, query=None): |
|
|
|
""" |
|
|
|
Returns a list of groups belonging to the realm |
|
|
|
|
|
|
@ -627,8 +640,14 @@ class KeycloakAdmin: |
|
|
|
|
|
|
|
:return: array GroupRepresentation |
|
|
|
""" |
|
|
|
query = query or {} |
|
|
|
params_path = {"realm-name": self.realm_name} |
|
|
|
return self.__fetch_all(URL_ADMIN_GROUPS.format(**params_path)) |
|
|
|
url = URL_ADMIN_USERS.format(**params_path) |
|
|
|
|
|
|
|
if "first" in query or "max" in query: |
|
|
|
return self.__fetch_paginated(url, query) |
|
|
|
|
|
|
|
return self.__fetch_all(url, query) |
|
|
|
|
|
|
|
def get_group(self, group_id): |
|
|
|
""" |
|
|
@ -680,7 +699,12 @@ class KeycloakAdmin: |
|
|
|
:return: Keycloak server response (UserRepresentation) |
|
|
|
""" |
|
|
|
params_path = {"realm-name": self.realm_name, "id": group_id} |
|
|
|
return self.__fetch_all(URL_ADMIN_GROUP_MEMBERS.format(**params_path), query) |
|
|
|
url = URL_ADMIN_USERS.format(**params_path) |
|
|
|
|
|
|
|
if "first" in query or "max" in query: |
|
|
|
return self.__fetch_paginated(url, query) |
|
|
|
|
|
|
|
return self.__fetch_all(url, query) |
|
|
|
|
|
|
|
def get_group_by_path(self, path, search_in_subgroups=False): |
|
|
|
""" |
|
|
|