in server/TenantManagementService/user-management.py [0:0]
def get_users(event, context):
tenant_id = event['requestContext']['authorizer']['tenantId']
user_pool_id = event['requestContext']['authorizer']['userPoolId']
user_role = event['requestContext']['authorizer']['userRole']
users = []
tracer.put_annotation(key="TenantId", value=tenant_id)
logger.log_with_tenant_context(event, "Request received to get user")
if (auth_manager.isTenantAdmin(user_role) or auth_manager.isSystemAdmin(user_role)):
response = client.list_users(
UserPoolId=user_pool_id
)
logger.log_with_tenant_context(event, response)
num_of_users = len(response['Users'])
metrics_manager.record_metric(event, "Number of users", "Count", num_of_users)
if (num_of_users > 0):
for user in response['Users']:
is_same_tenant_user = False
user_info = UserInfo()
for attr in user["Attributes"]:
if(attr["Name"] == "custom:tenantId" and attr["Value"] == tenant_id):
is_same_tenant_user = True
user_info.tenant_id = attr["Value"]
if(attr["Name"] == "custom:userRole"):
user_info.user_role = attr["Value"]
if(attr["Name"] == "email"):
user_info.email = attr["Value"]
if(is_same_tenant_user):
user_info.enabled = user["Enabled"]
user_info.created = user["UserCreateDate"]
user_info.modified = user["UserLastModifiedDate"]
user_info.status = user["UserStatus"]
user_info.user_name = user["Username"]
users.append(user_info)
return utils.generate_response(users)
else:
logger.log_with_tenant_context(event, "Request completed as unauthorized.")
return utils.create_unauthorized_response()