feat: add Sense identity RBAC and audit (#22)

This commit is contained in:
QiuSW
2026-08-12 17:06:26 +08:00
parent 2c0e37eff7
commit b9416ebc08
24 changed files with 1438 additions and 11 deletions
@@ -0,0 +1,45 @@
import * as identityApi from '../../api/sense/identity'
function loadPrincipal() {
try {
return JSON.parse(window.sessionStorage.getItem('sense_session'))
} catch {
return null
}
}
export default {
namespaced: true,
state: () => ({ principal: loadPrincipal() }),
getters: {
permissions: (state) => state.principal?.permissions || [],
hasPermission: (state) => (permission) => (state.principal?.permissions || []).includes(permission)
},
mutations: {
setPrincipal(state, principal) {
state.principal = principal
if (principal) window.sessionStorage.setItem('sense_session', JSON.stringify(principal))
else window.sessionStorage.removeItem('sense_session')
}
},
actions: {
async login({ commit }, credentials) {
const principal = await identityApi.login(credentials)
commit('setPrincipal', principal)
return principal
},
async refresh({ commit }) {
const principal = await identityApi.currentUser()
commit('setPrincipal', principal)
return principal
},
async logout({ commit }) {
try {
await identityApi.logout()
} finally {
commit('setPrincipal', null)
}
}
}
}