|
|
@ -988,7 +988,7 @@ class KeycloakAdmin: |
|
|
|
data_raw = self.raw_put( |
|
|
|
urls_patterns.URL_ADMIN_SEND_UPDATE_ACCOUNT.format(**params_path), |
|
|
|
data=json.dumps(payload), |
|
|
|
**params_query |
|
|
|
**params_query, |
|
|
|
) |
|
|
|
return raise_error_from_response(data_raw, KeycloakPutError) |
|
|
|
|
|
|
@ -1012,7 +1012,7 @@ class KeycloakAdmin: |
|
|
|
data_raw = self.raw_put( |
|
|
|
urls_patterns.URL_ADMIN_SEND_VERIFY_EMAIL.format(**params_path), |
|
|
|
data={}, |
|
|
|
**params_query |
|
|
|
**params_query, |
|
|
|
) |
|
|
|
return raise_error_from_response(data_raw, KeycloakPutError) |
|
|
|
|
|
|
@ -1657,6 +1657,62 @@ class KeycloakAdmin: |
|
|
|
urls_patterns.URL_ADMIN_REALM_ROLES_MEMBERS.format(**params_path), query |
|
|
|
) |
|
|
|
|
|
|
|
def get_default_realm_role_id(self): |
|
|
|
"""Get the ID of the default realm role. |
|
|
|
|
|
|
|
:return: Realm role ID |
|
|
|
:rtype: str |
|
|
|
""" |
|
|
|
all_realm_roles = self.get_realm_roles() |
|
|
|
default_realm_roles = [ |
|
|
|
realm_role |
|
|
|
for realm_role in all_realm_roles |
|
|
|
if realm_role["name"] == f"default-roles-{self.realm_name}" |
|
|
|
] |
|
|
|
return default_realm_roles[0]["id"] |
|
|
|
|
|
|
|
def get_realm_default_roles(self): |
|
|
|
"""Get all the default realm roles. |
|
|
|
|
|
|
|
:return: Keycloak Server Response (UserRepresentation) |
|
|
|
:rtype: list |
|
|
|
""" |
|
|
|
params_path = {"realm-name": self.realm_name, "role-id": self.get_default_realm_role_id()} |
|
|
|
data_raw = self.raw_get( |
|
|
|
urls_patterns.URL_ADMIN_REALM_ROLE_COMPOSITES_REALM.format(**params_path) |
|
|
|
) |
|
|
|
return raise_error_from_response(data_raw, KeycloakGetError) |
|
|
|
|
|
|
|
def remove_realm_default_roles(self, payload): |
|
|
|
"""Remove a set of default realm roles. |
|
|
|
|
|
|
|
:param payload: List of RoleRepresentations |
|
|
|
:type payload: list |
|
|
|
:return: Keycloak Server Response |
|
|
|
:rtype: dict |
|
|
|
""" |
|
|
|
params_path = {"realm-name": self.realm_name, "role-id": self.get_default_realm_role_id()} |
|
|
|
data_raw = self.raw_delete( |
|
|
|
urls_patterns.URL_ADMIN_REALM_ROLE_COMPOSITES.format(**params_path), |
|
|
|
data=json.dumps(payload), |
|
|
|
) |
|
|
|
return raise_error_from_response(data_raw, KeycloakDeleteError) |
|
|
|
|
|
|
|
def add_realm_default_roles(self, payload): |
|
|
|
"""Add a set of default realm roles. |
|
|
|
|
|
|
|
:param payload: List of RoleRepresentations |
|
|
|
:type payload: list |
|
|
|
:return: Keycloak Server Response |
|
|
|
:rtype: dict |
|
|
|
""" |
|
|
|
params_path = {"realm-name": self.realm_name, "role-id": self.get_default_realm_role_id()} |
|
|
|
data_raw = self.raw_post( |
|
|
|
urls_patterns.URL_ADMIN_REALM_ROLE_COMPOSITES.format(**params_path), |
|
|
|
data=json.dumps(payload), |
|
|
|
) |
|
|
|
return raise_error_from_response(data_raw, KeycloakPostError) |
|
|
|
|
|
|
|
def get_client_roles(self, client_id, brief_representation=True): |
|
|
|
"""Get all roles for the client. |
|
|
|
|
|
|
@ -2664,7 +2720,7 @@ class KeycloakAdmin: |
|
|
|
data_raw = self.raw_post( |
|
|
|
urls_patterns.URL_ADMIN_USER_STORAGE.format(**params_path), |
|
|
|
data=json.dumps(data), |
|
|
|
**params_query |
|
|
|
**params_query, |
|
|
|
) |
|
|
|
return raise_error_from_response(data_raw, KeycloakPostError) |
|
|
|
|
|
|
|