web-service/libs/shared/src/utils/match-privileges.ts

22 lines
504 B
TypeScript

export const matchPrivileges = (required: string[], privileges: string[]) => {
let someAvailable = false;
for (const want of required) {
if (someAvailable) break;
if (privileges.includes(want)) {
someAvailable = true;
continue;
}
if (want.endsWith('*')) {
const asteriskLess = want.replace('*', '');
if (privileges.some((item) => item.startsWith(asteriskLess))) {
someAvailable = true;
continue;
}
}
}
return someAvailable;
};