prepare("SELECT * FROM users WHERE id = ?"); $stmt->execute([$_SESSION['user_id']]); return $stmt->fetch(); } catch (Exception $e) { return null; } } /** * Check if user is super admin */ function is_super_admin() { $user = get_user(); return $user && isset($user['role']) && $user['role'] === 'super_admin'; } /** * Log an action to audit_logs table */ function log_action($action, $details = '') { try { $pdo = db(); $user_id = $_SESSION['user_id'] ?? null; $stmt = $pdo->prepare("INSERT INTO audit_logs (user_id, action, details) VALUES (?, ?, ?)"); $stmt->execute([$user_id, $action, $details]); } catch (Exception $e) { error_log("Failed to log action: " . $e->getMessage()); } } /** * Get organization name from profile */ function get_org_name() { if (isset($_SESSION['org_name']) && !empty($_SESSION['org_name'])) { return $_SESSION['org_name']; } try { $pdo = db(); $profile = $pdo->query("SELECT name_en FROM org_profile LIMIT 1")->fetch(); if ($profile && !empty($profile['name_en'])) { $_SESSION['org_name'] = $profile['name_en']; return $profile['name_en']; } } catch (Exception $e) { } return 'Organization'; } /** * Get organization favicon URL */ function get_favicon_url() { if (isset($_SESSION['favicon_url']) && !empty($_SESSION['favicon_url'])) { return $_SESSION['favicon_url']; } try { $pdo = db(); $profile = $pdo->query("SELECT favicon_url FROM org_profile LIMIT 1")->fetch(); if ($profile && !empty($profile['favicon_url'])) { $_SESSION['favicon_url'] = $profile['favicon_url']; return $profile['favicon_url']; } } catch (Exception $e) { } return ''; } /** * Get organization logo URL */ function get_logo_url() { if (isset($_SESSION['logo_url']) && !empty($_SESSION['logo_url'])) { return $_SESSION['logo_url']; } try { $pdo = db(); $profile = $pdo->query("SELECT logo_url FROM org_profile LIMIT 1")->fetch(); if ($profile && !empty($profile['logo_url'])) { $_SESSION['logo_url'] = $profile['logo_url']; return $profile['logo_url']; } } catch (Exception $e) { } return ''; }