Merge pull request #339 from selfhoster1312/redirect-referer

portal-api: login/logout redirect to referer when param referer_redirect is set
This commit is contained in:
Alexandre Aubin 2024-08-20 18:52:03 +02:00 committed by GitHub
commit 6f09185a70
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -13,7 +13,7 @@ from gevent import sleep
from gevent.queue import Queue from gevent.queue import Queue
from geventwebsocket import WebSocketError from geventwebsocket import WebSocketError
from bottle import request, response, Bottle, HTTPResponse, FileUpload from bottle import redirect, request, response, Bottle, HTTPResponse, FileUpload
from bottle import abort from bottle import abort
from moulinette import m18n, Moulinette from moulinette import m18n, Moulinette
@ -381,6 +381,10 @@ class _ActionsMapPlugin:
raise HTTPResponse(e.strerror, 401) raise HTTPResponse(e.strerror, 401)
else: else:
authenticator.set_session_cookie(auth_infos) authenticator.set_session_cookie(auth_infos)
referer = request.get_header("Referer")
if "referer_redirect" in request.params and referer:
redirect(referer)
else:
return m18n.g("logged_in") return m18n.g("logged_in")
# This is called before each time a route is going to be processed # This is called before each time a route is going to be processed
@ -405,7 +409,11 @@ class _ActionsMapPlugin:
else: else:
# Delete cookie and clean the session # Delete cookie and clean the session
authenticator.delete_session_cookie() authenticator.delete_session_cookie()
return m18n.g("logged_out") referer = request.get_header("Referer")
if "referer_redirect" in request.params and referer:
redirect(referer)
else:
return m18n.g("logged_in")
def messages(self): def messages(self):
"""Listen to the messages WebSocket stream """Listen to the messages WebSocket stream