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.
|
|
|
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) {
|
|
|
|
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] &&
|
|
|
|
Object.values(permissions[currentModule]).includes(permission))
|
|
|
|
) {
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
export { global };
|