Ejemplo n.º 1
0
    }
    if (!$ob->CheckWebRights('', array('action' => 'read', 'arElement' => $wdElement), false)) {
        CWebDavTools::sendJsonResponse(array('error' => 'access_denied', 'message' => GetMessage("WD_ACCESS_DENIED")));
    }
    if (!empty($_POST['checkViewByGoogle'])) {
        CWebDavTools::sendJsonResponse(array('viewByGoogle' => CWebDavExtLinks::getDownloadCountForLink($_POST['extLink']) > 0));
    }
    $hash = CWebDavExtLinks::getHashLink(array('IBLOCK_TYPE' => $ob->IBLOCK_TYPE, 'IBLOCK_ID' => $wdElement['element_array']['IBLOCK_ID'], 'ROOT_SECTION_ID' => $ob->arRootSection['ID']), array('PASSWORD' => '', 'LIFETIME_NUMBER' => CWebDavExtLinks::LIFETIME_TYPE_AUTO, 'LIFETIME_TYPE' => 'minute', 'URL' => $ob->_path, 'BASE_URL' => $ob->base_url, 'SINGLE_SESSION' => false, 'LINK_TYPE' => CWebDavExtLinks::LINK_TYPE_AUTO, 'VERSION_ID' => !empty($_GET['v']) ? $_GET['v'] : null, 'FILE_ID' => !empty($_GET['f']) ? $_GET['f'] : null, 'ELEMENT_ID' => $wdElement['item_id']), null);
    if (!empty($_POST['json'])) {
        CWebDavTools::sendJsonResponse(array('file' => $hash, 'viewerUrl' => CWebDavExtLinks::$urlGoogleViewer . urlencode($hash) . '&embedded=true'));
    }
} elseif (!empty($_REQUEST['saveToDisk'])) {
    if ($USER->GetId() && check_bitrix_sessid()) {
        $data = CWebDavIblock::getRootSectionDataForUser($USER->GetID());
        if ($data) {
            $savedFolderId = CIBlockWebdavSocnet::createSavedFolder($data['IBLOCK_ID'], $data['SECTION_ID'], $USER->GetID());
            if ($savedFolderId) {
                $wdElement = $ob->GetObject(array('check_permissions' => false), false);
                //todo hack by load from url with historyget (example)
                if ($wdElement['not_found']) {
                    $partUri = explode('element/historyget/', $ob->uri);
                    if (!empty($partUri[1])) {
                        $elementId = (int) $partUri[1];
                        $wdElement = $ob->GetObject(array('check_permissions' => false, 'element_id' => $elementId), false);
                    }
                }
                if ($ob->CheckWebRights('', array('action' => 'read', 'arElement' => $wdElement), false)) {
                    $storage = new CWebDavStorageCore();
                    $storage->setStorageId(array('IBLOCK_ID' => $data['IBLOCK_ID'], 'IBLOCK_SECTION_ID' => $data['SECTION_ID']));
                    $filename = $storage->regenerateNameIfNonUnique($wdElement['element_name'], $savedFolderId);
                    $tmpFile = new CWebDavStubTmpFile();