Getting an improved version of the shared session system vaguely in shape.

This commit is contained in:
Griatch 2016-05-31 20:17:07 +02:00
parent a31441b3ce
commit eebd41f46d
11 changed files with 143 additions and 130 deletions

View file

@ -26,27 +26,27 @@ def page_index(request):
# handle webclient-website shared login
browser_session = request.session
browserid = request.session.session_key
csession = request.session
csessid = request.session.session_key
player = request.user
# check if user has authenticated to website
if player.is_authenticated():
# Try to login all the player's webclient sessions - only
# unloggedin ones will actually be logged in.
print "website: player auth, trying to connect sessions"
for session in SESSION_HANDLER.sessions_from_browserid(browserid):
for session in SESSION_HANDLER.sessions_from_csessid(csessid):
print "session to connect:", session
if session.protocol_key in ("websocket", "ajax/comet"):
SESSION_HANDLER.login(session, player)
session.browserid = browser_session.session_key
browser_session["logged_in"] = player.id
elif browser_session.get("logged_in"):
# The webclient has previously registered a login to this browser_session
print "website: browser_session logged in, trying to login"
player = PlayerDB.objects.get(id=browser_session.get("logged_in"))
session.csessid = csession.session_key
csession["logged_in"] = player.id
elif csession.get("logged_in"):
# The webclient has previously registered a login to this csession
print "website: csession logged in, trying to login"
player = PlayerDB.objects.get(id=csession.get("logged_in"))
login(request, player)
else:
browser_session["logged_in"] = None
csession["logged_in"] = None
print ("website session:", request.session.session_key, request.user, request.user.is_authenticated())