diff options
-rw-r--r-- | askbot/deps/django_authopenid/forms.py | 15 | ||||
-rw-r--r-- | askbot/deps/django_authopenid/views.py | 8 | ||||
-rw-r--r-- | askbot/utils/forms.py | 4 |
3 files changed, 20 insertions, 7 deletions
diff --git a/askbot/deps/django_authopenid/forms.py b/askbot/deps/django_authopenid/forms.py index fbc5c6ff..3c0e8e7f 100644 --- a/askbot/deps/django_authopenid/forms.py +++ b/askbot/deps/django_authopenid/forms.py @@ -33,12 +33,13 @@ import logging from django import forms from django.contrib.auth.models import User from django.utils.translation import ugettext as _ -from django.conf import settings +from django.conf import settings as django_settings from askbot.conf import settings as askbot_settings from askbot import const as askbot_const from django.utils.safestring import mark_safe from recaptcha_works.fields import RecaptchaField from askbot.utils.forms import NextUrlField, UserNameField, UserEmailField, SetPasswordForm +from askbot.utils.loading import load_module # needed for some linux distributions like debian try: @@ -105,7 +106,7 @@ class OpenidSigninForm(forms.Form): if 'openid_url' in self.cleaned_data: openid_url = self.cleaned_data['openid_url'] if xri.identifierScheme(openid_url) == 'XRI' and getattr( - settings, 'OPENID_DISALLOW_INAMES', False + django_settings, 'OPENID_DISALLOW_INAMES', False ): raise forms.ValidationError(_('i-names are not supported')) return self.cleaned_data['openid_url'] @@ -449,3 +450,13 @@ class EmailPasswordForm(forms.Form): except: raise forms.ValidationError(_("sorry, there is no such user name")) return self.cleaned_data['username'] + +def get_registration_form_class(): + """returns class for the user registration form + user has a chance to specify the form via setting `REGISTRATION_FORM` + """ + custom_class = getattr(django_settings, 'REGISTRATION_FORM', None) + if custom_class: + return load_module(custom_class) + else: + return OpenidRegisterForm diff --git a/askbot/deps/django_authopenid/views.py b/askbot/deps/django_authopenid/views.py index 8e206120..1d1a9a57 100644 --- a/askbot/deps/django_authopenid/views.py +++ b/askbot/deps/django_authopenid/views.py @@ -903,7 +903,8 @@ def register(request, login_provider_name=None, user_identifier=None): email = request.session.get('email', '') logging.debug('request method is %s' % request.method) - register_form = forms.OpenidRegisterForm( + form_class = forms.get_registration_form_class() + register_form = form_class( initial={ 'next': next_url, 'username': request.session.get('username', ''), @@ -931,9 +932,10 @@ def register(request, login_provider_name=None, user_identifier=None): login_provider_name = request.session['login_provider_name'] logging.debug('trying to create new account associated with openid') - register_form = forms.OpenidRegisterForm(request.POST) + form_class = forms.get_registration_form_class() + register_form = form_class(request.POST) if not register_form.is_valid(): - logging.debug('OpenidRegisterForm is INVALID') + logging.debug('registration form is INVALID') else: username = register_form.cleaned_data['username'] email = register_form.cleaned_data['email'] diff --git a/askbot/utils/forms.py b/askbot/utils/forms.py index 8cdf68b9..6ade6e82 100644 --- a/askbot/utils/forms.py +++ b/askbot/utils/forms.py @@ -211,9 +211,9 @@ class UserEmailField(forms.EmailField): hidden = kw.pop('hidden', False) if hidden is True: - widget_class = forms.TextInput - else: widget_class = forms.HiddenInput + else: + widget_class = forms.TextInput super(UserEmailField,self).__init__( widget=widget_class( |