summaryrefslogtreecommitdiffstats
path: root/askbot/deps
diff options
context:
space:
mode:
authorAdolfo Fitoria <adolfo.fitoria@gmail.com>2012-08-08 14:58:47 -0600
committerAdolfo Fitoria <adolfo.fitoria@gmail.com>2012-08-08 14:58:47 -0600
commit064ee84b1fa572df5148fc6613ea0d860cb6e7e7 (patch)
tree6bd32a088b3f124275fa915556e458f781270627 /askbot/deps
parent5866c1b477ce6d4059780a241a537d59f666a7ce (diff)
downloadaskbot-064ee84b1fa572df5148fc6613ea0d860cb6e7e7.tar.gz
askbot-064ee84b1fa572df5148fc6613ea0d860cb6e7e7.tar.bz2
askbot-064ee84b1fa572df5148fc6613ea0d860cb6e7e7.zip
Added initial work for login view, needs testing and restyling.
fixed yesterday's bug
Diffstat (limited to 'askbot/deps')
-rw-r--r--askbot/deps/django_authopenid/urls.py7
-rw-r--r--askbot/deps/django_authopenid/views.py92
2 files changed, 52 insertions, 47 deletions
diff --git a/askbot/deps/django_authopenid/urls.py b/askbot/deps/django_authopenid/urls.py
index f51939ab..249e709e 100644
--- a/askbot/deps/django_authopenid/urls.py
+++ b/askbot/deps/django_authopenid/urls.py
@@ -7,13 +7,16 @@ urlpatterns = patterns('askbot.deps.django_authopenid.views',
url(r'^yadis.xrdf$', 'xrdf', name='yadis_xrdf'),
# manage account registration
url(r'^%s$' % _('signin/'), 'signin', name='user_signin'),
+ url(r'^%s$' % _('widget/signin/'), 'signin',
+ {'template_name': 'authopenid/widget_signin.html'},
+ name='widget_signin'),
url(r'^%s$' % _('signout/'), 'signout', name='user_signout'),
#this view is "complete-openid" signin
- url(r'^%s%s$' % (_('signin/'), _('complete/')), 'complete_signin',
+ url(r'^%s%s$' % (_('signin/'), _('complete/')), 'complete_signin',
name='user_complete_signin'),
url(
r'^%s%s$' % (_('signin/'), _('complete-oauth/')),
- 'complete_oauth_signin',
+ 'complete_oauth_signin',
name='user_complete_oauth_signin'
),
url(r'^%s$' % _('register/'), 'register', name='user_register'),
diff --git a/askbot/deps/django_authopenid/views.py b/askbot/deps/django_authopenid/views.py
index a3ecbbab..468e494d 100644
--- a/askbot/deps/django_authopenid/views.py
+++ b/askbot/deps/django_authopenid/views.py
@@ -1,13 +1,13 @@
# -*- coding: utf-8 -*-
# Copyright (c) 2007, 2008, BenoƮt Chesneau
# Copyright (c) 2007 Simon Willison, original work on django-openid
-#
+#
# All rights reserved.
-#
+#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
-#
+#
# * Redistributions of source code must retain the above copyright
# * notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright
@@ -17,7 +17,7 @@
# * of its contributors may be used to endorse or promote products
# * derived from this software without specific prior written
# * permission.
-#
+#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
# IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
@@ -132,7 +132,7 @@ def ask_openid(
):
""" basic function to ask openid and return response """
on_failure = on_failure or signin_failure
-
+
trust_root = getattr(
settings, 'OPENID_TRUST_ROOT', get_url_host(request) + '/'
)
@@ -162,9 +162,9 @@ def complete(request, on_success=None, on_failure=None, return_to=None):
""" complete openid signin """
assert(on_success is not None)
assert(on_failure is not None)
-
+
logging.debug('in askbot.deps.django_authopenid.complete')
-
+
consumer = Consumer(request.session, util.DjangoOpenIDStore())
# make sure params are encoded in utf8
params = dict((k,smart_unicode(v)) for k, v in request.GET.items())
@@ -174,7 +174,7 @@ def complete(request, on_success=None, on_failure=None, return_to=None):
logging.debug(u'returned openid parameters were: %s' % unicode(params))
except Exception, e:
logging.critical(u'fix logging statement above ' + unicode(e))
-
+
if openid_response.status == SUCCESS:
logging.debug('openid response status is SUCCESS')
return on_success(
@@ -267,13 +267,13 @@ def complete_oauth_signin(request):
#@not_authenticated
@csrf.csrf_protect
-def signin(request):
+def signin(request, template_name='authopenid/signin.html'):
"""
- signin page. It manages the legacy authentification (user/password)
+ signin page. It manages the legacy authentification (user/password)
and openid authentification
-
+
url: /signin/
-
+
template : authopenid/signin.htm
"""
logging.debug('in signin view')
@@ -367,11 +367,11 @@ def signin(request):
sreg_req = sreg.SRegRequest(optional=['nickname', 'email'])
redirect_to = "%s%s?%s" % (
get_url_host(request),
- reverse('user_complete_signin'),
+ reverse('user_complete_signin'),
urllib.urlencode({'next':next_url})
)
return ask_openid(
- request,
+ request,
login_form.cleaned_data['openid_url'],
redirect_to,
on_failure=signin_failure,
@@ -442,7 +442,7 @@ def signin(request):
user = authenticate(
method = 'wordpress_site',
wordpress_url = wp.url,
- wp_user_id = wp_user.user_id
+ wp_user_id = wp_user.user_id
)
return finalize_generic_signin(
request = request,
@@ -471,8 +471,9 @@ def signin(request):
return show_signin_view(
request,
login_form = login_form,
- view_subtype = view_subtype
- )
+ view_subtype = view_subtype,
+ template_name=template_name
+ )
@csrf.csrf_protect
def show_signin_view(
@@ -481,7 +482,8 @@ def show_signin_view(
account_recovery_form = None,
account_recovery_message = None,
sticky = False,
- view_subtype = 'default'
+ view_subtype = 'default',
+ template_name='authopenid/signin.html'
):
"""url-less utility function that populates
context of template 'authopenid/signin.html'
@@ -489,12 +491,12 @@ def show_signin_view(
"""
allowed_subtypes = (
- 'default', 'add_openid',
+ 'default', 'add_openid',
'email_sent', 'change_openid',
'bad_key'
)
- assert(view_subtype in allowed_subtypes)
+ assert(view_subtype in allowed_subtypes)
if sticky:
next_url = reverse('user_signin')
@@ -608,7 +610,7 @@ def show_signin_view(
data['existing_login_methods'] = existing_login_methods
active_provider_names = [
item.provider_name for item in existing_login_methods
- ]
+ ]
util.set_login_provider_tooltips(
major_login_providers,
@@ -622,7 +624,7 @@ def show_signin_view(
data['major_login_providers'] = major_login_providers.values()
data['minor_login_providers'] = minor_login_providers.values()
- return render_into_skin('authopenid/signin.html', data, request)
+ return render_into_skin(template_name, data, request)
@login_required
def delete_login_method(request):
@@ -654,8 +656,8 @@ def complete_signin(request):
""" in case of complete signin with openid """
logging.debug('')#blank log just for the trace
return complete(
- request,
- on_success = signin_success,
+ request,
+ on_success = signin_success,
on_failure = signin_failure,
return_to = get_url_host(request) + reverse('user_complete_signin')
)
@@ -697,7 +699,7 @@ def signin_success(request, identity_url, openid_response):
)
def finalize_generic_signin(
- request = None,
+ request = None,
user = None,
login_provider_name = None,
user_identifier = None,
@@ -767,10 +769,10 @@ def register(request, login_provider_name=None, user_identifier=None):
and login_provider_name and user_identifier arguments must not be None
this function may need to be refactored to simplify the usage pattern
-
+
template : authopenid/complete.html
"""
-
+
logging.debug('')
next_url = get_next_url(request)
@@ -824,7 +826,7 @@ def register(request, login_provider_name=None, user_identifier=None):
user = User.objects.create_user(username, email)
user_registered.send(None, user = user)
-
+
logging.debug('creating new openid user association for %s')
UserAssociation(
@@ -836,7 +838,7 @@ def register(request, login_provider_name=None, user_identifier=None):
del request.session['user_identifier']
del request.session['login_provider_name']
-
+
logging.debug('logging the user in')
user = authenticate(method = 'force', user_id = user.id)
@@ -854,7 +856,7 @@ def register(request, login_provider_name=None, user_identifier=None):
#check if we need to post a question that was added anonymously
#this needs to be a function call becase this is also done
#if user just logged in and did not need to create the new account
-
+
if user != None:
if askbot_settings.EMAIL_VALIDATION == True:
logging.debug('sending email validation')
@@ -868,7 +870,7 @@ def register(request, login_provider_name=None, user_identifier=None):
else:
logging.debug('have really strange error')
raise Exception('openid login failed')#should not ever get here
-
+
providers = {
'yahoo':'<font color="purple">Yahoo!</font>',
'flickr':'<font color="#0063dc">flick</font><font color="#ff0084">r</font>&trade;',
@@ -881,7 +883,7 @@ def register(request, login_provider_name=None, user_identifier=None):
logging.error('openid provider named "%s" has no pretty customized logo' % login_provider_name)
else:
provider_logo = providers[login_provider_name]
-
+
logging.debug('printing authopenid/complete.html output')
data = {
'openid_register_form': register_form,
@@ -909,7 +911,7 @@ def signup_with_password(request):
"""Create a password-protected account
template: authopenid/signup_with_password.html
"""
-
+
logging.debug(get_request_info(request))
next = get_next_url(request)
login_form = forms.LoginForm(initial = {'next': next})
@@ -925,7 +927,7 @@ def signup_with_password(request):
if request.method == 'POST':
form = RegisterForm(request.POST)
email_feeds_form = askbot_forms.SimpleEmailSubscribeForm(request.POST)
-
+
#validation outside if to remember form values
logging.debug('validating classic register form')
form1_is_valid = form.is_valid()
@@ -945,7 +947,7 @@ def signup_with_password(request):
password = form.cleaned_data['password1']
email = form.cleaned_data['email']
provider_name = form.cleaned_data['login_provider']
-
+
new_user = User.objects.create_user(username, email, password)
user_registered.send(None, user = new_user)
@@ -964,19 +966,19 @@ def signup_with_password(request):
logging.debug('new user logged in')
email_feeds_form.save(user)
logging.debug('email feeds form saved')
-
+
# send email
#subject = _("Welcome email subject line")
#message_template = get_emplate(
# 'authopenid/confirm_email.txt'
#)
- #message_context = Context({
+ #message_context = Context({
# 'signup_url': askbot_settings.APP_URL + reverse('user_signin'),
# 'username': username,
# 'password': password,
#})
#message = message_template.render(message_context)
- #send_mail(subject, message, settings.DEFAULT_FROM_EMAIL,
+ #send_mail(subject, message, settings.DEFAULT_FROM_EMAIL,
# [user.email])
#logging.debug('new password acct created, confirmation email sent!')
return HttpResponseRedirect(next)
@@ -999,7 +1001,7 @@ def signup_with_password(request):
minor_login_providers = util.get_enabled_minor_login_providers()
context_data = {
- 'form': form,
+ 'form': form,
'page_class': 'openid-signin',
'email_feeds_form': email_feeds_form,
'major_login_providers': major_login_providers.values(),
@@ -1043,7 +1045,7 @@ XRDF_TEMPLATE = """<?xml version='1.0' encoding='UTF-8'?>
</Service>
</XRD>
</xrds:XRDS>"""
-
+
def xrdf(request):
url_host = get_url_host(request)
return_to = "%s%s" % (url_host, reverse('user_complete_signin'))
@@ -1094,7 +1096,7 @@ def _send_email_key(user):
def send_new_email_key(user,nomessage=False):
import random
random.seed()
- user.email_key = '%032x' % random.getrandbits(128)
+ user.email_key = '%032x' % random.getrandbits(128)
user.save()
_send_email_key(user)
if nomessage==False:
@@ -1110,14 +1112,14 @@ def send_email_key(request):
email sending is called internally
raises 404 if email validation is off
- if current email is valid shows 'key_not_sent' view of
+ if current email is valid shows 'key_not_sent' view of
authopenid/changeemail.html template
"""
if askbot_settings.EMAIL_VALIDATION == True:
if request.user.email_isvalid:
data = {
- 'email': request.user.email,
- 'action_type': 'key_not_sent',
+ 'email': request.user.email,
+ 'action_type': 'key_not_sent',
'change_link': reverse('user_changeemail')
}
return render_into_skin(
@@ -1181,7 +1183,7 @@ def account_recover(request, key = None):
)
else:
return show_signin_view(request, view_subtype = 'bad_key')
-
+
#internal server view used as return value by other views
def validation_email_sent(request):