diff options
| author | Henry Jameson <me@hjkos.com> | 2022-08-12 01:19:19 +0300 |
|---|---|---|
| committer | Henry Jameson <me@hjkos.com> | 2022-08-12 01:19:19 +0300 |
| commit | 8d3d8fffab0106a8aff5822044a8c3c30bd6e057 (patch) | |
| tree | 21ee583367e48f351ab081ef877a94f0eddfa424 /src/modules/serverSideStorage.js | |
| parent | c3e7eadddff2357f51b49bb8eb8125777d754a0e (diff) | |
fixes, clear cache on logout
Diffstat (limited to 'src/modules/serverSideStorage.js')
| -rw-r--r-- | src/modules/serverSideStorage.js | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/src/modules/serverSideStorage.js b/src/modules/serverSideStorage.js index d95fbb8a..5581783f 100644 --- a/src/modules/serverSideStorage.js +++ b/src/modules/serverSideStorage.js @@ -51,8 +51,9 @@ export const _moveItemInArray = (array, value, movement) => { return newArray } -const _wrapData = (data) => ({ +const _wrapData = (data, userName) => ({ ...data, + _user: userName, _timestamp: Date.now(), _version: VERSION }) @@ -254,10 +255,17 @@ export const _doMigrations = (cache) => { } export const mutations = { + clearServerSideStorage (state, userData) { + state = { ...cloneDeep(defaultState) } + }, setServerSideStorage (state, userData) { const live = userData.storage state.raw = live let cache = state.cache + if (cache._user !== userData.fqn) { + console.warn('cache belongs to another user! reinitializing local cache!') + cache = null + } cache = _doMigrations(cache) @@ -371,12 +379,12 @@ export const mutations = { ] state.dirty = true }, - updateCache (state) { + updateCache (state, { username }) { state.prefsStorage._journal = _mergeJournal(state.prefsStorage._journal) state.cache = _wrapData({ flagStorage: toRaw(state.flagStorage), prefsStorage: toRaw(state.prefsStorage) - }) + }, username) } } @@ -388,8 +396,9 @@ const serverSideStorage = { actions: { pushServerSideStorage ({ state, rootState, commit }, { force = false } = {}) { const needPush = state.dirty || force + console.log(needPush) if (!needPush) return - commit('updateCache') + commit('updateCache', { username: rootState.users.currentUser.fqn }) const params = { pleroma_settings_store: { 'pleroma-fe': state.cache } } rootState.api.backendInteractor .updateProfile({ params }) |
