/** * lib/users.ts * Reads user config from environment variables — no database needed. * * .env format: * USER_0_NAME="Mustafa Ayris" * USER_0_EMAIL="mustafa@ayristech.com" * USER_0_PASSWORD="mustafa123" * USER_0_ROLE="SUPER_ADMIN" // or "DOMAIN_ADMIN" * USER_0_DOMAINS="*" // "*" for all, or "domain1.com,domain2.com" * * USER_1_NAME="Emina Karabudak" * USER_1_EMAIL="emina@ayristech.com" * USER_1_PASSWORD="emina123" * USER_1_ROLE="DOMAIN_ADMIN" * USER_1_DOMAINS="aveminakarabudak.com" */ import { prisma } from "./prisma"; export interface AppUser { id: string; name: string | null; email: string; password: string; role: string; domains: string[]; telegramId?: string | null; } /** Load all users from database */ export async function getUsers(): Promise { const users = await prisma.user.findMany(); return users as AppUser[]; } /** Find user by email and validate password via database */ export async function authenticateUser(email: string, password: string): Promise { const user = await prisma.user.findUnique({ where: { email: email.toLowerCase() }, }); if (!user) return null; if (user.password !== password) return null; return user as AppUser; } /** Check if a user has access to a specific domain */ export function canAccessDomain(userDomains: string[], domain: string): boolean { return userDomains.includes("*") || userDomains.includes(domain); }