Function: withRoleScaffold()
withRoleScaffold<
S,Grantable,RoleType,Assignee,Prefix>(schema,opts):RoleScaffoldedSchema<S,Grantable,RoleType,Assignee,Prefix>
Defined in: packages/polizy/src/role-scaffold.ts:110
Merge the runtime-roles scaffold into a schema, preserving literal types.
Type Parameters
S
S extends AuthSchema<any, any, any, any, any>
Grantable
Grantable extends readonly keyof S["actionToRelations"] & string[]
RoleType
RoleType extends string = "role"
Assignee
Assignee extends string = "assignee"
Prefix
Prefix extends string = "cap_"
Parameters
schema
S
opts
assigneeRelation?
Assignee
Reserved group relation for user->role membership. Default "assignee".
capPrefix?
Prefix
Prefix for the per-action capability relations. Default "cap_".
grantable
Grantable
roleType?
RoleType
Object type for role objects. Default "role".
Returns
RoleScaffoldedSchema<S, Grantable, RoleType, Assignee, Prefix>
Example
const schema = withRoleScaffold(baseSchema, {
grantable: ["view_bookings", "issue_refunds"],
});
// `role` object type, `assignee` group relation, and `cap_view_bookings` /
// `cap_issue_refunds` direct relations are now part of `schema`.