diff --git a/packages/core-shared/src/payload/access/is-admin.test.ts b/packages/core-shared/src/payload/access/is-admin.test.ts new file mode 100644 index 0000000..a8f9456 --- /dev/null +++ b/packages/core-shared/src/payload/access/is-admin.test.ts @@ -0,0 +1,20 @@ +import { describe, expect, it } from "vitest"; +import { isAdmin } from "./is-admin"; + +describe("isAdmin", () => { + it("returns true when user role is 'admin'", () => { + expect(isAdmin({ req: { user: { role: "admin" } } })).toBe(true); + }); + + it("returns false when user role is not 'admin'", () => { + expect(isAdmin({ req: { user: { role: "editor" } } })).toBe(false); + }); + + it("returns false when user has no role", () => { + expect(isAdmin({ req: { user: {} } })).toBe(false); + }); + + it("returns false when there is no user", () => { + expect(isAdmin({ req: {} })).toBe(false); + }); +}); diff --git a/packages/core-shared/src/payload/access/is-admin.ts b/packages/core-shared/src/payload/access/is-admin.ts new file mode 100644 index 0000000..3b480b2 --- /dev/null +++ b/packages/core-shared/src/payload/access/is-admin.ts @@ -0,0 +1,7 @@ +export function isAdmin({ + req, +}: { + req: { user?: { role?: string } }; +}): boolean { + return req.user?.role === "admin"; +}