Skip to content
Snippets Groups Projects
Commit c5f70d02 authored by Ben Adida's avatar Ben Adida
Browse files

some extra caution for session management

parent bb9781a7
No related branches found
No related tags found
No related merge requests found
...@@ -57,7 +57,7 @@ def password_login_view(request): ...@@ -57,7 +57,7 @@ def password_login_view(request):
if request.POST.has_key('return_url'): if request.POST.has_key('return_url'):
request.session['auth_return_url'] = request.POST.get('return_url') request.session['auth_return_url'] = request.POST.get('return_url')
request.session['user'] = user request.session['password_user'] = user
return HttpResponseRedirect(reverse(after)) return HttpResponseRedirect(reverse(after))
except User.DoesNotExist: except User.DoesNotExist:
pass pass
...@@ -101,7 +101,7 @@ def get_auth_url(request, redirect_url = None): ...@@ -101,7 +101,7 @@ def get_auth_url(request, redirect_url = None):
return reverse(password_login_view) return reverse(password_login_view)
def get_user_info_after_auth(request): def get_user_info_after_auth(request):
user = request.session['user'] user = request.session['password_user']
user_info = user.info user_info = user.info
return {'type': 'password', 'user_id' : user.user_id, 'name': user.name, 'info': user.info, 'token': None} return {'type': 'password', 'user_id' : user.user_id, 'name': user.name, 'info': user.info, 'token': None}
......
...@@ -81,6 +81,12 @@ def do_local_logout(request): ...@@ -81,6 +81,12 @@ def do_local_logout(request):
# but we definitely kill the session and renew # but we definitely kill the session and renew
# the cookie # the cookie
field_names_to_save = request.session.get(FIELDS_TO_SAVE, []) field_names_to_save = request.session.get(FIELDS_TO_SAVE, [])
# let's clean up the self-referential issue:
field_names_to_save = set(field_names_to_save)
field_names_to_save.remove(FIELDS_TO_SAVE)
field_names_to_save = list(field_names_to_save)
fields_to_save = dict([(name, request.session.get(name, None)) for name in field_names_to_save]) fields_to_save = dict([(name, request.session.get(name, None)) for name in field_names_to_save])
# let's not forget to save the list of fields to save # let's not forget to save the list of fields to save
...@@ -127,7 +133,8 @@ def start(request, system_name): ...@@ -127,7 +133,8 @@ def start(request, system_name):
if not (system_name in auth.ENABLED_AUTH_SYSTEMS): if not (system_name in auth.ENABLED_AUTH_SYSTEMS):
return HttpResponseRedirect(reverse(index)) return HttpResponseRedirect(reverse(index))
request.session.save() # why is this here? Let's try without it
# request.session.save()
# store in the session the name of the system used for auth # store in the session the name of the system used for auth
request.session['auth_system_name'] = system_name request.session['auth_system_name'] = system_name
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment