From 0cdfe7f11c1e1b745056ad4c7e9ca5cbd2bbeee7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim=20Gr=C3=B6ger?= Date: Fri, 16 Oct 2020 22:37:37 +0200 Subject: [PATCH] =?UTF-8?q?L=C3=A4dt=20UserStore=20aus=20LocalStorage?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sollte die seite neu geladen werden, wird aus dem LocalStorage der UserStorage geladen. Somit bleibt man angemeldet. Axios angepasst, sodass nur noch die url eingegeben werden muss. --- src/boot/axios.ts | 7 ++--- src/boot/login.ts | 10 ++++--- src/plugins/user/pages/Settings.vue | 6 +++-- src/plugins/user/store/session.ts | 9 +++---- src/plugins/user/store/user.ts | 42 +++++++++++++++++++++-------- 5 files changed, 49 insertions(+), 25 deletions(-) diff --git a/src/boot/axios.ts b/src/boot/axios.ts index 2ade8ff..2413f20 100644 --- a/src/boot/axios.ts +++ b/src/boot/axios.ts @@ -15,11 +15,12 @@ export default boot(({ Vue, store }) => { axios.defaults.baseURL = config.baseURL; axios.interceptors.request.use(config => { - // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access - const token: Token = (store.state.user).token; + // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-assignment + const token: Token = store.getters['user/token']; if (token) { // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access - config.headers['Authorization'] = 'Token ' + token.token; + config.headers['Token'] = token.token; + //config.headers['Authorization'] = 'Token ' + token.token; } return config; }); diff --git a/src/boot/login.ts b/src/boot/login.ts index b2c8b0f..07103eb 100644 --- a/src/boot/login.ts +++ b/src/boot/login.ts @@ -4,11 +4,15 @@ import { RouteRecord } from 'vue-router'; export default boot(({ router, store }) => { router.beforeEach((to, from, next) => { + // eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access + store.dispatch('user/loadFromLocalStorage'); // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/ban-ts-comment // @ts-ignore // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access - const user: UserStateInterface = (store.state).user; - console.log('login_boot', user); + //const user: UserStateInterface = (store.state).user; + //const user: UserStateInterface = store.getters['user/user']; + const permissions: [] = store.getters['user/permissions']; + console.log('login_boot', permissions); if ( to.matched.some((record: RouteRecord) => { // permissions is set AND has NO matching permission @@ -19,7 +23,7 @@ export default boot(({ router, store }) => { // eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access ( record.meta.permissions.filter((value: string) => - user.permissions.includes(value) + permissions.includes(value) ).length > 0 ) ) diff --git a/src/plugins/user/pages/Settings.vue b/src/plugins/user/pages/Settings.vue index e0f0bf9..ec49b8f 100644 --- a/src/plugins/user/pages/Settings.vue +++ b/src/plugins/user/pages/Settings.vue @@ -1,6 +1,9 @@