Exemple #1
0
def login_redirect(referer=None):
    """Redirect to url after login."""
    if referer is None:
        referer = request.values.get('referer')
    if referer:
        from six.moves.urllib.parse import urlparse
        # we should not redirect to these URLs after login
        blacklist = [url_for('webaccount.register'),
                     url_for('webaccount.logout'),
                     url_for('webaccount.login'),
                     url_for('webaccount.lost')]
        if not urlparse(referer).path in blacklist:
            # Change HTTP method to https if needed.
            from invenio_utils.url import rewrite_to_secure_url
            referer = rewrite_to_secure_url(referer)
            return redirect(referer)
    return redirect('/')
Exemple #2
0
    def redirect_to_ssl(self):
        """Redirect incoming requests to HTTPS."""
        # Should we redirect?
        criteria = [
            request.is_secure,
            request.headers.get('X-Forwarded-Proto', 'http') == 'https',
            'no-https-redirect' in self.app.config.get('CFG_DEVEL_TOOLS', []),
        ]

        if self.criteria_callback is not None:
            criteria += [self.criteria_callback()]

        if not any(criteria):
            if request.url.startswith('http://'):
                url = rewrite_to_secure_url(request.url)

                code = 302
                if self.permanent:
                    code = 301
                r = redirect(url, code=code)

                return r
Exemple #3
0
    def redirect_to_ssl(self):
        """Redirect incoming requests to HTTPS."""
        # Should we redirect?
        criteria = [
            request.is_secure,
            request.headers.get('X-Forwarded-Proto', 'http') == 'https',
            'no-https-redirect' in self.app.config.get('CFG_DEVEL_TOOLS', []),
        ]

        if self.criteria_callback is not None:
            criteria += [self.criteria_callback()]

        if not any(criteria):
            if request.url.startswith('http://'):
                from invenio_utils.url import rewrite_to_secure_url
                url = rewrite_to_secure_url(request.url)

                code = 302
                if self.permanent:
                    code = 301
                r = redirect(url, code=code)

                return r
Exemple #4
0
    def redirect_to_ssl(self):
        """Redirect incoming requests to HTTPS."""
        # Should we redirect?
        criteria = [
            request.is_secure,
            request.headers.get("X-Forwarded-Proto", "http") == "https",
            "no-https-redirect" in self.app.config.get("CFG_DEVEL_TOOLS", []),
        ]

        if self.criteria_callback is not None:
            criteria += [self.criteria_callback()]

        if not any(criteria):
            if request.url.startswith("http://"):
                from invenio_utils.url import rewrite_to_secure_url

                url = rewrite_to_secure_url(request.url)

                code = 302
                if self.permanent:
                    code = 301
                r = redirect(url, code=code)

                return r