forked from Cutlery/immich
f230b3aa42
feat(server): api auth permissions
16 lines
374 B
TypeScript
16 lines
374 B
TypeScript
import { Permission } from 'src/enum';
|
|
import { setIsSuperset } from 'src/utils/set';
|
|
|
|
export type GrantedRequest = {
|
|
requested: Permission[];
|
|
current: Permission[];
|
|
};
|
|
|
|
export const isGranted = ({ requested, current }: GrantedRequest) => {
|
|
if (current.includes(Permission.ALL)) {
|
|
return true;
|
|
}
|
|
|
|
return setIsSuperset(new Set(current), new Set(requested));
|
|
};
|