50 lines
1.1 KiB
JavaScript
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
|
|
}; |