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

58 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: {
$_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
5 years ago
...mapActions("modal", ["openModal", "closeModal", "dialog"]),
$_openModal(options) {
this.openModal(options);
},
$_closeModal(options) {
this.closeModal(options);
},
//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 };