feat: role system
This commit is contained in:
18
src/shared/lib/permissions/index.ts
Normal file
18
src/shared/lib/permissions/index.ts
Normal file
@@ -0,0 +1,18 @@
|
||||
export const canRead = (roles: string[] | undefined, resource: string): boolean => {
|
||||
if (!roles || roles.length === 0) return false;
|
||||
return (
|
||||
roles.includes("admin") ||
|
||||
roles.includes(`${resource}_ro`) ||
|
||||
roles.includes(`${resource}_rw`)
|
||||
);
|
||||
};
|
||||
|
||||
export const canWrite = (roles: string[] | undefined, resource: string): boolean => {
|
||||
if (!roles || roles.length === 0) return false;
|
||||
return roles.includes("admin") || roles.includes(`${resource}_rw`);
|
||||
};
|
||||
|
||||
export const createPermissions = (roles: string[] | undefined) => ({
|
||||
canRead: (resource: string) => canRead(roles, resource),
|
||||
canWrite: (resource: string) => canWrite(roles, resource),
|
||||
});
|
||||
Reference in New Issue
Block a user