132132 CSP_SCRIPT_SRC .append (f"localhost:{ VITE_PORT } " )
133133
134134
135- def refresh_redirect (path ):
135+ def refresh_redirect ():
136136 try :
137137 macaroon_discharge = authentication .get_refreshed_discharge (
138138 flask .session ["macaroon_discharge" ]
@@ -146,7 +146,13 @@ def refresh_redirect(path):
146146 return flask .abort (502 , str (api_error ))
147147
148148 flask .session ["macaroon_discharge" ] = macaroon_discharge
149- return flask .redirect (path )
149+ return flask .redirect (
150+ flask .url_for (
151+ flask .request .endpoint ,
152+ ** flask .request .view_args ,
153+ ** flask .request .args ,
154+ )
155+ )
150156
151157
152158def snapcraft_utility_processor ():
@@ -282,7 +288,9 @@ def handle_api_error_list(error):
282288 "macaroon-authorization-required" ,
283289 ]:
284290 authentication .empty_session (flask .session )
285- return flask .redirect (f"/login?next={ flask .request .path } " )
291+ return flask .redirect (
292+ flask .url_for ("login.login_handler" , next = flask .request .path )
293+ )
286294
287295 status_code = 502
288296 codes = [
@@ -309,7 +317,7 @@ def handle_publisher_agreement_not_signed(error):
309317
310318 @app .errorhandler (PublisherMacaroonRefreshRequired )
311319 def handle_publisher_macaroon_refresh_required (error ):
312- return refresh_redirect (flask . request . path )
320+ return refresh_redirect ()
313321
314322 # Global tasks for all requests
315323 # ===
0 commit comments