curlHasError) { sendErrorResponse(500, 'Ошибка CURL при выполнении запроса авторизации. ' . $errPrefix . $res->curlErrorTxt); } if ($res->code !== 200) { $err = $errPrefix . (!empty($res->responseBody->message) ? $res->responseBody->message : 'Неизвестная ошибка.'); sendErrorResponse($res->code, $err); } Path::init($modulesByPathDeploy); $payload = array( 'is_access_allowed' => true, 'err' => null ); $message = isWritableRecrusive($rootDir); if ($message) { $payload['is_access_allowed'] = false; $payload['err'] = $message; } loadHeaders(); setResponseCode(200); echo json_encode( array( 'success' => true, 'forward_code' => 200, 'payload' => $payload ) ); die(); } catch (Exception $e) { sendErrorResponse(500, $e->getMessage()); } function isWritableRecrusive($dir) { $message = ''; if (is_dir($dir)) { if (is_writable($dir)) { $objects = scandir($dir); foreach ($objects as $object) { if ($object != "." && $object != "..") { $objectPath = Path::join($dir, $object); $message .= isWritableRecrusive($objectPath); } } } else { $message .= 'Отсутствуют права на запись: "' . htmlspecialchars($dir) . '"
'; } } else { if (!is_writable($dir)) { $message .= 'Отсутствуют права на запись: "' . htmlspecialchars($dir) . '"
'; } } return $message; }