Files
buzz-sheet/lib/auth/authorization.ts
T
gunshiz 659a57fb4a
CI / Verify (push) Successful in 1m6s
CI / Build immutable images and deploy (push) Has been skipped
feat(auth): replace Google login with credentials
2026-08-29 07:54:15 +00:00

37 lines
877 B
TypeScript

export interface SessionUserLike {
id: string;
email: string;
emailVerified: boolean;
name?: string | null;
image?: string | null;
}
export function isConfiguredAdminEmail(
email: string | null | undefined,
adminEmail: string | null | undefined,
): boolean {
return Boolean(email && adminEmail && email === adminEmail);
}
export function isAllowedAdminRegistration(
email: string | null | undefined,
authMethod: string,
adminEmail: string | null | undefined,
): boolean {
return (
authMethod === "email-password" &&
isConfiguredAdminEmail(email, adminEmail)
);
}
export function isAuthorizedAdmin(
user: SessionUserLike | null | undefined,
adminEmail: string | null | undefined,
): user is SessionUserLike {
return Boolean(
user &&
user.emailVerified === true &&
isConfiguredAdminEmail(user.email, adminEmail),
);
}