|
- // /**
- // * 字符权限校验
- // * @param {Array} value 校验值
- // * @returns {Boolean}
- // */
- export function matchPerms(permissions: string[], value: string[]) {
- if (value && value instanceof Array && value.length > 0) {
- const permissionDatas = value;
- const all_permission = '*:*:*';
- const hasPermission = permissions.some((permission) => {
- return all_permission === permission || permissionDatas.includes(permission);
- });
- if (!hasPermission) {
- return false;
- }
- return true;
- }
- console.error(`need roles! Like checkPermi="['system:user:add','system:user:edit']"`);
- return false;
- }
-
- export function matchPerm(permissions: string[], value: string) {
- if (value && value.length > 0) {
- const permissionDatas = value;
- const all_permission = '*:*:*';
- const hasPermission = permissions.some((permission) => {
- return all_permission === permission || permissionDatas === permission;
- });
- if (!hasPermission) {
- return false;
- }
- return true;
- }
- console.error(`need roles! Like checkPermi="['system:user:add','system:user:edit']"`);
- return false;
- }
-
- export function matchPermission(permissions: string[] | undefined, value: any): boolean {
- if (permissions === undefined) return false;
- const type = typeof value;
- if (type === 'string') {
- return matchPerm(permissions, value);
- }
- return matchPerms(permissions, value);
- }
-
- /**
- * 角色权限校验
- * @param {Array} value 校验值
- * @returns {Boolean}
- */
- export function checkRole(roles: API.System.Role[] | undefined, value: string[]) {
- if (roles && value && value.length > 0) {
- for (let i = 0; i < roles?.length; i++) {
- for (let j = 0; j < value?.length; j++) {
- if (value[j] === roles[i].roleKey) {
- return true;
- }
- }
- }
- }
- console.error(`need roles! Like checkRole="['admin','editor']"`);
- return false;
- }
|