|
@ -2205,6 +2205,30 @@ class KeycloakAdmin: |
|
|
) |
|
|
) |
|
|
return raise_error_from_response(data_raw, KeycloakPostError, expected_codes=[204]) |
|
|
return raise_error_from_response(data_raw, KeycloakPostError, expected_codes=[204]) |
|
|
|
|
|
|
|
|
|
|
|
def remove_composite_client_roles_from_role(self, client_role_id, role_name, roles): |
|
|
|
|
|
"""Remove composite roles from a client role. |
|
|
|
|
|
|
|
|
|
|
|
:param client_role_id: id of client (not client-id) |
|
|
|
|
|
:type client_role_id: str |
|
|
|
|
|
:param role_name: The name of the role |
|
|
|
|
|
:type role_name: str |
|
|
|
|
|
:param roles: roles list or role (use RoleRepresentation) to be removed |
|
|
|
|
|
:type roles: list |
|
|
|
|
|
:return: Keycloak server response |
|
|
|
|
|
:rtype: bytes |
|
|
|
|
|
""" |
|
|
|
|
|
payload = roles if isinstance(roles, list) else [roles] |
|
|
|
|
|
params_path = { |
|
|
|
|
|
"realm-name": self.connection.realm_name, |
|
|
|
|
|
"id": client_role_id, |
|
|
|
|
|
"role-name": role_name, |
|
|
|
|
|
} |
|
|
|
|
|
data_raw = self.connection.raw_delete( |
|
|
|
|
|
urls_patterns.URL_ADMIN_CLIENT_ROLES_COMPOSITE_CLIENT_ROLE.format(**params_path), |
|
|
|
|
|
data=json.dumps(payload), |
|
|
|
|
|
) |
|
|
|
|
|
return raise_error_from_response(data_raw, KeycloakDeleteError, expected_codes=[204]) |
|
|
|
|
|
|
|
|
def update_client_role(self, client_id, role_name, payload): |
|
|
def update_client_role(self, client_id, role_name, payload): |
|
|
"""Update a client role. |
|
|
"""Update a client role. |
|
|
|
|
|
|
|
@ -6395,6 +6419,30 @@ class KeycloakAdmin: |
|
|
) |
|
|
) |
|
|
return raise_error_from_response(data_raw, KeycloakPostError, expected_codes=[204]) |
|
|
return raise_error_from_response(data_raw, KeycloakPostError, expected_codes=[204]) |
|
|
|
|
|
|
|
|
|
|
|
async def a_remove_composite_client_roles_from_role(self, client_role_id, role_name, roles): |
|
|
|
|
|
"""Remove composite roles from a client role asynchronously. |
|
|
|
|
|
|
|
|
|
|
|
:param client_role_id: id of client (not client-id) |
|
|
|
|
|
:type client_role_id: str |
|
|
|
|
|
:param role_name: The name of the role |
|
|
|
|
|
:type role_name: str |
|
|
|
|
|
:param roles: roles list or role (use RoleRepresentation) to be removed |
|
|
|
|
|
:type roles: list |
|
|
|
|
|
:return: Keycloak server response |
|
|
|
|
|
:rtype: bytes |
|
|
|
|
|
""" |
|
|
|
|
|
payload = roles if isinstance(roles, list) else [roles] |
|
|
|
|
|
params_path = { |
|
|
|
|
|
"realm-name": self.connection.realm_name, |
|
|
|
|
|
"id": client_role_id, |
|
|
|
|
|
"role-name": role_name, |
|
|
|
|
|
} |
|
|
|
|
|
data_raw = await self.connection.a_raw_delete( |
|
|
|
|
|
urls_patterns.URL_ADMIN_CLIENT_ROLES_COMPOSITE_CLIENT_ROLE.format(**params_path), |
|
|
|
|
|
data=json.dumps(payload), |
|
|
|
|
|
) |
|
|
|
|
|
return raise_error_from_response(data_raw, KeycloakDeleteError, expected_codes=[204]) |
|
|
|
|
|
|
|
|
async def a_update_client_role(self, client_id, role_name, payload): |
|
|
async def a_update_client_role(self, client_id, role_name, payload): |
|
|
"""Update a client role asynchronously. |
|
|
"""Update a client role asynchronously. |
|
|
|
|
|
|
|
|