'Documents', 'action' => 'Save', 'notes_title' => 'Test Upload', 'assigned_user_id' => '1' ); $_FILES = array( 'filename' => array( 'name' => 'test.txt', 'type' => 'text/plain', 'tmp_name' => '/tmp/test_upload.txt', 'error' => 0, 'size' => 100 ) ); // Создаем временный файл file_put_contents('/tmp/test_upload.txt', 'Test upload content'); try { // Загружаем vTiger require_once 'config.inc.php'; require_once 'include/utils/utils.php'; echo "✅ vTiger загружен успешно\n"; // Создаем запрос $request = new Vtiger_Request($_REQUEST, $_REQUEST); echo "✅ Vtiger_Request создан успешно\n"; // Проверяем модуль и действие echo "Module: " . $request->get('module') . "\n"; echo "Action: " . $request->get('action') . "\n"; // Проверяем права доступа $moduleName = $request->getModule(); $actionName = $request->get('action'); echo "Module Name: " . $moduleName . "\n"; echo "Action Name: " . $actionName . "\n"; // Проверяем, существует ли Action $actionClassName = $moduleName . '_' . $actionName . '_Action'; echo "Action Class: " . $actionClassName . "\n"; if (class_exists($actionClassName)) { echo "✅ Action класс существует\n"; $action = new $actionClassName(); echo "✅ Action объект создан\n"; // Проверяем права if (method_exists($action, 'checkPermission')) { $hasPermission = $action->checkPermission($request); echo "Permission: " . ($hasPermission ? 'YES' : 'NO') . "\n"; } } else { echo "❌ Action класс НЕ существует: " . $actionClassName . "\n"; } } catch (Exception $e) { echo "❌ Ошибка: " . $e->getMessage() . "\n"; echo "File: " . $e->getFile() . " Line: " . $e->getLine() . "\n"; echo "Trace: " . $e->getTraceAsString() . "\n"; } // Удаляем временный файл if (file_exists('/tmp/test_upload.txt')) { unlink('/tmp/test_upload.txt'); } echo "=== Диагностика завершена ===\n"; ?>