You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
willaengine/resources/js/Global/mixins/global.js

53 lines
1.4 KiB

import { mapActions } from "vuex";
import globalStore from "@Global/store";
import authStore from "@Core/store";
import permissionList from "@Global/utils/Permissions/list";
const global = {
methods: {
$_getPath(subPath) {
return "/" + subPath;
},
//Modal
...mapActions("modal", ["openModal", "closeModal", "dialog"]),
$_openModal(options) {
this.openModal(options);
},
$_closeModal(options) {
this.closeModal(options);
},
//Alert
$_dialog(options) {
this.dialog(options);
},
//Permission
$_hasPermission(permission, owner = false) {
return true;
let currentModule = globalStore.state.common.current_module;
let permissions = authStore.state.auth.permissions;
let multiPermission = permission.split("|");
for (const iterator of multiPermission) {
if (iterator == '') {
return true;
}
permission = permissionList[iterator];
if (
owner ||
(permission &&
permissions[currentModule] &&
permissions[currentModule].includes(permission))
) {
return true;
}
}
return false;
}
}
};
export { global };