login: Bring recaptcha back to work.

- Missed some template context variables needed for recaptcha to work.
- Now reuse the register view in register_post when rendering the
  form with errors.
This commit is contained in:
Johannes Bornhold 2016-05-26 14:19:55 +02:00
parent cc6721f2fa
commit 1c7d930f8a

View file

@ -197,7 +197,7 @@ class LoginView(object):
@view_config(
route_name='register', request_method='GET',
renderer='rhodecode:templates/register.html',)
def register(self):
def register(self, defaults={}, errors={}):
settings = SettingsModel().get_all_settings()
captcha_public_key = settings.get('rhodecode_captcha_public_key')
captcha_private_key = settings.get('rhodecode_captcha_private_key')
@ -208,6 +208,8 @@ class LoginView(object):
render_ctx = self._get_template_context()
render_ctx.update({
'defaults': defaults,
'errors': errors,
'auto_active': auto_active,
'captcha_active': captcha_active,
'captcha_public_key': captcha_public_key,
@ -219,10 +221,9 @@ class LoginView(object):
route_name='register', request_method='POST',
renderer='rhodecode:templates/register.html')
def register_post(self):
settings = SettingsModel().get_all_settings()
captcha_private_key = settings.get('rhodecode_captcha_private_key')
captcha_private_key = SettingsModel().get_setting_by_name(
'rhodecode_captcha_private_key')
captcha_active = bool(captcha_private_key)
register_message = settings.get('rhodecode_register_message') or ''
auto_active = 'hg.register.auto_activate' in User.get_default_user()\
.AuthUser.permissions['global']
@ -258,13 +259,8 @@ class LoginView(object):
except formencode.Invalid as errors:
del errors.value['password']
del errors.value['password_confirmation']
render_ctx = self._get_template_context()
render_ctx.update({
'errors': errors.error_dict,
'defaults': errors.value,
'register_message': register_message,
})
return render_ctx
return self.register(
defaults=errors.value, errors=errors.error_dict)
except UserCreationError as e:
# container auth or other auth functions that create users on
@ -272,11 +268,7 @@ class LoginView(object):
# with user creation, explanation should be provided in
# Exception itself
self.session.flash(e, queue='error')
render_ctx = self._get_template_context()
render_ctx.update({
'register_message': register_message,
})
return render_ctx
return self.register()
@view_config(
route_name='reset_password', request_method=('GET', 'POST'),