class Tenant { private static $currentTenant = null; public static function setTenant($tenantId) { if (!is_numeric($tenantId) || $tenantId <= 0) { error_log("Invalid tenant ID: " . $tenantId); throw new InvalidArgumentException("Nevažeći ID firme"); } $_SESSION['tenant_id'] = (int)$tenantId; self::$currentTenant = (int)$tenantId; error_log("Tenant postavljen na: " . $tenantId); } public static function getTenantId() { $tenantId = $_SESSION['tenant_id'] ?? 1; // Ako nema session, možda je korisnik izlogovan if (!isset($_SESSION['tenant_id'])) { error_log("Tenant ID nije postavljen u sessionu, koristim default 1"); } return $tenantId; } public static function checkUserTenant($db, $userId) { try { $query = "SELECT tenant_id FROM users WHERE id = :user_id AND is_active = 1"; $stmt = $db->prepare($query); $stmt->bindParam(":user_id", $userId, PDO::PARAM_INT); $stmt->execute(); $user = $stmt->fetch(PDO::FETCH_ASSOC); $result = $user && $user['tenant_id'] == self::getTenantId(); if (!$result) { error_log("Korisnik $userId ne pripada tenantu " . self::getTenantId()); } return $result; } catch (PDOException $e) { error_log("Greška pri provjeri tenanta: " . $e->getMessage()); return false; } } // Dodatna metoda za reset tenant-a public static function clearTenant() { unset($_SESSION['tenant_id']); self::$currentTenant = null; } }