hasPermissionhasPermission works. This is my code currently:import { createAccessControl } from 'better-auth/plugins/access';
import { defaultStatements, userAc } from 'better-auth/plugins/admin/access';
const statement = {
...defaultStatements,
parent: ['create', 'read', 'update', 'delete'],
child: ['create', 'read', 'update', 'delete'],
caregiver: ['create', 'read', 'update', 'delete'],
} as const;
export const accessControl = createAccessControl(statement);
export const user = accessControl.newRole({ ...userAc.statements });
export const parent = accessControl.newRole({
parent: ['create', 'read', 'update', 'delete'],
child: ['create', 'read', 'update', 'delete'],
});
export const caregiver = accessControl.newRole({
caregiver: ['create', 'read', 'update', 'delete'],
});import { createAccessControl } from 'better-auth/plugins/access';
import { defaultStatements, userAc } from 'better-auth/plugins/admin/access';
const statement = {
...defaultStatements,
parent: ['create', 'read', 'update', 'delete'],
child: ['create', 'read', 'update', 'delete'],
caregiver: ['create', 'read', 'update', 'delete'],
} as const;
export const accessControl = createAccessControl(statement);
export const user = accessControl.newRole({ ...userAc.statements });
export const parent = accessControl.newRole({
parent: ['create', 'read', 'update', 'delete'],
child: ['create', 'read', 'update', 'delete'],
});
export const caregiver = accessControl.newRole({
caregiver: ['create', 'read', 'update', 'delete'],
});import type { auth } from '@/auth';
import { env } from '@/env';
import {
adminClient,
customSessionClient,
inferAdditionalFields,
} from 'better-auth/client/plugins';
import { createAuthClient } from 'better-auth/react';
import { accessControl, caregiver, parent, user } from './permissions';
export const authClient = createAuthClient({
baseURL: env.BETTER_AUTH_URL,
plugins: [
inferAdditionalFields<typeof auth>(),
customSessionClient<typeof auth>(),
adminClient({ accessControl, roles: { parent, user, caregiver } }),
],
});
export const canCreateCaregiver = await authClient.admin.hasPermission({
permissions: {
caregiver: ['create'], // Getting an error that caregiver doesn't exist
},
});
export const { signIn, signOut, useSession } = authClient;import type { auth } from '@/auth';
import { env } from '@/env';
import {
adminClient,
customSessionClient,
inferAdditionalFields,
} from 'better-auth/client/plugins';
import { createAuthClient } from 'better-auth/react';
import { accessControl, caregiver, parent, user } from './permissions';
export const authClient = createAuthClient({
baseURL: env.BETTER_AUTH_URL,
plugins: [
inferAdditionalFields<typeof auth>(),
customSessionClient<typeof auth>(),
adminClient({ accessControl, roles: { parent, user, caregiver } }),
],
});
export const canCreateCaregiver = await authClient.admin.hasPermission({
permissions: {
caregiver: ['create'], // Getting an error that caregiver doesn't exist
},
});
export const { signIn, signOut, useSession } = authClient;export default async function CaregiverOnboardingPage() {
const session = await auth.api.getSession({ headers: await headers() });
if (!session?.user) {
redirect("/login");
}
if (!canCreateCaregiver) {
redirect("/dashboard");
}
// Rest of the component
}export default async function CaregiverOnboardingPage() {
const session = await auth.api.getSession({ headers: await headers() });
if (!session?.user) {
redirect("/login");
}
if (!canCreateCaregiver) {
redirect("/dashboard");
}
// Rest of the component
}