Files
yovision/Bell/web/src/store/modules/identity.js
T

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) } }
}
}