in django_airavata/apps/auth/views.py [0:0]
def create_account(request):
if request.method == 'POST':
form = forms.CreateAccountForm(request.POST)
if form.is_valid():
try:
username = form.cleaned_data['username']
email = form.cleaned_data['email']
first_name = form.cleaned_data['first_name']
last_name = form.cleaned_data['last_name']
password = form.cleaned_data['password']
success = iam_admin_client.register_user(
username, email, first_name, last_name, password)
if not success:
form.add_error(None, ValidationError(
"Failed to register user with IAM service"))
else:
next = form.cleaned_data['next']
_create_and_send_email_verification_link(
request, username, email, first_name, last_name, next)
messages.success(
request,
"Account request processed successfully. Before you "
"can login you need to confirm your email address. "
"We've sent you an email with a link that you should "
"click on to complete the account creation process.")
return redirect(
reverse('django_airavata_auth:create_account'))
except Exception as e:
logger.exception(
"Failed to create account for user", exc_info=e, extra={'request', request})
form.add_error(None, ValidationError(e.message))
else:
form = forms.CreateAccountForm(initial=request.GET)
return render(request, 'django_airavata_auth/create_account.html', {
'options': settings.AUTHENTICATION_OPTIONS,
'form': form
})