permission.js 820 Bytes
import store from '@/store';

/**
 * TODO 跟动态菜单走
 * @param {Array|String} value
 * @returns {Boolean}
 * @example see @/views/permission/directive.vue
 */
export default function checkPermission(value) {
    if (value && typeof value === 'string') {
        value = [value];
    }
    if (value && value instanceof Array && value.length > 0) {
        const permissions = store.getters && store.getters.permissions;
        const needPermissions = value;

        const hasPermission = permissions.some(permission => {
            return needPermissions.includes(permission);
        });

        if (!hasPermission) {
            return false;
        }
        return true;
    } else {
        console.error(`need permissions! Like v-permission="['user:list','user:add']"`);
        return false;
    }
}