diff --git a/app.py b/app.py index f378348..027c549 100644 --- a/app.py +++ b/app.py @@ -126,6 +126,9 @@ def login() -> Union[Response, str]: session["logged_in"] = True session["username"] = username session["auth_credentials"] = encoded_credentials + next_url = request.args.get("next") + if next_url: + return redirect(next_url) return redirect(url_for("home")) except requests.exceptions.RequestException: pass # Fall through to error @@ -162,12 +165,16 @@ def user_accounts() -> Union[Response, str]: @app.route("/share", methods=["GET"]) def share() -> Response: """Handles shared text from PWA.""" + if not session.get("logged_in"): + return redirect(url_for("index", next=request.url)) shared_text = request.args.get("text") return redirect(url_for("add_account", shared_text=shared_text)) @app.route("/accounts/add", methods=["GET", "POST"]) def add_account() -> Union[Response, str]: """Handles adding a new user account.""" + if not session.get("logged_in"): + return redirect(url_for("index", next=request.url)) base_url = app.config["BASE_URL"] shared_text = request.args.get('shared_text') diff --git a/static/site.webmanifest b/static/site.webmanifest index edb371f..cceb531 100644 --- a/static/site.webmanifest +++ b/static/site.webmanifest @@ -19,8 +19,9 @@ "display": "standalone", "theme_color": "#ffffff", "share_target": { - "action": "share", + "action": "/share", "method": "GET", + "enctype": "application/x-www-form-urlencoded", "params": { "text": "text" }