UNPKG

@elsikora/nestjs-crud-automator

Version:

A library for automating the creation of CRUD operations in NestJS.

34 lines (31 loc) 1.28 kB
'use strict'; /** * Checks whether a granted permission satisfies a required permission. * Supported wildcard forms are `*`, `<prefix>.*`, and exact matches. * Wildcards are evaluated only on granted permissions. * @param {string} grantedPermission - Permission granted to the principal. * @param {string} requiredPermission - Concrete permission required by the rule. * @returns {boolean} True when the granted permission satisfies the requirement. */ function AuthorizationPermissionMatches(grantedPermission, requiredPermission) { if (grantedPermission.length === 0 || requiredPermission.length === 0) { return false; } if (grantedPermission === "*") { return true; } if (!grantedPermission.includes("*")) { return grantedPermission === requiredPermission; } if (!grantedPermission.endsWith(".*")) { return false; } // eslint-disable-next-line @elsikora/typescript/no-magic-numbers const permissionPrefix = grantedPermission.slice(0, -2); if (permissionPrefix.length === 0) { return false; } return requiredPermission.startsWith(`${permissionPrefix}.`); } exports.AuthorizationPermissionMatches = AuthorizationPermissionMatches; //# sourceMappingURL=matches.utility.js.map