release v2.0.0 #4
|
@ -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 = (<UserStateInterface>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;
|
||||
});
|
||||
|
|
|
@ -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 = (<UserStateInterface>store.state).user;
|
||||
console.log('login_boot', user);
|
||||
//const user: UserStateInterface = (<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
|
||||
)
|
||||
)
|
||||
|
|
|
@ -1,6 +1,9 @@
|
|||
<template>
|
||||
<div>
|
||||
<q-page padding class="fit row justify-center content-center items-center">
|
||||
<q-page
|
||||
padding
|
||||
class="fit row justify-center content-center items-center q-gutter-sm"
|
||||
>
|
||||
<div class="text-h5 row">
|
||||
Deine Sessions:
|
||||
</div>
|
||||
|
@ -8,7 +11,6 @@
|
|||
class="fit row justify-center content-center items-center q-gutter-sm"
|
||||
>
|
||||
<circular-progress v-if="sessionsLoading" />
|
||||
<div>tada:: {{ sessionsLoading }}</div>
|
||||
<q-card
|
||||
class="col-12"
|
||||
height=""
|
||||
|
|
|
@ -36,9 +36,7 @@ const actions: ActionTree<SessionInterface, StateInterface> = {
|
|||
console.log(rootGetters);
|
||||
commit('setLoading', true);
|
||||
axios
|
||||
.get('http://localhost:5000/auth', {
|
||||
headers: { Token: rootGetters['user/token'].token }
|
||||
})
|
||||
.get('/auth')
|
||||
.then(response => {
|
||||
console.log(response.data);
|
||||
commit('setSessions', response.data);
|
||||
|
@ -52,10 +50,9 @@ const actions: ActionTree<SessionInterface, StateInterface> = {
|
|||
},
|
||||
deleteSession({ commit, dispatch, rootGetters }, token) {
|
||||
commit('setLoading', true);
|
||||
console.log('axios', axios);
|
||||
axios
|
||||
.delete(`http://localhost:5000/auth/${token}`, {
|
||||
headers: { Token: rootGetters['user/token'].token }
|
||||
})
|
||||
.delete(`/auth/${token}`)
|
||||
.then(() => {
|
||||
void dispatch('getSessions');
|
||||
})
|
||||
|
|
|
@ -20,6 +20,7 @@ export interface User {
|
|||
lastname: string;
|
||||
mail: string;
|
||||
roles: string[];
|
||||
userid: string;
|
||||
}
|
||||
|
||||
export interface UserStateInterface extends LoginResponse {
|
||||
|
@ -41,9 +42,9 @@ const state: UserStateInterface = {
|
|||
firstname: '',
|
||||
lastname: '',
|
||||
mail: '',
|
||||
roles: []
|
||||
roles: [],
|
||||
userid: ''
|
||||
},
|
||||
userid: '',
|
||||
loginLoading: false
|
||||
};
|
||||
|
||||
|
@ -57,9 +58,6 @@ const mutations: MutationTree<UserStateInterface> = {
|
|||
setUser(state, data: User) {
|
||||
state.user = data;
|
||||
},
|
||||
setUserId(state, data: string) {
|
||||
state.userid = data;
|
||||
},
|
||||
setLoginLoading(state, data: boolean) {
|
||||
state.loginLoading = data;
|
||||
},
|
||||
|
@ -74,18 +72,16 @@ const actions: ActionTree<UserStateInterface, StateInterface> = {
|
|||
commit('setLoginLoading', true);
|
||||
Loading.show({ message: 'Du wirst eingeloggt' });
|
||||
void axios
|
||||
.post('http://localhost:5000/auth', data)
|
||||
.post('/auth', data)
|
||||
.then((response: AxiosResponse<LoginResponse>) => {
|
||||
commit('setPermissions', response.data.permissions);
|
||||
console.log('saved permisisons');
|
||||
commit('setToken', response.data.token);
|
||||
commit('setUser', response.data.user);
|
||||
commit('setUserId', response.data.userid);
|
||||
commit('showState');
|
||||
LocalStorage.set('permissions', response.data.permissions);
|
||||
LocalStorage.set('token', response.data.token);
|
||||
LocalStorage.set('user', response.data.user);
|
||||
LocalStorage.set('userid', response.data.userid);
|
||||
|
||||
void Router.push({ name: 'user' });
|
||||
})
|
||||
|
@ -96,6 +92,33 @@ const actions: ActionTree<UserStateInterface, StateInterface> = {
|
|||
commit('setLoginLoading', false);
|
||||
Loading.hide();
|
||||
});
|
||||
},
|
||||
loadFromLocalStorage({ commit }) {
|
||||
console.log('load from store');
|
||||
let data = LocalStorage.getItem('permissions');
|
||||
commit('setPermissions', data ? data : []);
|
||||
data = LocalStorage.getItem('token');
|
||||
commit(
|
||||
'setToken',
|
||||
data
|
||||
? data
|
||||
: { browser: '', expires: '', lifetime: -1, platform: '', token: '' }
|
||||
);
|
||||
data = LocalStorage.getItem('user');
|
||||
commit(
|
||||
'setUser',
|
||||
data
|
||||
? data
|
||||
: {
|
||||
display_name: '',
|
||||
firstname: '',
|
||||
lastname: '',
|
||||
mail: '',
|
||||
roles: [],
|
||||
userid: ''
|
||||
}
|
||||
);
|
||||
commit('showState');
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -109,9 +132,6 @@ const getters: GetterTree<UserStateInterface, StateInterface> = {
|
|||
user({ user }) {
|
||||
return user;
|
||||
},
|
||||
userid({ userid }) {
|
||||
return userid;
|
||||
},
|
||||
loginLoading({ loginLoading }) {
|
||||
return loginLoading;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue