File: /var/www/indoadvisory_new/webapp/src/utils/auth.ts
// Authentication utilities
export interface User {
  id: number;
  username: string;
  email: string;
  name: string;
  role: string;
}
export interface Session {
  id: string;
  user_id: number;
  expires_at: string;
}
// Simple session management (in production, use proper JWT or secure sessions)
export function generateSessionId(): string {
  return Math.random().toString(36).substring(2) + Date.now().toString(36);
}
export function isValidSession(session: Session | null): boolean {
  if (!session) return false;
  return new Date(session.expires_at) > new Date();
}
// Simple password validation (in production, use proper hashing like bcrypt)
export function validatePassword(inputPassword: string, storedPassword: string): boolean {
  // For demo purposes, using simple comparison
  // In production, use: await bcrypt.compare(inputPassword, storedPassword)
  return inputPassword === storedPassword;
}
export function hashPassword(password: string): string {
  // For demo purposes, returning plain text
  // In production, use: await bcrypt.hash(password, 10)
  return password;
}
// Check if user is admin
export function isAdmin(user: User | null): boolean {
  return user?.role === 'admin';
}