in django_airavata/apps/auth/views.py [0:0]
def verify_email(request, code):
try:
email_verification = models.EmailVerification.objects.get(
verification_code=code)
email_verification.verified = True
email_verification.save()
# Check if user is enabled, if so redirect to login page
username = email_verification.username
logger.debug("Email address verified for {}".format(username))
login_url = reverse('django_airavata_auth:login')
if email_verification.next:
login_url += "?" + urlencode({'next': email_verification.next})
if iam_admin_client.is_user_enabled(username):
logger.debug("User {} is already enabled".format(username))
messages.success(
request,
"Your account has already been successfully created. "
"Please log in now.")
return redirect(login_url)
else:
logger.debug("Enabling user {}".format(username))
# enable user and inform admins
iam_admin_client.enable_user(username)
user_profile = iam_admin_client.get_user(username)
email_address = user_profile.emails[0]
first_name = user_profile.firstName
last_name = user_profile.lastName
utils.send_new_user_email(request,
username,
email_address,
first_name,
last_name)
messages.success(
request,
"Your account has been successfully created. "
"Please log in now.")
return redirect(login_url)
except ObjectDoesNotExist:
# if doesn't exist, give user a form where they can enter their
# username to resend verification code
logger.exception("EmailVerification object doesn't exist for "
"code {}".format(code), extra={'request': request})
messages.error(
request,
"Email verification failed. Please enter your username and we "
"will send you another email verification link.")
return redirect(reverse('django_airavata_auth:resend_email_link'))
except Exception:
logger.exception("Email verification processing failed!", extra={'request': request})
messages.error(
request,
"Email verification failed. Please try clicking the email "
"verification link again later.")
return redirect(reverse('django_airavata_auth:create_account'))