Changes in Rights and Roles
This commit is contained in:
@@ -4,63 +4,186 @@
|
||||
|
||||
|
||||
export const useRole = () => {
|
||||
const supabase = useSupabaseClient()
|
||||
const dataStore = useDataStore()
|
||||
|
||||
|
||||
const rights = ref({
|
||||
const generalAvailableRights = ref({
|
||||
projects: {
|
||||
label: "Projekte"
|
||||
label: "Projekte",
|
||||
showToAllUsers: false
|
||||
},
|
||||
"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"
|
||||
label: "Verträge",
|
||||
showToAllUsers: false
|
||||
},
|
||||
objects: {
|
||||
label: "Objekte"
|
||||
"contracts-viewAll": {
|
||||
label: "Alle Verträge einsehen",
|
||||
parent: "contracts"
|
||||
},
|
||||
"contracts-create": {
|
||||
label: "Verträge erstellen",
|
||||
parent: "contracts"
|
||||
},
|
||||
plants: {
|
||||
label: "Objekte",
|
||||
showToAllUsers: false
|
||||
},
|
||||
"plants-viewAll": {
|
||||
label: "Alle Objekte einsehen",
|
||||
parent: "plants"
|
||||
},
|
||||
"plants-create": {
|
||||
label: "Objekte erstellen",
|
||||
parent: "plants"
|
||||
},
|
||||
products: {
|
||||
label: "Artikel",
|
||||
showToAllUsers: true
|
||||
},
|
||||
"products-create": {
|
||||
label: "Artikel erstellen",
|
||||
parent: "products"
|
||||
},
|
||||
productcategories: {
|
||||
label: "Artikelkategorie",
|
||||
showToAllUsers: true
|
||||
},
|
||||
"productcategories-create": {
|
||||
label: "Artikelkategorie erstellen",
|
||||
parent: "productcategories"
|
||||
},
|
||||
services: {
|
||||
label: "Leistungen",
|
||||
showToAllUsers: true
|
||||
},
|
||||
"services-create": {
|
||||
label: "Leistungen erstellen",
|
||||
parent: "services"
|
||||
},
|
||||
servicecategories: {
|
||||
label: "Leistungskategorien",
|
||||
showToAllUsers: true
|
||||
},
|
||||
"servicecategories-create": {
|
||||
label: "Leistungskategorien erstellen",
|
||||
parent: "servicecategories"
|
||||
},
|
||||
customers: {
|
||||
label: "Kunden",
|
||||
showToAllUsers: false
|
||||
},
|
||||
"customers-viewAll": {
|
||||
label: "Alle Kunden einsehen",
|
||||
parent: "customers"
|
||||
},
|
||||
"customers-create": {
|
||||
label: "Kunden erstellen",
|
||||
parent: "customers"
|
||||
},
|
||||
contacts: {
|
||||
label: "Kontakte",
|
||||
showToAllUsers: false
|
||||
},
|
||||
"contacts-viewAll": {
|
||||
label: "Alle Kontakte einsehen",
|
||||
parent: "contacts"
|
||||
},
|
||||
"contacts-create": {
|
||||
label: "Kontakte erstellen",
|
||||
parent: "contacts"
|
||||
},
|
||||
vendors: {
|
||||
label: "Lieferanten",
|
||||
showToAllUsers: false
|
||||
},
|
||||
"vendors-viewAll": {
|
||||
label: "Alle Lieferanten einsehen",
|
||||
parent: "vendors"
|
||||
},
|
||||
"vendors-create": {
|
||||
label: "Lieferanten erstellen",
|
||||
parent: "vendors"
|
||||
},
|
||||
checks: {
|
||||
label: "Überprüfungen"
|
||||
label: "Überprüfungen",
|
||||
showToAllUsers: false
|
||||
},
|
||||
"checks-viewAll": {
|
||||
label: "Alle Überprüfungen einsehen",
|
||||
parent: "checks"
|
||||
},
|
||||
"checks-create": {
|
||||
label: "Überprüfungen erstellen",
|
||||
parent: "checks"
|
||||
},
|
||||
vehicles: {
|
||||
label: "Fahrzeuge",
|
||||
showToAllUsers: false
|
||||
},
|
||||
"vehicles-viewAll": {
|
||||
label: "Alle Fahrzeuge einsehen",
|
||||
parent: "vehicles"
|
||||
},
|
||||
"vehicles-create": {
|
||||
label: "Fahrzeuge erstellen",
|
||||
parent: "vehicles"
|
||||
},
|
||||
inventoryitems: {
|
||||
label: "Inventarartikel",
|
||||
showToAllUsers: false
|
||||
},
|
||||
"inventoryitems-viewAll": {
|
||||
label: "Alle Inventarartikel einsehen",
|
||||
parent: "inventoryitems"
|
||||
},
|
||||
"inventoryitems-create": {
|
||||
label: "Inventarartikel erstellen",
|
||||
parent: "inventoryitems"
|
||||
},
|
||||
spaces: {
|
||||
label: "Lagerplätze",
|
||||
showToAllUsers: false
|
||||
},
|
||||
"spaces-viewAll": {
|
||||
label: "Alle Lagerplätze einsehen",
|
||||
parent: "spaces"
|
||||
},
|
||||
"spaces-create": {
|
||||
label: "Lagerplätze erstellen",
|
||||
parent: "spaces"
|
||||
},
|
||||
roles: {
|
||||
label: "Rollen",
|
||||
showToAllUsers: false
|
||||
},
|
||||
"roles-viewAll": {
|
||||
label: "Alle Rollen einsehen",
|
||||
parent: "roles"
|
||||
},
|
||||
"roles-create": {
|
||||
label: "Rollen erstellen",
|
||||
parent: "roles"
|
||||
},
|
||||
"inventory": {
|
||||
label: "Lager",
|
||||
},
|
||||
})
|
||||
|
||||
|
||||
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) {
|
||||
@@ -78,13 +201,12 @@ export const useRole = () => {
|
||||
}
|
||||
})
|
||||
|
||||
//console.log(hasAllNeccessaryRights)
|
||||
|
||||
return hasAllNeccessaryRights
|
||||
}
|
||||
|
||||
return {
|
||||
role,
|
||||
generalAvailableRights,
|
||||
checkRight
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user