def test_login_form_nickname(self): """Test login form.""" from invenio.modules.accounts.forms import LoginForm loginform = LoginForm( nickname=self.nickname ) assert loginform.validate() is True self.delete_objects([self.user]) assert loginform.validate() is False
def login(nickname=None, password=None, login_method=None, action='', remember=False, referer=None): """Login.""" if cfg.get('CFG_ACCESS_CONTROL_LEVEL_SITE') > 0: return abort(401) # page is not authorized if action: from invenio.modules.access.mailcookie import \ InvenioWebAccessMailCookieError, \ mail_cookie_check_authorize_action try: action, arguments = mail_cookie_check_authorize_action(action) except InvenioWebAccessMailCookieError: pass form = LoginForm(CombinedMultiDict( [ImmutableMultiDict({'referer': referer, 'login_method': 'Local'} if referer else {'login_method': 'Local'}), request.values]), csrf_enabled=False) if request.method == "POST": try: if login_method == 'Local' and form.validate_on_submit() and \ authenticate(nickname, password, login_method=login_method, remember=remember): flash( _("You are logged in as %(nick)s.", nick=nickname), "success" ) return login_redirect(referer) else: flash(_("Invalid credentials."), "error") except Exception as e: current_app.logger.error( 'Exception during login process: %s', str(e) ) flash(_("Problem with login."), "error") return render_template('accounts/login.html', form=form), 401