better-auth
Version:
The most comprehensive authentication framework for TypeScript.
40 lines (39 loc) • 1.05 kB
JavaScript
import { PACKAGE_VERSION } from "../../version.mjs";
import { adminAc, userAc } from "./access/statement.mjs";
import { ADMIN_ERROR_CODES } from "./error-codes.mjs";
import { hasPermission } from "./has-permission.mjs";
//#region src/plugins/admin/client.ts
const adminClient = (options) => {
const roles = {
admin: adminAc,
user: userAc,
...options?.roles
};
return {
id: "admin-client",
version: PACKAGE_VERSION,
$InferServerPlugin: {},
getActions: () => ({ admin: { checkRolePermission: (data) => {
return hasPermission({
role: data.role,
options: {
ac: options?.ac,
roles
},
permissions: data.permissions
});
} } }),
pathMethods: {
"/admin/list-users": "GET",
"/admin/impersonate-user": "POST",
"/admin/stop-impersonating": "POST"
},
atomListeners: [{
matcher: (path) => path === "/admin/impersonate-user" || path === "/admin/stop-impersonating",
signal: "$sessionSignal"
}],
$ERROR_CODES: ADMIN_ERROR_CODES
};
};
//#endregion
export { ADMIN_ERROR_CODES, adminClient };