def _process_password_reset_confirm(request, form): if form.is_valid(): data = form.cleaned_data try: tas = TASClient() return tas.confirm_password_reset(data['username'], data['code'], data['password'], source='DesignSafe') except Exception as e: if len(e.args) > 1: if re.search('account does not match', e.args[1]): form.add_error('username', e.args[1]) elif re.search('No password reset request matches', e.args[1]): form.add_error('code', e.args[1]) elif re.search('complexity requirements', e.args[1]): form.add_error('password', e.args[1]) elif re.search('expired', e.args[1]): form.add_error('code', e.args[1]) else: logger.exception('Password reset failed') form.add_error('__all__', 'An unexpected error occurred. ' 'Please try again') else: form.add_error('__all__', 'An unexpected error occurred. ' 'Please try again') return False
def _process_password_reset_confirm(request, form): if form.is_valid(): data = form.cleaned_data try: tas = TASClient() return tas.confirm_password_reset(data['username'], data['code'], data['password'], source='DesignSafe') except Exception as e: if len(e.args) > 1: if re.search('account does not match', e.args[1]): form.add_error('username', e.args[1]) elif re.search('No password reset request matches', e.args[1]): form.add_error('code', e.args[1]) elif re.search('complexity requirements', e.args[1]): form.add_error('password', e.args[1]) elif re.search('expired', e.args[1]): form.add_error('code', e.args[1]) else: logger.exception('Password reset failed') form.add_error('__all__', 'An unexpected error occurred. ' 'Please try again') else: form.add_error('__all__', 'An unexpected error occurred. ' 'Please try again') return False
def confirm_password_reset(self, code, new_password, source=None): if self.username: api = TASClient() return api.confirm_password_reset(self.username, code, new_password, source) else: raise Exception('Cannot reset password: username is not set')