UNPKG

@better-auth-ui/core

Version:

Authentication components and data utilities for [Better Auth](https://better-auth.com), available for React and Solid.

127 lines (126 loc) 4.1 kB
import { AdminLocalization } from './admin-localization'; export type AdminPluginOptions = { /** Roles Better Auth treats as administrators. @default ["admin"] */ adminRoles?: string | readonly string[]; /** User IDs Better Auth treats as administrators regardless of role. */ adminUserIds?: readonly string[]; /** Whether users can have more than one role. @default true */ allowMultipleRoles?: boolean; /** Default role selected when an administrator creates a user. @default "user" */ defaultRole?: string; /** Where to navigate after starting an impersonation session. */ impersonationRedirectTo?: string; /** * Override the plugin's default localization strings. * @remarks `AdminLocalization` */ localization?: Partial<AdminLocalization>; /** Number of users loaded per page. Clamped to 1-100. @default 20 */ pageSize?: number; /** Roles offered by user-management forms. @default ["user", "admin"] */ roles?: readonly string[]; /** Show session IP addresses. @default false */ showIpAddress?: boolean; }; /** Check whether a target requires Better Auth's `user:impersonate-admins` permission. */ export declare function isAdminTarget(user: { id: string; role?: string | null; }, adminRoles?: readonly string[], adminUserIds?: readonly string[]): boolean; export type ImpersonatingSession = { session: { impersonatedBy: string; }; }; /** * Check whether a Better Auth session belongs to an impersonated user. */ export declare function isImpersonatingSession(session: unknown): session is ImpersonatingSession; /** * Adds UI integrations for Better Auth's admin plugin. * * Pair this UI plugin with Better Auth's `admin()` server plugin and * `adminClient()` client plugin. */ export declare const adminPlugin: ((options?: AdminPluginOptions | undefined) => { adminRoles: string[]; adminUserIds: string[]; allowMultipleRoles: boolean; defaultRole: string; impersonationRedirectTo: string | undefined; localization: { accessDenied: string; accessDeniedDescription: string; active: string; accountInformation: string; admin: string; banned: string; banDuration: string; banDurationDescription: string; banExpires: string; banReason: string; banUser: string; cancel: string; close: string; copyUserId: string; created: string; createUser: string; deleteUser: string; dangerZone: string; email: string; emailVerified: string; endsWith: string; filterAllStatuses: string; loadUsersError: string; loadUsersErrorDescription: string; name: string; moreActions: string; noUsers: string; noUsersDescription: string; nextPage: string; previousPage: string; impersonateUser: string; overview: string; password: string; profileAndAccess: string; retry: string; role: string; search: string; searchOperator: string; searchContains: string; startsWith: string; searchByEmail: string; searchByName: string; sessions: string; noSessions: string; revoke: string; revokeAllSessions: string; saveRole: string; saveChanges: string; saveUser: string; setPassword: string; security: string; status: string; sort: string; sortNewest: string; sortOldest: string; sortNameAscending: string; sortNameDescending: string; stopImpersonating: string; userDetails: string; userId: string; unknownView: string; unknownViewDescription: string; unbanUser: string; users: string; usersDescription: string; usersPaginationRange: string; }; pageSize: number; roles: string[]; showIpAddress: boolean; } & { id: "admin"; }) & { id: "admin"; };