22 lines
504 B
TypeScript
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;
|
|
};
|