diff --git a/web/typo3conf/ext/ep_theme/Resources/Private/Assets/js/myep/_router.js b/web/typo3conf/ext/ep_theme/Resources/Private/Assets/js/myep/_router.js
index 641ddecf..1236b3c8 100644
--- a/web/typo3conf/ext/ep_theme/Resources/Private/Assets/js/myep/_router.js
+++ b/web/typo3conf/ext/ep_theme/Resources/Private/Assets/js/myep/_router.js
@@ -8,7 +8,7 @@ const guard = (to, from, next) => {
if (store.state.loading) {
next(false);
} else if (store.state.loggedIn) {
- if (to.meta.requiresTeamer && !store.state.isTeamer) {
+ if (to.meta.requiresTeamer && !store.getters.isTeamer) {
next(false);
} else {
next();
diff --git a/web/typo3conf/ext/ep_theme/Resources/Private/Assets/js/myep/_store.js b/web/typo3conf/ext/ep_theme/Resources/Private/Assets/js/myep/_store.js
index 40757480..8c6cffb4 100644
--- a/web/typo3conf/ext/ep_theme/Resources/Private/Assets/js/myep/_store.js
+++ b/web/typo3conf/ext/ep_theme/Resources/Private/Assets/js/myep/_store.js
@@ -26,8 +26,10 @@ export default new Vuex.Store({
state: {
config: config,
loading: false,
+ authToken: sessionStorage.getItem('token'),
loggedIn: !!sessionStorage.getItem('token'),
isTeamer: JSON.parse(sessionStorage.getItem('teamerId')) !== null,
+ teamerId: JSON.parse(sessionStorage.getItem('teamerId')),
countries: [],
abilities: [],
timeFrames: [],
@@ -38,22 +40,30 @@ export default new Vuex.Store({
}
},
mutations: {
- loginSuccess (state) {
+ loginSuccess (state, token) {
state.loggedIn = true;
+ state.authToken = token;
+ sessionStorage.setItem('token', token);
},
loginFailure (state) {
state.loggedIn = false;
},
logout (state) {
state.loggedIn = false;
- state.teamer = false;
+ state.isTeamer = false;
+ state.teamerId = null;
+ state.authToken = null;
+ sessionStorage.removeItem('token');
+ sessionStorage.removeItem('teamerId');
},
alert (state, payload) {
state.message.text = payload.message;
state.message.class = payload.class;
},
- isTeamer (state) {
- state.teamer = true;
+ isTeamer (state, teamerId) {
+ state.isTeamer = true;
+ state.teamerId = teamerId;
+ sessionStorage.setItem('teamerId', teamerId);
},
loadingBegin (state) {
state.loading = true;
@@ -88,12 +98,11 @@ export default new Vuex.Store({
method: 'post',
withCredentials: true
}).then((response) => {
- sessionStorage.setItem('token', response.data.token);
- sessionStorage.setItem('teamerId', response.data.teamer_id);
- if (response.data.teamer_id) {
- commit('isTeamer');
+ let teamerId = parseInt(response.data.teamer_id);
+ if (teamerId > 0) {
+ commit('isTeamer', teamerId);
}
- commit('loginSuccess');
+ commit('loginSuccess', response.data.token);
commit('loadingFinish');
}).catch((error) => {
commit('loginFailure');
@@ -105,15 +114,13 @@ export default new Vuex.Store({
throw error;
});
},
- logout({ commit }) {
+ logout({ commit, state }) {
return axios({
url: '/api/logout',
headers: {
- 'x-auth-token': sessionStorage.getItem('token')
+ 'x-auth-token': state.authToken
}
}).then(() => {
- sessionStorage.removeItem('token');
- sessionStorage.removeItem('teamerId');
commit('logout');
});
},
@@ -157,11 +164,14 @@ export default new Vuex.Store({
}
},
getters: {
- authToken () {
- return sessionStorage.getItem('token')
+ authToken: state => {
+ return state.authToken;
},
- teamerId () {
- return sessionStorage.getItem('teamerId')
+ isTeamer: state => {
+ return state.isTeamer;
+ },
+ teamerId: state => {
+ return state.teamerId;
}
}
});
diff --git a/web/typo3conf/ext/ep_theme/Resources/Private/Assets/js/myep/components/App.vue b/web/typo3conf/ext/ep_theme/Resources/Private/Assets/js/myep/components/App.vue
index f6b7fa39..99ad182e 100644
--- a/web/typo3conf/ext/ep_theme/Resources/Private/Assets/js/myep/components/App.vue
+++ b/web/typo3conf/ext/ep_theme/Resources/Private/Assets/js/myep/components/App.vue
@@ -16,7 +16,7 @@