import store from '@/store' /** * @param {Array} value * @returns {Boolean} * @example see @/views/permission/directive.vue */ export default function checkPermission(value) { if (value && value instanceof Array && value.length > 0) { const roles = store.getters && store.getters.roles const permissionRoles = value const hasPermission = roles.some(role => { return permissionRoles.includes(role) }) if (!hasPermission) { return false } return true } else { console.error(`need roles! Like v-permission="['admin','editor']"`) return false } } export function checkBtnPermission(userType, btnType) { if (userType == 1 || userType == 2) { return true } if (!btnType) { return false } const roles = store.getters && store.getters.roles if (roles && roles.length > 0) { for (const role of roles) { const btnAccess = role.btnAccess if (!btnAccess) { return false } const btnPermission = btnAccess.split(',') if (btnPermission.indexOf('all') != -1) { return true } if (btnPermission.indexOf(btnType) != -1) { return true } } return false } else { return false } } export function checkRole(userType, roleName) { if (userType == 1 || userType == 2) { return true } if (!roleName) { return false } const roles = store.getters && store.getters.roles if (roles && roles.length > 0) { for (const role of roles) { const name = role.name if (name == roleName) { return true } } return false } else { return false } }