summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEvgeny Fadeev <evgeny.fadeev@gmail.com>2012-07-10 19:13:22 -0400
committerEvgeny Fadeev <evgeny.fadeev@gmail.com>2012-07-10 19:13:22 -0400
commite9bcd11d947c8f109855d88d9ebc0d11b8c69407 (patch)
tree8d4eb9bde26f1302e66c8b332fbeaa6b4053f4ed
parent1a46a54b3ab28801fc9941fbb3b5fbd79bb3843a (diff)
downloadaskbot-e9bcd11d947c8f109855d88d9ebc0d11b8c69407.tar.gz
askbot-e9bcd11d947c8f109855d88d9ebc0d11b8c69407.tar.bz2
askbot-e9bcd11d947c8f109855d88d9ebc0d11b8c69407.zip
added a user information verification step to the ldap flow
-rw-r--r--askbot/deps/django_authopenid/urls.py5
-rw-r--r--askbot/deps/django_authopenid/views.py57
2 files changed, 54 insertions, 8 deletions
diff --git a/askbot/deps/django_authopenid/urls.py b/askbot/deps/django_authopenid/urls.py
index f51939ab..b364aad6 100644
--- a/askbot/deps/django_authopenid/urls.py
+++ b/askbot/deps/django_authopenid/urls.py
@@ -18,6 +18,11 @@ urlpatterns = patterns('askbot.deps.django_authopenid.views',
),
url(r'^%s$' % _('register/'), 'register', name='user_register'),
url(
+ r'^%s$' % _('verify-user-information/'),
+ 'verify_user_information',
+ name = 'verify_user_information'
+ ),
+ url(
r'^%s$' % _('signup/'),
'signup_with_password',
name='user_signup_with_password'
diff --git a/askbot/deps/django_authopenid/views.py b/askbot/deps/django_authopenid/views.py
index efdb3a16..2b6cd23c 100644
--- a/askbot/deps/django_authopenid/views.py
+++ b/askbot/deps/django_authopenid/views.py
@@ -322,17 +322,12 @@ def signin(request):
method = 'ldap'
)
if user is not None:
+ login(request, user)
if user_is_old:
- login(request, user)
return HttpResponseRedirect(next_url)
else:
- return finalize_generic_signin(
- request = request,
- user = user,
- user_identifier = username,#is this right?
- login_provider_name = provider_name,
- redirect_url = next_url
- )
+ return HttpResponseRedirect(reverse('verify_user_information'))
+
else:
request.user.message_set.create(_('Incorrect user name or password'))
return HttpResponseRedirect(request.path)
@@ -769,6 +764,52 @@ def finalize_generic_signin(
logging.debug('login success')
return HttpResponseRedirect(redirect_url)
+@login_required
+@csrf.protect
+def verify_user_information(request):
+ """this view collects the same information from
+ user ase :func:`register`, but requires that user is
+ already logged in and does not create a new user record
+ or change anything in instances of :class:`UserAssociation`
+ """
+ register_form = forms.OpenidRegisterForm(
+ initial={
+ 'next': get_next_url(request),
+ 'username': request.user.username,
+ 'email': request.user.email
+ }
+ )
+ email_feeds_form = askbot_forms.SimpleEmailSubscribeForm()
+
+ if request.method == 'POST':
+ register_form = forms.OpenidRegisterForm(request.POST)
+ email_feeds_form = askbot_forms.SimpleEmailSubscribeForm(request.POST)
+ if register_form.is_valid() and email_feeds_form.is_valid():
+
+ email_feeds_form.save(request.user)
+
+ request.user.username = register_form.cleaned_data['username']
+ request.user.email = register_form.cleaned_data['email']
+ request.user.save()
+
+ if askbot_settings.EMAIL_VALIDATION == True:
+ logging.debug('sending email validation')
+ send_new_email_key(request.user, nomessage=True)
+ output = validation_email_sent(request)
+ set_email_validation_message(request.user) #message set after generating view
+ return output
+
+ logging.debug('success, send user to main page')
+ return HttpResponseRedirect(get_next_url(request))
+
+ logging.debug('printing authopenid/complete.html output')
+ data = {
+ 'openid_register_form': register_form,
+ 'email_feeds_form': email_feeds_form,
+ }
+ return render_into_skin('authopenid/complete.html', data, request)
+
+
@not_authenticated
@csrf.csrf_protect
def register(request, login_provider_name=None, user_identifier=None):