diff options
Diffstat (limited to 'pysite')
| -rw-r--r-- | pysite/base_route.py | 3 | ||||
| -rw-r--r-- | pysite/route_manager.py | 13 | ||||
| -rw-r--r-- | pysite/views/main/index.py | 3 | 
3 files changed, 15 insertions, 4 deletions
| diff --git a/pysite/base_route.py b/pysite/base_route.py index 71a4c894..0c1c0357 100644 --- a/pysite/base_route.py +++ b/pysite/base_route.py @@ -5,7 +5,7 @@ from typing import Any  from flask import Blueprint, Response, jsonify, render_template  from flask.views import MethodView -from pysite.constants import ErrorCodes +from pysite.constants import DISCORD_OAUTH_REDIRECT, ErrorCodes  from pysite.mixins import OauthMixin @@ -29,6 +29,7 @@ class BaseView(MethodView, OauthMixin):          context["current_page"] = self.name          context["view"] = self          context["logged_in"] = self.logged_in +        context["login_url"] = DISCORD_OAUTH_REDIRECT          return render_template(template_names, **context) diff --git a/pysite/route_manager.py b/pysite/route_manager.py index 14ae22db..24d09ee2 100644 --- a/pysite/route_manager.py +++ b/pysite/route_manager.py @@ -4,7 +4,7 @@ import inspect  import logging  import os -from flask import Blueprint, Flask +from flask import Blueprint, Flask, _request_ctx_stack  from flask_dance.contrib.discord import make_discord_blueprint  from flask_sockets import Sockets @@ -76,6 +76,17 @@ class RouteManager:          self.load_views(self.ws_blueprint, "pysite/views/ws")          self.sockets.register_blueprint(self.ws_blueprint, url_prefix="/ws") +        self.app.before_request(self.https_fixing_hook)  # Try to fix HTTPS issues + +    def https_fixing_hook(self): +        """ +        Attempt to fix HTTPS issues by modifying the request context stack +        """ + +        if _request_ctx_stack is not None: +            reqctx = _request_ctx_stack.top +            reqctx.url_adapter.url_scheme = PREFERRED_URL_SCHEME +      def run(self):          from gevent.pywsgi import WSGIServer          from geventwebsocket.handler import WebSocketHandler diff --git a/pysite/views/main/index.py b/pysite/views/main/index.py index 8d0cb349..210eb057 100644 --- a/pysite/views/main/index.py +++ b/pysite/views/main/index.py @@ -1,6 +1,5 @@  # coding=utf-8  from pysite.base_route import RouteView -from pysite.constants import DISCORD_OAUTH_REDIRECT  class IndexView(RouteView): @@ -8,4 +7,4 @@ class IndexView(RouteView):      name = "index"      def get(self): -        return self.render("main/index.html", login_url=DISCORD_OAUTH_REDIRECT) +        return self.render("main/index.html") | 
