Getting an improved version of the shared session system vaguely in shape.
This commit is contained in:
parent
a31441b3ce
commit
eebd41f46d
11 changed files with 143 additions and 130 deletions
|
|
@ -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())
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue