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

52 lines
1.7 KiB

import { mapActions } from "vuex";
import globalStore from "@Global/store";
import authStore from "@Core/store";
import permissionList from "@Global/utils/Permissions/list";
5 years ago
import { UserService } from "@Global/services/storage.services";
const global = {
methods: {
5 years ago
$_getPath(subPath = '') {
5 years ago
const path = process.env.MIX_PUSHER_APP_PUBLIC_PATH ? process.env.MIX_PUSHER_APP_PUBLIC_PATH : '/';
return path + subPath;
5 years ago
},
//Modal
...mapActions("modal", ["$_openModal", "$_closeModal", "$_openModalCallback", "$_closeModalCallback", "dialog", "$_openModalStack", "$_closeModalStack"]),
5 years ago
//Alert
$_dialog(options) {
this.dialog(options);
},
5 years ago
//Permission
$_hasPermission(permission, owner = false) {
let currentModule = globalStore.state.common.current_module;
let permissions = authStore.state.auth.permissions;
let multiPermission = permission.split("|");
5 years ago
let siteOwner = !!UserService.get().is_owner;
for (const iterator of multiPermission) {
5 years ago
if (iterator == "") {
return true;
}
permission = permissionList[iterator];
if (
5 years ago
siteOwner ||
owner ||
(permission &&
permissions[currentModule] &&
5 years ago
Object.values(permissions[currentModule]).includes(
permission
))
) {
return true;
}
}
return false;
}
}
};
export { global };