From 2e1c625376c2d27c00bc42cd9f9b9208dfa582b1 Mon Sep 17 00:00:00 2001 From: Alex Zeleznikov Date: Thu, 4 Jan 2018 10:21:40 +0200 Subject: [PATCH] Add sync users function --- keycloak/keycloak_admin.py | 11 ++++++++++- keycloak/urls_patterns.py | 2 ++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/keycloak/keycloak_admin.py b/keycloak/keycloak_admin.py index 6c9e32b..1de4fdf 100644 --- a/keycloak/keycloak_admin.py +++ b/keycloak/keycloak_admin.py @@ -17,7 +17,8 @@ from .urls_patterns import URL_ADMIN_USERS_COUNT, URL_ADMIN_USER, URL_ADMIN_USER_CONSENTS, \ URL_ADMIN_SEND_UPDATE_ACCOUNT, URL_ADMIN_RESET_PASSWORD, URL_ADMIN_SEND_VERIFY_EMAIL, URL_ADMIN_GET_SESSIONS, \ - URL_ADMIN_SERVER_INFO, URL_ADMIN_CLIENTS, URL_ADMIN_CLIENT, URL_ADMIN_CLIENT_ROLES, URL_ADMIN_REALM_ROLES, URL_ADMIN_USER_CLIENT_ROLES + URL_ADMIN_SERVER_INFO, URL_ADMIN_CLIENTS, URL_ADMIN_CLIENT, URL_ADMIN_CLIENT_ROLES, URL_ADMIN_REALM_ROLES, \ + URL_ADMIN_USER_CLIENT_ROLES, URL_ADMIN_USER_STORAGE from .keycloak_openid import KeycloakOpenID from .exceptions import raise_error_from_response, KeycloakGetError @@ -458,3 +459,11 @@ class KeycloakAdmin: data_raw = self.connection.raw_post(URL_ADMIN_USER_CLIENT_ROLES.format(**params_path), data=json.dumps(payload)) return raise_error_from_response(data_raw, KeycloakGetError, expected_code=204) + + def sync_users(self, storage_id, action): + data = {'action': action} + params_path = {"realm-name": self.realm_name, "id": storage_id} + params_query = {"action": action} + data_raw = self.connection.raw_post(URL_ADMIN_USER_STORAGE.format(**params_path), + data=json.dumps(data), **params_query) + return raise_error_from_response(data_raw, KeycloakGetError) diff --git a/keycloak/urls_patterns.py b/keycloak/urls_patterns.py index 33c04e9..24e9a59 100644 --- a/keycloak/urls_patterns.py +++ b/keycloak/urls_patterns.py @@ -42,3 +42,5 @@ URL_ADMIN_CLIENT = "admin/realms/{realm-name}/clients/{id}" URL_ADMIN_CLIENT_ROLES = "admin/realms/{realm-name}/clients/{id}/roles" URL_ADMIN_REALM_ROLES = "admin/realms/{realm-name}/roles" + +URL_ADMIN_USER_STORAGE = "admin/realms/{realm-name}/user-storage/{id}/sync"