Exemple #1
0
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)
Exemple #2
0
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)
Exemple #3
0
    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)
Exemple #4
0
    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)
Exemple #5
0
    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)
Exemple #6
0
    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)
Exemple #7
0
    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)
Exemple #8
0
    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)
Exemple #9
0
    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)
Exemple #10
0
    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)
Exemple #11
0
    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)
Exemple #12
0
    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)
Exemple #13
0
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)
Exemple #14
0
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)