- Модуль: main
- Путь к файлу: ~/bitrix/modules/main/classes/general/site_checker.php
- Класс: CSiteCheckerTest
- Вызов: CSiteCheckerTest::check_webdav
function check_webdav()
{
if (!CModule::IncludeModule('webdav') && !CModule::IncludeModule('disk'))
return $this->Result(false, GetMessage("MAIN_SC_NO_WEBDAV_MODULE"));
if ($this->arTestVars['check_socket_fail'])
return $this->Result(null, GetMessage('SC_SOCK_NA'));
$allow = array(
"PUT" => array("rights" => "U", "min_rights" => "U"),
"LOCK" => array("rights" => "U", "min_rights" => "U"),
"MOVE" => array("rights" => "W", "min_rights" => "U"),
"MKCOL" => array("rights" => "W", "min_rights" => "W"),
"PROPFIND" => array("rights" => "R", "min_rights" => "R")
);
foreach($allow as $method => $ar)
{
$strRequest = $method." /bitrix/admin/site_checker.php?test_type=webdav_test&method=$method&unique_id=".checker_get_unique_id()." HTTP/1.1rn";
$strRequest.= "Host: ".$this->host."rn";
$strRequest.= "rn";
if (!$res = $this->ConnectToHost())
return null;
$strRes = GetHttpResponse($res, $strRequest, $strHeaders);
if (trim($strRes) != 'SUCCESS')
{
PrintHTTP($strRequest, $strHeaders, $strRes);
return $this->Result(null, str_replace('#METHOD#', $method, GetMessage("MAIN_SC_METHOD_NOT_SUP")));
}
}
return true;
}