paperclip/server/src/services/agent-permissions.ts

28 lines
746 B
TypeScript
Raw Normal View History

export type NormalizedAgentPermissions = Record<string, unknown> & {
canCreateAgents: boolean;
};
export function defaultPermissionsForRole(role: string): NormalizedAgentPermissions {
return {
canCreateAgents: role === "ceo",
};
}
export function normalizeAgentPermissions(
permissions: unknown,
role: string,
): NormalizedAgentPermissions {
const defaults = defaultPermissionsForRole(role);
if (typeof permissions !== "object" || permissions === null || Array.isArray(permissions)) {
return defaults;
}
const record = permissions as Record<string, unknown>;
return {
canCreateAgents:
typeof record.canCreateAgents === "boolean"
? record.canCreateAgents
: defaults.canCreateAgents,
};
}