Skip to content

createRoleManager

createRoleManager(d1, options?): object

Defined in: packages/auth/src/roles.ts:68

Creates a role manager backed by a Cloudflare D1 database.

Provides methods to query, assign, replace, and remove user roles. When roleGrants is configured, assignment methods enforce authorization rules so that, for example, an editor cannot promote someone to admin.

D1Database

The Cloudflare D1 database binding.

RoleManagerOptions

Optional configuration for table name and role grant rules.

object

An object with getRoles, setRole, setRoles, and removeRole methods.

getRoles(userId): Promise<string[]>

string

Promise<string[]>

removeRole(userId, role): Promise<void>

string

string

Promise<void>

setRole(userId, role, caller?): Promise<void>

string

string

CallerOptions

Promise<void>

setRoles(userId, roles, caller?): Promise<void>

string

string[]

CallerOptions

Promise<void>

import { createRoleManager } from "@cfast/auth";
const roles = createRoleManager(env.DB, {
roleGrants: {
admin: ["admin", "editor", "user"],
editor: ["user"],
},
});
const userRoles = await roles.getRoles(userId);
await roles.setRole(userId, "editor", { callerRoles: ["admin"] });