Browse Source

fix wrong and missing urls

* fix get_groups
* fix get_group_members
* add get_client_role_groups
pull/300/head
Leonard Marschke 3 years ago
parent
commit
babeb5ec0d
No known key found for this signature in database GPG Key ID: 3F686969B1D37480
  1. 21
      keycloak/keycloak_admin.py
  2. 1
      keycloak/urls_patterns.py

21
keycloak/keycloak_admin.py

@ -55,7 +55,8 @@ from .urls_patterns import URL_ADMIN_CLIENT_AUTHZ_PERMISSIONS, URL_ADMIN_CLIENT_
URL_ADMIN_REALM_EXPORT, URL_ADMIN_DELETE_USER_ROLE, URL_ADMIN_USER_LOGOUT, URL_ADMIN_FLOWS_EXECUTION, \
URL_ADMIN_FLOW, URL_ADMIN_DEFAULT_DEFAULT_CLIENT_SCOPES, URL_ADMIN_DEFAULT_DEFAULT_CLIENT_SCOPE, \
URL_ADMIN_DEFAULT_OPTIONAL_CLIENT_SCOPES, URL_ADMIN_DEFAULT_OPTIONAL_CLIENT_SCOPE, \
URL_ADMIN_USER_CREDENTIALS, URL_ADMIN_USER_CREDENTIAL, URL_ADMIN_CLIENT_PROTOCOL_MAPPERS
URL_ADMIN_USER_CREDENTIALS, URL_ADMIN_USER_CREDENTIAL, URL_ADMIN_CLIENT_PROTOCOL_MAPPERS, \
URL_ADMIN_CLIENT_ROLE_GROUPS
class KeycloakAdmin:
@ -705,7 +706,7 @@ class KeycloakAdmin:
"""
query = query or {}
params_path = {"realm-name": self.realm_name}
url = URL_ADMIN_USERS.format(**params_path)
url = URL_ADMIN_GROUPS.format(**params_path)
if "first" in query or "max" in query:
return self.__fetch_paginated(url, query)
@ -762,7 +763,7 @@ class KeycloakAdmin:
:return: Keycloak server response (UserRepresentation)
"""
params_path = {"realm-name": self.realm_name, "id": group_id}
url = URL_ADMIN_USERS.format(**params_path)
url = URL_ADMIN_GROUP_MEMBERS.format(**params_path)
if "first" in query or "max" in query:
return self.__fetch_paginated(url, query)
@ -1308,9 +1309,19 @@ class KeycloakAdmin:
:param query: Additional query parameters ( see https://www.keycloak.org/docs-api/11.0/rest-api/index.html#_clients_resource)
:return: Keycloak server response (UserRepresentation)
"""
params_path = {"realm-name": self.realm_name, "id":client_id, "role-name":role_name}
return self.__fetch_all(URL_ADMIN_CLIENT_ROLE_MEMBERS.format(**params_path) , query)
params_path = {"realm-name": self.realm_name, "id": client_id, "role-name": role_name}
return self.__fetch_all(URL_ADMIN_CLIENT_ROLE_MEMBERS.format(**params_path), query)
def get_client_role_groups(self, client_id, role_name, **query):
"""
Get group members by client role .
:param client_id: The client id
:param role_name: the name of role to be queried.
:param query: Additional query parameters (see https://www.keycloak.org/docs-api/11.0/rest-api/index.html#_clients_resource)
:return: Keycloak server response
"""
params_path = {"realm-name": self.realm_name, "id": client_id, "role-name": role_name}
return self.__fetch_all(URL_ADMIN_CLIENT_ROLE_GROUPS.format(**params_path), query)
def create_realm_role(self, payload, skip_exists=False):
"""

1
keycloak/urls_patterns.py

@ -73,6 +73,7 @@ URL_ADMIN_CLIENT_ROLES = URL_ADMIN_CLIENT + "/roles"
URL_ADMIN_CLIENT_ROLE = URL_ADMIN_CLIENT + "/roles/{role-name}"
URL_ADMIN_CLIENT_ROLES_COMPOSITE_CLIENT_ROLE = URL_ADMIN_CLIENT_ROLE + "/composites"
URL_ADMIN_CLIENT_ROLE_MEMBERS = URL_ADMIN_CLIENT + "/roles/{role-name}/users"
URL_ADMIN_CLIENT_ROLE_GROUPS = URL_ADMIN_CLIENT + "/roles/{role-name}/groups"
URL_ADMIN_CLIENT_AUTHZ_SETTINGS = URL_ADMIN_CLIENT + "/authz/resource-server/settings"
URL_ADMIN_CLIENT_AUTHZ_RESOURCES = URL_ADMIN_CLIENT + "/authz/resource-server/resource?max=-1"

Loading…
Cancel
Save