"use strict"; const store_index = require("../store/index.js"); function authPermission(permission) { const all_permission = "*:*:*"; const permissions = store_index.store.getters && store_index.store.getters.permissions; if (permission && permission.length > 0) { return permissions.some((v) => { return all_permission === v || v === permission; }); } else { return false; } } function authRole(role) { const super_admin = "admin"; const roles = store_index.store.getters && store_index.store.getters.roles; if (role && role.length > 0) { return roles.some((v) => { return super_admin === v || v === role; }); } else { return false; } } const Auth = { /** * 验证用户是否具备某权限 * @param permission 权限符 * @returns */ hasPermi(permission) { return authPermission(permission); }, /** * 验证用户是否含有指定权限,只需包含其中一个 * @param permissions 权限符数组 * @returns */ hasPermiOr(permissions) { return permissions.some((item) => { return authPermission(item); }); }, /** * 验证用户是否含有指定权限,必须全部拥有 * @param permissions 权限符数组 * @returns */ hasPermiAnd(permissions) { return permissions.every((item) => { return authPermission(item); }); }, /** * 验证用户是否具备某角色 * @param role 角色 * @returns */ hasRole(role) { return authRole(role); }, /** * 验证用户是否含有指定角色,只需包含其中一个 * @param roles 角色数组 * @returns */ hasRoleOr(roles) { return roles.some((item) => { return authRole(item); }); }, /** * 验证用户是否含有指定角色,必须全部拥有 * @param roles 角色数组 * @returns */ hasRoleAnd(roles) { return roles.every((item) => { return authRole(item); }); } }; exports.Auth = Auth;