golscontrol-frontend-v1/src/plugins/RolePermission.js

50 lines
1.1 KiB
JavaScript

import { ref } from 'vue';
const permissionsInit = ref(false)
const allPermissions = ref([])
/**
* Permite consultar si un usuario tiene un permiso especifico
*/
const hasPermission = (can) => {
let verifyPermissions = can.split('|');
for (let permision in verifyPermissions) {
if(allPermissions.value.length != 0) {
if(allPermissions.value.indexOf(verifyPermissions[permision]) != -1) {
return true;
}
}
}
return false;
}
const bootPermissions = () => {
if (!permissionsInit.value) {
axios.get(route('system.permissions')).then((res) => {
loadPermissions(res.data.data.permissions)
permissionsInit.value = true;
})
}
}
const resetPermissions = () => {
allPermissions.value = [];
permissionsInit.value = false;
}
const loadPermissions = (permissionList = []) => {
if (permissionList.length > 0) {
permissionList.forEach(element => {
allPermissions.value.push(element.name)
});
}
}
export {
bootPermissions,
hasPermission,
resetPermissions
};