Files
FEDEO/frontend/composables/useRole.js
2026-01-06 12:09:31 +01:00

309 lines
8.1 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"
},
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
}
}