in packages/better-auth/src/plugins/admin/admin.ts [1255:1329]
userHasPermission: createAuthEndpoint(
"/admin/has-permission",
{
method: "POST",
body: z
.object({
userId: z.coerce.string().optional(),
role: z.string().optional(),
})
.and(
z.union([
z.object({
permission: z.record(z.string(), z.array(z.string())),
permissions: z.undefined(),
}),
z.object({
permission: z.undefined(),
permissions: z.record(z.string(), z.array(z.string())),
}),
]),
),
metadata: {
openapi: {
description: "Check if the user has permission",
requestBody: {
content: {
"application/json": {
schema: {
type: "object",
properties: {
permission: {
type: "object",
description: "The permission to check",
deprecated: true,
},
permissions: {
type: "object",
description: "The permission to check",
},
},
required: ["permissions"],
},
},
},
},
responses: {
"200": {
description: "Success",
content: {
"application/json": {
schema: {
type: "object",
properties: {
error: {
type: "string",
},
success: {
type: "boolean",
},
},
required: ["success"],
},
},
},
},
},
},
$Infer: {
body: {} as PermissionExclusive & {
userId?: string;
role?: InferAdminRolesFromOption<O>;
},
},
},
},