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 {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
* flux store that listens for actions and updates its state accordingly, informing any
@ -26,9 +30,7 @@ class LifecycleStore extends Store {
super(dis);
// Initialise state
this._state = {
deferred_action: null,
};
this._state = INITIAL_STATE;
}
_setState(newState) {
@ -54,8 +56,15 @@ class LifecycleStore extends Store {
});
dis.dispatch(deferredAction);
break;
case 'on_logged_out':
this.reset();
break;
}
}
reset() {
this._state = Object.assign({}, INITIAL_STATE);
}
}
let singletonLifecycleStore = null;

View file

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

View file

@ -16,6 +16,10 @@ limitations under the License.
import dis from '../dispatcher';
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
* store that listens for actions and updates its state accordingly, informing any
@ -33,9 +37,7 @@ class SessionStore extends Store {
super(dis);
// Initialise state
this._state = {
cachedPassword: localStorage.getItem('mx_pass'),
};
this._state = INITIAL_STATE;
}
_update() {
@ -66,9 +68,16 @@ class SessionStore extends Store {
cachedPassword: null,
});
break;
case 'on_logged_out':
this.reset();
break;
}
}
reset() {
this._state = Object.assign({}, INITIAL_STATE);
}
getCachedPassword() {
return this._state.cachedPassword;
}