114 lines
2.7 KiB
JavaScript
114 lines
2.7 KiB
JavaScript
|
|
|
|
/*const rights2 = ref({
|
|
projects: {
|
|
label: "Projekte",
|
|
children: {
|
|
viewOwnProjects: {label: "Eigene Projekte sehen"},
|
|
viewAllProjects: {label: "Alle Projekte sehen"},
|
|
}
|
|
},
|
|
createUser: {label: "Benutzer erstellen"},
|
|
modifyUser: {label: "Benutzer bearbeiten"},
|
|
deactivateUser: {label: "Benutzer sperren"},
|
|
createProject: {label: "Projekt erstellen"},
|
|
|
|
createTask: {label: "Aufgabe erstellen"},
|
|
viewOwnTasks: {label:"Eigene Aufgaben sehen"},
|
|
viewAllTasks: {label: "Alle Aufgaben sehen"},
|
|
trackOwnTime: {label:"Eigene Zeite erfassen"},
|
|
createOwnTime: {label:"Eigene Zeiten erstellen"},
|
|
createTime: {label:"Zeiten erstellen"},
|
|
viewOwnTimes: {label:"Eigene Zeiten anzeigen"},
|
|
viewTimes: {label:"Zeiten anzeigen"},
|
|
})*/
|
|
|
|
|
|
|
|
|
|
export const useRole = () => {
|
|
const supabase = useSupabaseClient()
|
|
const dataStore = useDataStore()
|
|
|
|
|
|
const rights = ref({
|
|
projects: {
|
|
label: "Projekte"
|
|
},
|
|
"projects-viewAll": {
|
|
label: "Alle Projekte einsehen",
|
|
parent: "projects"
|
|
},
|
|
"projects-viewOwn": {
|
|
label: "Eigene Projekte einsehen",
|
|
parent: "projects"
|
|
},
|
|
"projects-create": {
|
|
label: "Projekte erstellen",
|
|
parent: "projects"
|
|
},
|
|
contracts: {
|
|
label: "Verträge"
|
|
},
|
|
objects: {
|
|
label: "Objekte"
|
|
},
|
|
checks: {
|
|
label: "Überprüfungen"
|
|
},
|
|
})
|
|
|
|
|
|
let role = dataStore.activeProfile.role
|
|
|
|
/*const checkRight = (right) => {
|
|
let rightsToCheck = [right]
|
|
|
|
if(rights.value[right].parent) {
|
|
rightsToCheck.push(rights.value[right].parent)
|
|
}
|
|
|
|
let hasAllNeccessaryRights = false
|
|
|
|
rightsToCheck.forEach(i => {
|
|
if(role.rights.includes(i)){
|
|
hasAllNeccessaryRights = true
|
|
} else {
|
|
hasAllNeccessaryRights = false
|
|
}
|
|
})
|
|
|
|
return hasAllNeccessaryRights
|
|
}*/
|
|
|
|
const checkRight = (right) => {
|
|
let rightsToCheck = [right]
|
|
|
|
//console.log(right.split("-"))
|
|
|
|
if(right.split("-").length > 1) {
|
|
rightsToCheck.push(right.split("-")[0])
|
|
}
|
|
//console.log(rightsToCheck)
|
|
|
|
let hasAllNeccessaryRights = true
|
|
|
|
//console.log(role.rights)
|
|
|
|
rightsToCheck.forEach(i => {
|
|
if(!role.rights.includes(i)){
|
|
hasAllNeccessaryRights = false
|
|
}
|
|
})
|
|
|
|
//console.log(hasAllNeccessaryRights)
|
|
|
|
return hasAllNeccessaryRights
|
|
}
|
|
|
|
return {
|
|
role,
|
|
checkRight
|
|
}
|
|
|
|
} |