Пример #1
0
 function _getPath($path, $sef_folder)
 {
     static $dav;
     if (empty($dav)) {
         $dav = CWebDavBase::IsDavHeaders('check_all') ? 'D' : 'W';
     }
     if ($dav == 'W') {
         $spath = substr($path, strlen($sef_folder) - 1);
         if (empty($spath)) {
             $spath .= '/';
         }
         return $spath;
     } else {
         return $path;
     }
 }
Пример #2
0
				/Input params
********************************************************************/
$arError = array();
/********************************************************************
				Check Socnet Permission and Main Data
********************************************************************/
/************** Can View *******************************************/
if ($arParams["PERMISSION"] < "R") {
    $arError[] = array("id" => "access_denied", "text" => GetMessage("SONET_ACCESS_DENIED"));
    /************** Active Feature *************************************/
} elseif ($object == "user" && !CSocNetFeatures::IsActiveFeature(SONET_ENTITY_USER, $arResult["VARIABLES"]["user_id"], "files") || $object == "group" && !CSocNetFeatures::IsActiveFeature(SONET_ENTITY_GROUP, $arResult["VARIABLES"]["group_id"], "files")) {
    $arError[] = array("id" => "fiture_is_not_active", "text" => GetMessage("SONET_FILES_IS_NOT_ACTIVE"));
    /************** Check Iblock ID ************************************/
} elseif ($object == "user" && $arParams["FILES_USER_IBLOCK_ID"] <= 0 || $object == "group" && $arParams["FILES_GROUP_IBLOCK_ID"] <= 0) {
    $arError[] = array("id" => "iblock_id_empty", "text" => GetMessage("SONET_IBLOCK_ID_EMPTY"));
} elseif ($arParams["USE_AUTH"] == "Y" && (CWebDavBase::IsDavHeaders() || $_SERVER['REQUEST_METHOD'] != "GET" && $_SERVER['REQUEST_METHOD'] != "POST") && !$USER->IsAuthorized()) {
    $APPLICATION->RestartBuffer();
    CWebDavBase::SetAuthHeader();
    header('Content-length: 0');
    die;
}
/************** Set Page Title or Add Navigation *******************/
if ($arParams["SET_NAV_CHAIN"] == "Y" || $arParams["SET_TITLE"] == "Y") {
    $strTitle = "";
    if ($object == "group") {
        $arResult["GROUP"] = $arGroup = CSocNetGroup::GetByID($arResult["VARIABLES"]["group_id"]);
        $db_res = CSocNetFeatures::GetList(array(), array("ENTITY_ID" => $arResult["GROUP"]["ID"], "ENTITY_TYPE" => SONET_ENTITY_GROUP, "FEATURE" => "files"));
        if ($db_res && ($arResult["GROUP"]["FEATURE"] = $db_res->GetNext())) {
            $arParams["STR_TITLE"] = $arResult["GROUP"]["FEATURE"]["FEATURE_NAME"] = empty($arResult["GROUP"]["FEATURE"]["FEATURE_NAME"]) ? $arParams["STR_TITLE"] : $arResult["GROUP"]["FEATURE"]["FEATURE_NAME"];
        } else {
            $arResult["GROUP"]["FEATURE"] = array("FEATURE_NAME" => $arParams["STR_TITLE"]);
Пример #3
0
 function ThrowError($status, $code, $message = '', $line = 0)
 {
     $errArr = array('STATUS' => $status, 'CODE' => $code, 'MESSAGE' => $message, 'LINE' => $line);
     $GLOBALS['APPLICATION']->ThrowException($message, $code);
     if (CWebDavBase::IsDavHeaders("check_all")) {
         $this->SetStatus($status);
     }
     return $status;
 }
Пример #4
0
		!CSocNetFeatures::IsActiveFeature(
			SONET_ENTITY_GROUP,
			$arResult["VARIABLES"]["group_id"],
			"files")
	)):
	$arError[] = array(
		"id" => "fiture_is_not_active",
		"text" => GetMessage("SONET_FILES_IS_NOT_ACTIVE"));
/************** Check Iblock ID ************************************/
elseif (($object == "user" && $arParams["FILES_USER_IBLOCK_ID"] <= 0) ||
	($object == "group" && $arParams["FILES_GROUP_IBLOCK_ID"] <= 0)):
	$arError[] = array(
		"id" => "iblock_id_empty",
		"text" => GetMessage("SONET_IBLOCK_ID_EMPTY"));
elseif ($arParams["USE_AUTH"] == "Y" && 
	(CWebDavBase::IsDavHeaders() || ($_SERVER['REQUEST_METHOD'] != "GET" && $_SERVER['REQUEST_METHOD'] != "POST")) &&
	!$USER->IsAuthorized()):
	$APPLICATION->RestartBuffer();
	CWebDavBase::SetAuthHeader();
	header('Content-length: 0');
	die();
endif;

/************** Set Page Title or Add Navigation *******************/
if ($arParams["SET_NAV_CHAIN"] == "Y" || $arParams["SET_TITLE"] == "Y")
{

	$strTitle = "";
	if($object == "group")
	{
		$arResult["GROUP"] = $arGroup = CSocNetGroup::GetByID($arResult["VARIABLES"]["group_id"]);
Пример #5
0
         }
     }
     $userPerms = CIBlockWebdavSocnet::GetUserMaxPermission('user', $userID, $currentUserID, $arParams['IBLOCK_USER_ID']);
     foreach (array('PERMISSION', 'CHECK_CREATOR') as $propName) {
         $arParams[$propName] = $userPerms[$propName];
     }
     $arParams["DOCUMENT_TYPE"] = array("webdav", "CIBlockDocumentWebdavSocnet", "iblock_" . $arParams['IBLOCK_USER_ID'] . "_user_" . intVal($userID));
     $basementPath = $rootPath . '/' . $arLocalPath[0];
     $obGroup = new CWebDavIblock($arParams['IBLOCK_USER_ID'], $basementPath, $arParams);
     $obGroup->SetRootSection($sectionID);
     $currentPageUrl = str_replace(array('#USER_ID#', '#PATH#'), array($userID, ''), $arParams["USER_FILE_PATH"]);
     MakeDavRedirect($obGroup, $currentPageUrl, $rootPath . '/' . $arLocalPath[0], '/' . implode('/', array_slice($arLocalPath, 1)) . '/', false);
 } else {
     // user list
     $userTree = array();
     $CACHE_ID = SITE_ID . '|' . $requestURL . '|' . $currentUserID . '|' . (CWebDavBase::IsDavHeaders('check_all') ? 'D' : 'W') . '|USERLIST';
     $userCache = new CPHPCache();
     if ($userCache->InitCache($arParams["CACHE_TIME"], $CACHE_ID, $cachePath)) {
         $vars = $userCache->GetVars();
         $userTree = $vars['USER_TREE'];
     } else {
         $arFilter = array("IBLOCK_ID" => $arParams["IBLOCK_USER_ID"], "SOCNET_GROUP_ID" => false, "CHECK_PERMISSIONS" => "N", "SECTION_ID" => 0);
         $dbSection = CIBlockSection::GetList(array(), $arFilter);
         while ($arSection = $dbSection->Fetch()) {
             $userID = $arSection['CREATED_BY'];
             if (!CSocNetFeatures::IsActiveFeature(SONET_ENTITY_USER, $userID, "files")) {
                 continue;
             }
             $userPerms = CIBlockWebdavSocnet::GetUserMaxPermission('user', $userID, $currentUserID, $arParams['IBLOCK_USER_ID']);
             if ($userPerms["PERMISSION"] < "R") {
                 continue;