예제 #1
0
        }
        if (!$_SERVER['PHP_AUTH_USER'] || !$_SERVER['PHP_AUTH_USER']) {
            $res = !empty($_SERVER['REDIRECT_REMOTE_USER']) ? $_SERVER['REDIRECT_REMOTE_USER'] : $_SERVER['REMOTE_USER'];
            if (!empty($res) && preg_match('/(?<=(basic\\s))(.*)$/is', $res, $matches)) {
                $res = trim($matches[0]);
                list($_SERVER["PHP_AUTH_USER"], $_SERVER["PHP_AUTH_PW"]) = explode(':', base64_decode($res));
            }
        }
        if (!is_array($GLOBALS["APPLICATION"]->arComponentMatch)) {
            $GLOBALS["APPLICATION"]->arComponentMatch = array();
        }
        $GLOBALS["APPLICATION"]->arComponentMatch[] = 'dav';
        $GLOBALS["APPLICATION"]->arComponentMatch[] = 'disk';
        $GLOBALS["APPLICATION"]->arComponentMatch[] = 'socialnetwork';
        define("STOP_STATISTICS", true);
        define("NO_AGENT_STATISTIC", "Y");
        define("NO_AGENT_CHECK", true);
        $GLOBALS["APPLICATION"]->ShowPanel = false;
        if (CModule::IncludeModule("dav") && CModule::IncludeModule("disk")) {
            //CDav::OnBeforePrologWebDav();
            CDav::Report("<<<<<<<<<<<<<< REQUEST >>>>>>>>>>>>>>>>", "\n" . print_r(array("REQUEST_METHOD" => $_SERVER["REQUEST_METHOD"], "REQUEST_URI" => $_SERVER["REQUEST_URI"], "PATH_INFO" => $_SERVER["PATH_INFO"], "HTTP_DEPTH" => $_SERVER["HTTP_DEPTH"], "AUTH_TYPE" => $_SERVER["AUTH_TYPE"], "PHP_AUTH_USER" => $_SERVER["PHP_AUTH_USER"]), true) . "\n", "UNDEFINED", true);
            CDav::ProcessWebDavRequest();
            //OnBeforePrologWebDav();
            die;
        }
    }
}
$app = $GLOBALS["USER"]->GetParam("APPLICATION_ID");
if ($app == "caldav" || $app == "carddav" || $app == "webdav") {
    die;
}