2021-03-22 21:59:22 +13:00
|
|
|
import { writable } from "svelte/store"
|
2021-03-26 21:50:37 +13:00
|
|
|
import api from "builderStore/api"
|
2021-03-22 21:59:22 +13:00
|
|
|
|
2021-03-26 21:50:37 +13:00
|
|
|
|
|
|
|
export function createPermissionStore() {
|
2021-03-22 21:59:22 +13:00
|
|
|
const { subscribe, set } = writable([])
|
|
|
|
|
|
|
|
return {
|
|
|
|
subscribe,
|
|
|
|
fetchLevels: async () => {
|
|
|
|
const response = await api.get("/api/permission/levels")
|
|
|
|
const json = await response.json()
|
|
|
|
set(json)
|
|
|
|
},
|
|
|
|
forResource: async resourceId => {
|
|
|
|
const response = await api.get(`/api/permission/${resourceId}`)
|
|
|
|
const json = await response.json()
|
|
|
|
return json
|
|
|
|
},
|
|
|
|
save: async ({ role, resource, level }) => {
|
|
|
|
const response = await api.post(
|
|
|
|
`/api/permission/${role}/${resource}/${level}`
|
|
|
|
)
|
|
|
|
const json = await response.json()
|
|
|
|
return json
|
|
|
|
},
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
export const permissions = createPermissionStore()
|