322 lines
8.5 KiB
JavaScript
322 lines
8.5 KiB
JavaScript
|
|
|
|
|
|
|
|
|
|
export const useRole = () => {
|
|
const profileStore = useProfileStore()
|
|
|
|
const generalAvailableRights = ref({
|
|
projects: {
|
|
label: "Projekte",
|
|
showToAllUsers: false
|
|
},
|
|
"projects-viewAll": {
|
|
label: "Alle Projekte einsehen",
|
|
parent: "projects"
|
|
},
|
|
"projects-create": {
|
|
label: "Projekte erstellen",
|
|
parent: "projects"
|
|
},
|
|
contracts: {
|
|
label: "Verträge",
|
|
showToAllUsers: false
|
|
},
|
|
"contracts-viewAll": {
|
|
label: "Alle Verträge einsehen",
|
|
parent: "contracts"
|
|
},
|
|
"contracts-create": {
|
|
label: "Verträge erstellen",
|
|
parent: "contracts"
|
|
},
|
|
contracttypes: {
|
|
label: "Vertragstypen",
|
|
showToAllUsers: false
|
|
},
|
|
"contracttypes-viewAll": {
|
|
label: "Alle Vertragstypen einsehen",
|
|
parent: "contracttypes"
|
|
},
|
|
"contracttypes-create": {
|
|
label: "Vertragstypen erstellen",
|
|
parent: "contracttypes"
|
|
},
|
|
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",
|
|
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"
|
|
},
|
|
inventoryitemgroups: {
|
|
parent: "inventoryitems",
|
|
label: "Inventarartikelgruppen",
|
|
showToAllUsers: false
|
|
},
|
|
"inventoryitemgroups-viewAll": {
|
|
label: "Alle Inventarartikelgruppen einsehen",
|
|
parent: "inventoryitemgroups"
|
|
},
|
|
"inventoryitemgroups-create": {
|
|
label: "Inventarartikelgruppen erstellen",
|
|
parent: "inventoryitemgroups"
|
|
},
|
|
absencerequests: {
|
|
label: "Abwesenheiten",
|
|
showToAllUsers: false
|
|
},
|
|
"absencerequests-viewAll": {
|
|
label: "Alle Abwesenheiten einsehen",
|
|
parent: "absencerequests"
|
|
},
|
|
"absencerequests-create": {
|
|
label: "Abwesenheiten erstellen",
|
|
parent: "absencerequests"
|
|
},
|
|
events: {
|
|
label: "Termine",
|
|
showToAllUsers: false
|
|
},
|
|
"events-viewAll": {
|
|
label: "Alle Termine einsehen",
|
|
parent: "events"
|
|
},
|
|
"events-create": {
|
|
label: "Termine erstellen",
|
|
parent: "events"
|
|
},
|
|
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"
|
|
},
|
|
tasks: {
|
|
label: "Aufgaben",
|
|
showToAllUsers: false
|
|
},
|
|
"tasks-viewAll": {
|
|
label: "Alle Aufgaben einsehen",
|
|
parent: "tasks"
|
|
},
|
|
"tasks-create": {
|
|
label: "Aufgaben erstellen",
|
|
parent: "tasks"
|
|
},
|
|
costcentres: {
|
|
label: "Kostenstellen",
|
|
showToAllUsers: false
|
|
},
|
|
"costcentres-viewAll": {
|
|
label: "Alle Kostenstellen einsehen",
|
|
parent: "costcentres"
|
|
},
|
|
"costcentres-create": {
|
|
label: "Kostenstellen erstellen",
|
|
parent: "costcentres"
|
|
},
|
|
ownaccounts: {
|
|
label: "Buchungskonten",
|
|
showToAllUsers: false
|
|
},
|
|
"ownaccounts-viewAll": {
|
|
label: "Alle Buchungskonten einsehen",
|
|
parent: "ownaccounts"
|
|
},
|
|
"ownaccounts-create": {
|
|
label: "Buchungskonten erstellen",
|
|
parent: "ownaccounts"
|
|
},
|
|
documentboxes: {
|
|
label: "Dokuemntenboxen",
|
|
showToAllUsers: false
|
|
},
|
|
"documentboxes-viewAll": {
|
|
label: "Alle Dokuemntenboxen einsehen",
|
|
parent: "documentboxesx"
|
|
},
|
|
"documentboxes-create": {
|
|
label: "Dokuemntenboxen erstellen",
|
|
parent: "documentboxes"
|
|
},
|
|
hourrates: {
|
|
label: "Stundensätze",
|
|
showToAllUsers: false
|
|
},
|
|
"hourrates-viewAll": {
|
|
label: "Alle Stundensätze einsehen",
|
|
parent: "hourrates"
|
|
},
|
|
"hourrates-create": {
|
|
label: "Stundensätze erstellen",
|
|
parent: "hourrates"
|
|
},
|
|
"inventory": {
|
|
label: "Lager",
|
|
},
|
|
})
|
|
|
|
|
|
let role = profileStore.activeProfile.role
|
|
|
|
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
|
|
}
|
|
})
|
|
|
|
return hasAllNeccessaryRights
|
|
}
|
|
|
|
return {
|
|
role,
|
|
generalAvailableRights,
|
|
checkRight
|
|
}
|
|
|
|
}
|