import { mapActions } from "vuex"; import globalStore from "@Global/store"; import authStore from "@Core/store"; import permissionList from "@Global/utils/Permissions/list"; import { UserService } from "@Global/services/storage.services"; import $_can from "@Global/policy/can"; const global = { methods: { $_getPath(subPath = "") { subPath = subPath.startsWith("/") ? subPath.substr(1) : subPath; const path = process.env.MIX_PUSHER_APP_PUBLIC_PATH ? process.env.MIX_PUSHER_APP_PUBLIC_PATH : "/"; return path + subPath; }, //Modal ...mapActions("modal", [ "$_dialog", "$_helper", "$_openModalStack", "$_closeModalStack" ]), $_can, //Permission $_hasPermission(permission, owner = false, module = null) { let currentModule = module ? module : globalStore.state.common.current_module; let permissions = authStore.state.auth.permissions; let multiPermission = permission.split("|"); let siteOwner = UserService.get().is_owner == "true"; for (const iterator of multiPermission) { if (iterator == "") { return true; } permission = permissionList[iterator]; if ( siteOwner || owner || (permission && permissions[currentModule] && Object.values(permissions[currentModule]).includes( permission )) ) { return true; } } return false; } } }; export { global };