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('/')
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
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
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