Merge pull request #930 from matrix-org/luke/new-guest-access-reset-stores-on-logged-out

Reset store state when logging out
This commit is contained in:
Matthew Hodgson 2017-05-26 17:45:32 +01:00 committed by GitHub
commit 44f479c38b
3 changed files with 27 additions and 6 deletions

View file

@ -16,6 +16,10 @@ limitations under the License.
import dis from '../dispatcher'; import dis from '../dispatcher';
import {Store} from 'flux/utils'; import {Store} from 'flux/utils';
const INITIAL_STATE = {
deferred_action: null,
};
/** /**
* A class for storing application state to do with login/registration. This is a simple * A class for storing application state to do with login/registration. This is a simple
* flux store that listens for actions and updates its state accordingly, informing any * flux store that listens for actions and updates its state accordingly, informing any
@ -26,9 +30,7 @@ class LifecycleStore extends Store {
super(dis); super(dis);
// Initialise state // Initialise state
this._state = { this._state = INITIAL_STATE;
deferred_action: null,
};
} }
_setState(newState) { _setState(newState) {
@ -54,8 +56,15 @@ class LifecycleStore extends Store {
}); });
dis.dispatch(deferredAction); dis.dispatch(deferredAction);
break; break;
case 'on_logged_out':
this.reset();
break;
} }
} }
reset() {
this._state = Object.assign({}, INITIAL_STATE);
}
} }
let singletonLifecycleStore = null; let singletonLifecycleStore = null;

View file

@ -73,6 +73,9 @@ class RoomViewStore extends Store {
case 'join_room': case 'join_room':
this._joinRoom(payload); this._joinRoom(payload);
break; break;
case 'on_logged_out':
this.reset();
break;
} }
} }

View file

@ -16,6 +16,10 @@ limitations under the License.
import dis from '../dispatcher'; import dis from '../dispatcher';
import {Store} from 'flux/utils'; import {Store} from 'flux/utils';
const INITIAL_STATE = {
cachedPassword: localStorage.getItem('mx_pass'),
};
/** /**
* A class for storing application state to do with the session. This is a simple flux * A class for storing application state to do with the session. This is a simple flux
* store that listens for actions and updates its state accordingly, informing any * store that listens for actions and updates its state accordingly, informing any
@ -33,9 +37,7 @@ class SessionStore extends Store {
super(dis); super(dis);
// Initialise state // Initialise state
this._state = { this._state = INITIAL_STATE;
cachedPassword: localStorage.getItem('mx_pass'),
};
} }
_update() { _update() {
@ -66,9 +68,16 @@ class SessionStore extends Store {
cachedPassword: null, cachedPassword: null,
}); });
break; break;
case 'on_logged_out':
this.reset();
break;
} }
} }
reset() {
this._state = Object.assign({}, INITIAL_STATE);
}
getCachedPassword() { getCachedPassword() {
return this._state.cachedPassword; return this._state.cachedPassword;
} }