Example #1
0
	//alert to check_permissions
	$wdElement = $ob->GetObject(array('check_permissions' => false), false);
	if(!$ob->CheckWebRights('',  array('action' => 'read', 'arElement' => $wdElement), false))
	{
		$APPLICATION->RestartBuffer();
		echo json_encode(array(
			'error' => 'access_denied',
		));
		die;
	}

	if(!empty($_POST['checkViewByGoogle']))
	{
		$APPLICATION->RestartBuffer();
		echo json_encode(array(
			'viewByGoogle' => CWebDavExtLinks::getDownloadCountForLink($_POST['extLink']) > 0,
		));
		die;
	}

	$hash = CWebDavExtLinks::getHashLink(array(
				'IBLOCK_TYPE' => $ob->IBLOCK_TYPE,
				'IBLOCK_ID' => $ob->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,
    include $_SERVER["DOCUMENT_ROOT"] . BX_ROOT . "/modules/main/include/epilog_after.php";
    die;
} elseif (!empty($_REQUEST['showInViewer'])) {
    CUtil::JSPostUnescape();
    CWebDavExtLinks::CheckSessID();
    //alert to check_permissions
    $wdElement = $ob->GetObject(array('check_permissions' => false), false);
    //todo hack by load from url with historyget (example)
    if ($wdElement['not_found'] && $wdElement['basename'] && intval($wdElement['basename']) == $wdElement['basename']) {
        $wdElement = $ob->GetObject(array('check_permissions' => false, 'element_id' => $wdElement['basename']), false);
    }
    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);