core/apps/webapp/app/services/authorization.server.ts
Harshith Mullapudi 0853a30897 Feat: added API
2025-06-03 10:04:12 +05:30

31 lines
798 B
TypeScript

export type AuthorizationAction = "read" | "write" | string; // Add more actions as needed
const ResourceTypes = ["spaces"] as const;
export type AuthorizationResources = {
[key in (typeof ResourceTypes)[number]]?: string | string[];
};
export type AuthorizationEntity = {
type: "PRIVATE";
scopes?: string[];
};
export type AuthorizationResult =
| { authorized: true }
| { authorized: false; reason: string };
/**
* Checks if the given entity is authorized to perform a specific action on a resource.
*/
export function checkAuthorization(
entity: AuthorizationEntity,
): AuthorizationResult {
// "PRIVATE" is a secret key and has access to everything
if (entity.type === "PRIVATE") {
return { authorized: true };
}
return { authorized: false, reason: "No key" };
}