- Модуль: dav
- Путь к файлу: ~/bitrix/modules/dav/lib/application.php
- Класс: BitrixDavApplication
- Вызов: Application::checkDavHeaders
static function checkDavHeaders()
{
$server = Context::getCurrent()->getServer();
$davHeaders = [
"DAV",
"IF",
"DEPTH",
"OVERWRITE",
"DESTINATION",
"LOCK_TOKEN",
"TIMEOUT",
"STATUS_URI"
];
foreach ($davHeaders as $header)
{
if ($server->get("HTTP_" . $header))
{
return true;
}
}
$davMethods = [
"OPTIONS",
"PUT",
"PROPFIND",
"REPORT",
"PROPPATCH",
"MKCOL",
"COPY",
"MOVE",
"LOCK",
"UNLOCK",
"DELETE",
"COPY",
"MOVE"
];
if (in_array($server->getRequestMethod(), $davMethods, true))
{
return true;
}
$userAgentParam = $server->get('HTTP_USER_AGENT');
$userAgentString = $userAgentParam ?: '';
return (
mb_strpos($userAgentString, "Microsoft Office") !== false
&& mb_strpos($userAgentString, "Outlook") === false
)
|| mb_strpos($userAgentString, "MiniRedir") !== false
|| mb_strpos($userAgentString, "WebDAVFS") !== false
|| mb_strpos($userAgentString, "davfs2") !== false
|| mb_strpos($userAgentString, "Sardine") !== false
|| mb_strpos($userAgentString, "gvfs") !== false
|| mb_strpos($userAgentString, "LibreOffice") !== false
;
}