in django_airavata/apps/api/views.py [0:0]
def _get_unverified_email_user_profiles(
self, limit=-1, offset=0, username=None):
unverified_emails = EmailVerification.objects.filter(
verified=False).order_by('username').values('username').distinct()
if username is not None:
unverified_emails = unverified_emails.filter(username=username)
if limit > 0:
unverified_emails = unverified_emails[offset:offset + limit]
results = []
for unverified_email in unverified_emails:
unverified_username = unverified_email['username']
if iam_admin_client.is_user_exist(unverified_username):
user_profile = iam_admin_client.get_user(unverified_username)
if (user_profile.State == Status.CONFIRMED or
user_profile.State == Status.ACTIVE):
# TODO: test this
EmailVerification.objects.filter(
username=unverified_username).update(
verified=True)
continue
results.append({
'userId': user_profile.userId,
'gatewayId': user_profile.gatewayId,
'email': user_profile.emails[0],
'firstName': user_profile.firstName,
'lastName': user_profile.lastName,
'enabled': user_profile.State == Status.ACTIVE,
'emailVerified': (user_profile.State == Status.CONFIRMED or
user_profile.State == Status.ACTIVE),
'creationTime': user_profile.creationTime,
})
else:
# Delete the EmailVerification records since that user no
# longer exists in the IAM service
EmailVerification.objects.filter(
username=unverified_username).delete()
return results