permission form

This commit is contained in:
Julian Krauser 2024-08-27 11:46:24 +02:00
parent 04e66dd918
commit 68efdc131b
8 changed files with 273 additions and 3 deletions

View file

@ -15,7 +15,31 @@ export const useAbilityStore = defineStore("ability", {
if (type == "admin") return permissions.admin ?? false;
if (permissions.admin) return true;
if (
(!module && permissions[section] != undefined) ||
(!module &&
permissions[section] != undefined &&
(permissions[section]?.all == "*" || permissions[section]?.all?.includes(type))) ||
permissions[section]?.all == "*" ||
permissions[section]?.all?.includes(type)
)
return true;
if (module && (permissions[section]?.[module] == "*" || permissions[section]?.[module]?.includes(type)))
return true;
return false;
},
_can:
() =>
(
permissions: PermissionObject,
type: PermissionType | "admin",
section: PermissionSection,
module?: PermissionModule
): boolean => {
if (type == "admin") return permissions.admin ?? false;
if (permissions.admin) return true;
if (
(!module &&
permissions[section] != undefined &&
(permissions[section]?.all == "*" || permissions[section]?.all?.includes(type))) ||
permissions[section]?.all == "*" ||
permissions[section]?.all?.includes(type)
)

View file

@ -205,7 +205,7 @@ export const useNavigationStore = defineStore("navigation", {
{
key: "#user",
title: "Benutzer",
component: shallowRef(defineAsyncComponent(() => import("@/views/admin/members/Overview.vue"))),
component: shallowRef(defineAsyncComponent(() => import("@/views/admin/user/User.vue"))),
},
]
: []),

View file

@ -0,0 +1,12 @@
import { defineStore } from "pinia";
export const usePermissionStore = defineStore("permission", {
state: () => {
return {
sections: [],
};
},
actions: {
logoutAccount() {},
},
});