From 400f19d8c83adcb4fbb0aecb800f8ed0010d59ea Mon Sep 17 00:00:00 2001 From: Loic Baron Date: Thu, 3 Apr 2014 15:32:08 +0200 Subject: [PATCH] LocalStorage stores user information at login and cleared at logout or expiration of the session --- auth/static/js/logout.js | 5 ++++- manifoldapi/static/js/manifold.js | 1 + portal/static/js/myslice.js | 13 ++++++++----- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/auth/static/js/logout.js b/auth/static/js/logout.js index 9c9b4532..593eb588 100644 --- a/auth/static/js/logout.js +++ b/auth/static/js/logout.js @@ -4,7 +4,10 @@ function logout () { var username=$(this).data('username'); var msg="Are you sure you want to logout as " + username + " ?"; /* redirect to /logout, see urls.py */ - if (confirm(msg)) window.location="/logout/"; + if (confirm(msg)){ + localStorage.removeItem('user'); + window.location="/logout/"; + } } /* attach this function to the logout button */ $(document).ready(function() { $('#logout').click(logout); $('#logoutbtn').click(logout); }); diff --git a/manifoldapi/static/js/manifold.js b/manifoldapi/static/js/manifold.js index bbdbdedf..f0bbc8a6 100644 --- a/manifoldapi/static/js/manifold.js +++ b/manifoldapi/static/js/manifold.js @@ -699,6 +699,7 @@ var manifold = { if (data.code == 2) { // ERROR // We need to make sense of error codes here alert("Your session has expired, please log in again"); + localStorage.removeItem('user'); window.location="/logout/"; if (manifold.asynchroneous_debug) { duration=new Date()-start; diff --git a/portal/static/js/myslice.js b/portal/static/js/myslice.js index 0807d495..2f866553 100644 --- a/portal/static/js/myslice.js +++ b/portal/static/js/myslice.js @@ -106,16 +106,19 @@ var myslice = { user: function() { if ($.isEmptyObject(this.user)) { //this.login(function() { return this.user; }); - this.user = localStorage.getItem('user'); + this.user = JSON.parse(localStorage.getItem('user')); } return this.user; }, login: function(fn) { - $.post("/rest/user/",{'filters':{'user_hrn':'$user_hrn'}}, function( data ) { - myslice.user = new user(data[0]); - localStorage.setItem('user', JSON.stringify(myslice.user)); - }); + user = localStorage.getItem('user'); + if($.isEmptyObject(user)){ + $.post("/rest/user/",{'filters':{'user_hrn':'$user_hrn'}}, function( data ) { + //myslice.user = new user(data[0]); + localStorage.setItem('user', JSON.stringify(data[0])); + }); + } }, getSlices: function(name) { -- 2.47.0