14 lines
688 B
JavaScript
14 lines
688 B
JavaScript
import { currentUser, login, logout } from '../../api/auth'
|
|
|
|
export default {
|
|
namespaced: true,
|
|
state: () => ({ user: null, checked: false }),
|
|
getters: { has: state => permission => Boolean(state.user?.permissions?.includes(permission)) },
|
|
mutations: { setUser (state, user) { state.user = user; state.checked = true } },
|
|
actions: {
|
|
async restore ({ commit }) { try { commit('setUser', await currentUser()) } catch (_) { commit('setUser', null) } },
|
|
async login ({ commit }, form) { const result = await login(form); commit('setUser', result.user); return result.user },
|
|
async logout ({ commit }) { try { await logout() } finally { commit('setUser', null) } }
|
|
}
|
|
}
|