diff --git a/backend/areas/users/user_service.py b/backend/areas/users/user_service.py index 888c14266c2fad4541525de9b7dc43bdd9901086..ebb965a1b494d2d8d559c21d477e0307bb442f56 100644 --- a/backend/areas/users/user_service.py +++ b/backend/areas/users/user_service.py @@ -22,12 +22,18 @@ kratos_identity_api = identity_api.IdentityApi(kratos_client) class UserService: @staticmethod def get_users(): - res = KratosApi.get("/admin/identities").json() + page = 1 userList = [] - for r in res: - # removed the app role assignment function, passing simple user data - # userList.append(UserService.__insertAppRoleToUser(r["id"], r)) - userList.append(r) + while page > 0: + res = KratosApi.get("/admin/identities?per_page=1000&page={}".format(page)).json() + for r in res: + # removed the app role assignment function, passing simple user data + # userList.append(UserService.__insertAppRoleToUser(r["id"], r)) + userList.append(r) + if len(res) == 0: + page = -1 + else: + page = page + 1 return userList diff --git a/backend/helpers/kratos_user.py b/backend/helpers/kratos_user.py index 3615809e0adcd29abcdd167a69bb4ca6cf7aafb0..894332f1e87fc387ebf2106ad021dc1d231c06a3 100644 --- a/backend/helpers/kratos_user.py +++ b/backend/helpers/kratos_user.py @@ -133,12 +133,18 @@ class KratosUser(): kratos_id = None # Get out user ID by iterating over all available IDs - data = api.list_identities() - for kratos_obj in data: - # Unique identifier we use - if kratos_obj.traits['email'] == email: - kratos_id = str(kratos_obj.id) - return KratosUser(api, kratos_id) + page = 1 + while page > 0: + data = api.list_identities(per_page=1000, page=page) + for kratos_obj in data: + # Unique identifier we use + if kratos_obj.traits['email'] == email: + kratos_id = str(kratos_obj.id) + return KratosUser(api, kratos_id) + if len(data) == 0: + page = -1 + else: + page = page + 1 return None @@ -151,11 +157,17 @@ class KratosUser(): kratos_id = None return_list = [] - # Get out user ID by iterating over all available IDs - data = api.list_identities() - for kratos_obj in data: - kratos_id = str(kratos_obj.id) - return_list.append(KratosUser(api, kratos_id)) + # Get out user ID by iterating over all available ID + page = 1 + while page > 0: + data = api.list_identities(per_page=1000, page=page) + for kratos_obj in data: + kratos_id = str(kratos_obj.id) + return_list.append(KratosUser(api, kratos_id)) + if len(data) == 0: + page = -1 + else: + page = page + 1 return return_list