def login_refresh() -> ResponseType: """ Show a form to refresh a user's login after their login has become stale. :return: The response for this view. """ if login_fresh(): return redirect(url_for('main.index')) form = LoginRefreshForm() if form.validate_on_submit(): user = User.refresh_login(form.password.data) if user: # Login refresh succeeded. flash(_('Welcome, %(name)s!', name=user.name)) next_page = get_next_page() return redirect(next_page) flash(_('Invalid password.'), 'error') return render_template('userprofile/login.html', title=_('Confirm Login'), form=form)
def login() -> ResponseType: """ Show a login form to the user. If they submitted the login form, try to log them in and redirect them to the homepage. :return: The response for this view. """ form = LoginForm() if form.validate_on_submit(): # Try to login the user. user = User.login(email=form.email.data, password=form.password.data, remember_me=form.remember_me.data) if user: # Login succeeded. flash(_('Welcome, %(name)s!', name=user.name)) next_page = get_next_page() return redirect(next_page) # Login failed. Just show the login form again. flash(_('Invalid email address or password.'), 'error') return render_template('userprofile/login.html', title=_('Log In'), form=form)
def test_get_next_page_other_fallback(self): """ Test getting the next page with default arguments if no next page is given. Expected result: The default fallback URL. """ fallback = '/user/logout' next_page = get_next_page(fallback_url=fallback) self.assertEqual(fallback, next_page)
def test_get_next_page_default_fallback(self): """ Test getting the next page with default arguments if no next page is given. Expected result: The default fallback URL. """ fallback = '/' next_page = get_next_page() self.assertEqual(fallback, next_page)
def test_get_next_page_invalid_url(self): """ Test getting the next page with default arguments if no next page is given. Expected result: The default fallback URL. """ fallback = '/' self.request_context.request.args = {'next': 'https://www.example.com'} next_page = get_next_page() self.assertEqual(fallback, next_page)
def test_get_next_page_default_param(self): """ Test getting the next page with default arguments if the next page is given. Expected result: The next page given in the request arguments. """ next_arg = '/user/profile' self.request_context.request.args = {'next': next_arg, 'n': next_arg + '/delete'} next_page = get_next_page() self.assertEqual(next_arg, next_page)
def test_get_next_page_other_param(self): """ Test getting the next page if the next page is given in a different URL parameter. Expected result: The next page given in the request arguments. """ param = 'n' next_arg = '/user/profile' self.request_context.request.args = {'next': next_arg + '/delete', param: next_arg} next_page = get_next_page(url_param=param) self.assertEqual(next_arg, next_page)
def test_get_next_page_default_param(self): """ Test getting the next page with default arguments if the next page is given. Expected result: The next page given in the request arguments. """ next_arg = '/user/profile' self.request_context.request.args = { 'next': next_arg, 'n': next_arg + '/delete' } next_page = get_next_page() self.assertEqual(next_arg, next_page)
def test_get_next_page_other_param(self): """ Test getting the next page if the next page is given in a different URL parameter. Expected result: The next page given in the request arguments. """ param = 'n' next_arg = '/user/profile' self.request_context.request.args = { 'next': next_arg + '/delete', param: next_arg } next_page = get_next_page(url_param=param) self.assertEqual(next_arg, next_page)
def login_refresh() -> str: """ Show a form to refresh a user's login after their login has become stale. :return: The HTML response. """ if login_fresh(): return redirect(url_for('main.index')) form = LoginRefreshForm() if form.validate_on_submit(): user = User.refresh_login(form.password.data) if user: # Login refresh succeeded. flash(_('Welcome, %(name)s!', name=user.name)) next_page = get_next_page() return redirect(next_page) flash(_('Invalid password.'), 'error') return render_template('userprofile/login.html', title=_('Confirm Login'), form=form)
def login() -> str: """ Show a login form to the user. If they submitted the login form, try to log them in and redirect them to the homepage. :return: The HTML response. """ form = LoginForm() if form.validate_on_submit(): # Try to login the user. user = User.login(email=form.email.data, password=form.password.data, remember_me=form.remember_me.data) if user: # Login succeeded. flash(_('Welcome, %(name)s!', name=user.name)) next_page = get_next_page() return redirect(next_page) # Login failed. Just show the login form again. flash(_('Invalid email address or password.'), 'error') return render_template('userprofile/login.html', title=_('Log In'), form=form)