uawdijnntqw1x1x1
IP : 3.145.177.28
Hostname : axolotl
Kernel : Linux axolotl 4.9.0-13-amd64 #1 SMP Debian 4.9.228-1 (2020-07-05) x86_64
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,
OS : Linux
PATH:
/
var
/
www
/
axolotl
/
data
/
www
/
kirov.axolotls.ru
/
bitrix
/
modules
/
dav
/
lib
/
application.php
/
/
<?php namespace Bitrix\Dav; use Bitrix\Main\Authentication\ApplicationPasswordTable; use Bitrix\Main\Type\DateTime; use Bitrix\Main\UrlRewriter; use Bitrix\Main\Localization\Loc; use Bitrix\Main\Context; Loc::loadMessages(__FILE__); /** * Class Application * @package Bitrix\Dav */ class Application extends \Bitrix\Main\Authentication\Application { /** * Application passwords event handler. * @return array */ public static function onApplicationsBuildList() { return array( array( "ID" => "caldav", "NAME" => Loc::getMessage("dav_app_calendar"), "DESCRIPTION" => Loc::getMessage("dav_app_calendar_desc"), "SORT" => 100, "OPTIONS" => array(Loc::getMessage("dav_app_calendar_phone")), "CLASS" => "\\Bitrix\\Dav\\Application" ), array( "ID" => "carddav", "NAME" => Loc::getMessage("dav_app_card"), "DESCRIPTION" => Loc::getMessage("dav_app_card_desc"), "SORT" => 200, "OPTIONS" => array(Loc::getMessage("dav_app_calendar_phone")), "CLASS" => "\\Bitrix\\Dav\\Application" ), array( "ID" => "webdav", "NAME" => Loc::getMessage("dav_app_doc"), "DESCRIPTION" => Loc::getMessage("dav_app_doc_desc"), "SORT" => 300, "OPTIONS" => array(Loc::getMessage("dav_app_doc_office")), "CLASS" => "\\Bitrix\\Dav\\Application" ), ); } /** * Application constructor. */ public function __construct() { $this->validUrls = array("/bitrix/groupdav.php", "/index.php", "/.well-known"); $site = \Bitrix\Main\Application::getInstance()->getContext()->getSite(); if (!empty($site)) { $urls = UrlRewriter::getList($site); foreach ($urls as $url) { if (in_array($url['ID'], array('bitrix:socialnetwork_user', 'bitrix:socialnetwork_group', 'bitrix:disk.common', 'bitrix:webdav'))) $this->validUrls[] = $url['PATH']; } } } /** * Checks the valid scope for the applicaton. * * @return bool */ public function checkScope() { if (parent::checkScope()) { if (static::checkDavHeaders()) return true; } return false; } /** * @return bool */ public static function checkDavHeaders() { $server = Context::getCurrent()->getServer(); $davHeaders = array("DAV", "IF", "DEPTH", "OVERWRITE", "DESTINATION", "LOCK_TOKEN", "TIMEOUT", "STATUS_URI"); foreach ($davHeaders as $header) { if ($server->get("HTTP_" . $header)) return true; } $davMethods = array("OPTIONS", "PUT", "PROPFIND", "REPORT", "PROPPATCH", "MKCOL", "COPY", "MOVE", "LOCK", "UNLOCK", "DELETE", "COPY", "MOVE"); foreach ($davMethods as $method) { if ($server->getRequestMethod() == $method) return true; } $userAgentParam = $server->get('HTTP_USER_AGENT'); $userAgentString = $userAgentParam ?: ''; if (strpos($userAgentString, "Microsoft Office") !== false && strpos($userAgentString, "Outlook") === false || strpos($userAgentString, "MiniRedir") !== false || strpos($userAgentString, "WebDAVFS") !== false || strpos($userAgentString, "davfs2") !== false || strpos($userAgentString, "Sardine") !== false || strpos($userAgentString, "gvfs") !== false || strpos($userAgentString, "LibreOffice") !== false ) { return true; } return false; } /** * Generates AP for REST access. * * @param int $userId Id of password owner user. * @param string $appId Type of application(caldav, carddav, webdav). * @return bool|string password or false */ public static function generateAppPassword($userId, $appId) { $password = ApplicationPasswordTable::generatePassword(); $message = Loc::getMessage('DAV_APP_SYSCOMMENT'); if ($appId) { $typeTitle = Loc::getMessage('DAV_APP_TYPE_' . $appId); if (strlen($typeTitle) > 0) { $message = Loc::getMessage('DAV_APP_SYSCOMMENT_TYPE', array( '#TYPE#' => $typeTitle, )); } } $res = ApplicationPasswordTable::add(array( 'USER_ID' => $userId, 'APPLICATION_ID' => $appId, 'PASSWORD' => $password, 'DATE_CREATE' => new DateTime(), 'COMMENT' => Loc::getMessage('DAV_APP_COMMENT'), 'SYSCOMMENT' => $message, )); if ($res->isSuccess()) { return $password; } return false; } }
/var/www/axolotl/data/www/kirov.axolotls.ru/bitrix/modules/dav/lib/application.php