From c651343c43e8e171ed6e339fa02bf945ae3f5bbd Mon Sep 17 00:00:00 2001 From: Justin King Date: Sat, 18 Aug 2018 15:53:08 +1000 Subject: [PATCH 1/2] Modified get_users to return all users from a user pool instead of only the first 60 --- warrant/__init__.py | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/warrant/__init__.py b/warrant/__init__.py index 2a0c231..f823ec0 100644 --- a/warrant/__init__.py +++ b/warrant/__init__.py @@ -466,14 +466,23 @@ def get_users(self, attr_map=None): :param attr_map: :return: """ - kwargs = {"UserPoolId":self.user_pool_id} + response = self.client.list_users(UserPoolId=self.user_pool_id) + user_list = response.get("Users") + page_token = response.get("PaginationToken") + + while page_token: + response = self.client.list_users( + UserPoolId=self.user_pool_id, + PaginationToken=page_token + ) + user_list.extend(response.get("Users")) + page_token = response.get("PaginationToken") - response = self.client.list_users(**kwargs) return [self.get_user_obj(user.get('Username'), attribute_list=user.get('Attributes'), metadata={'username':user.get('Username')}, attr_map=attr_map) - for user in response.get('Users')] + for user in user_list] def admin_get_user(self, attr_map=None): """ From 386a7bbc7558a358f7fbbbc36456a7b8ab198bb7 Mon Sep 17 00:00:00 2001 From: Justin King Date: Sat, 18 Aug 2018 16:01:12 +1000 Subject: [PATCH 2/2] updated get_users docstring --- warrant/__init__.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/warrant/__init__.py b/warrant/__init__.py index f823ec0..4f7ac61 100644 --- a/warrant/__init__.py +++ b/warrant/__init__.py @@ -463,8 +463,9 @@ def get_users(self, attr_map=None): """ Returns all users for a user pool. Returns instances of the self.user_class. - :param attr_map: - :return: + :param attr_map: Dictionary map from Cognito attributes to attribute + names we would like to show to our users + :return: list of self.user_class """ response = self.client.list_users(UserPoolId=self.user_pool_id) user_list = response.get("Users")