Exemple #1
0
 public static function getDirStructure($bLogical, $site, $path)
 {
     global $USER;
     $arDirContent = array();
     if ($USER->CanDoFileOperation('fm_view_listing', array($site, $path))) {
         \Bitrix\Main\Loader::includeModule('fileman');
         $arDirs = array();
         $arFiles = array();
         \CFileMan::GetDirList(array($site, $path), $arDirs, $arFiles, array(), array("NAME" => "asc"), "DF", $bLogical, true);
         $arDirContent_t = array_merge($arDirs, $arFiles);
         for ($i = 0, $l = count($arDirContent_t); $i < $l; $i++) {
             $file = $arDirContent_t[$i];
             $arPath = array($site, $file['ABS_PATH']);
             if ($file["TYPE"] == "F" && !$USER->CanDoFileOperation('fm_view_file', $arPath) || $file["TYPE"] == "D" && !$USER->CanDoFileOperation('fm_view_listing', $arPath) || $file["TYPE"] == "F" && $file["NAME"] == ".section.php") {
                 continue;
             }
             $f = $file['TYPE'] == 'F' ? new \Bitrix\Main\IO\File($file['PATH'], $site) : new \Bitrix\Main\IO\Directory($file['PATH'], $site);
             $p = $f->getName();
             if ($f->isSystem() || $file['TYPE'] == 'F' && in_array($p, array("urlrewrite.php")) || $file['TYPE'] == 'D' && preg_match("/\\/(bitrix|" . \COption::getOptionString("main", "upload_dir", "upload") . ")\\//", "/" . $p . "/")) {
                 continue;
             }
             $arFileData = array('NAME' => $bLogical ? $file['LOGIC_NAME'] : $p, 'FILE' => $p, 'TYPE' => $file['TYPE'], 'DATA' => $file);
             if (strlen($arFileData['NAME']) <= 0) {
                 $arFileData['NAME'] = GetMessage('SEO_DIR_LOGICAL_NO_NAME');
             }
             $arDirContent[] = $arFileData;
         }
         unset($arDirContent_t);
     }
     return $arDirContent;
 }
Exemple #2
0
 function DirsRecursive($path, &$arDirs, $arFilter = array(), $depth = 0)
 {
     $depth++;
     CFileMan::GetDirList($path, $arDirsTmp, $arFiles, $arFilter, array("name" => "asc"), "D");
     for ($i = 0, $l = count($arDirsTmp); $i < $l; $i++) {
         $arDir = $arDirsTmp[$i];
         $arDir["DEPTH_LEVEL"] = $depth;
         $arDirs[] = $arDir;
         CFileMan::DirsRecursive($arDir["ABS_PATH"], $arDirs, $arFilter, $depth);
     }
 }
                    CFilemanSearch::DelFromSearchResult($searchSess, $pathEx);
                }
                if (strlen($strWarning_tmp) > 0) {
                    $lAdmin->AddGroupError($strWarning_tmp, $ID);
                }
                break;
        }
    }
}
InitSorting();
if (!$bSearch) {
    $arDirs = array();
    $arFiles = array();
    $title = GetMessage("FILEMAN_TITLE");
    if ($USER->CanDoFileOperation('fm_view_listing', $arPath)) {
        CFileMan::GetDirList(array($site, $path), $arDirs, $arFiles, $arFilter, array($by => $order), "DF", $logical == 'Y', true);
        if (strlen($path) > 0) {
            $dname = $path;
            if ($logical == "Y") {
                if ($io->FileExists($absPath . "/.section.php")) {
                    @(include $io->GetPhysicalName($absPath . "/.section.php"));
                    if (strlen($sSectionName) <= 0) {
                        $sSectionName = GetMessage("FILEMAN_ADM_UNTITLED");
                    }
                    $dname = $sSectionName;
                }
            }
            $lAdmin->onLoadScript = "BX.adminPanel.setTitle('" . CUtil::JSEscape($title . ": " . $dname) . "');";
            $title = $title . ": " . $dname;
        } else {
            $lAdmin->onLoadScript = "BX.adminPanel.setTitle('" . CUtil::JSEscape($title) . "');";
$site = CFileMan::__CheckSite($site);
$DOC_ROOT = CSite::GetSiteDocRoot($site);
$strWarning = "";
$path = Rel2Abs("/", $path);
$arParsedPath = CFileMan::ParsePath($path);
$arPath = array($site, $path);
if ($type == "flash") {
    $ext = "swf,fla";
} elseif ($type == "image") {
    $ext = "gif,jpg,jpeg,bmp,png";
}
require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_popup_admin.php";
if (!$USER->CanDoFileOperation('fm_download_file', $arPath) || HasScriptExtension($path)) {
    ShowError($arParsedPath["HTML"] . '<br><br><img src="/bitrix/images/fileman/deny.gif" width="28" height="28" border="0" align="left" alt="">' . GetMessage("ACCESS_DENIED"));
} else {
    CFileMan::GetDirList(array($site, $path), $arDirs, $arFiles, array("EXTENSIONS" => $ext, "MIN_PERMISSION" => "R"), array("name" => "asc"));
    ?>
<script>
<!--
function DoEvent(str)
{
	try
	{
		eval("parent."+this.name+"_"+str);
	}
	catch(e){}
}

DoEvent("OnLoad('<?php 
    echo AddSlashes(htmlspecialcharsex($path));
    ?>
	}
}
else
{
	if ($bSearch)
	{
		$searchRes = CFilemanSearch::GetSearchResult($searchSess);
		for($i = 0, $l = count($searchRes); $i < $l; $i++)
			$arFiles[] = $searchRes[$i]['path'];
	}
	else
	{
		$arD = array();
		$arF = array();

		CFileMan::GetDirList(Array($site, $path), $arD, $arF, array("MIN_PERMISSION" => "X"), array(), "DF");
		foreach ($arD as $dir)
			if($USER->CanDoFileOperation('fm_edit_permission',Array($site, $dir['ABS_PATH'])))
				$arFiles[] = $dir["NAME"];

		foreach ($arF as $file)
			if($USER->CanDoFileOperation('fm_edit_permission',Array($site, $file['ABS_PATH'])))
				$arFiles[] = $file["NAME"];
	}
}

$filesCount = count($arFiles);
$arFilesEx = array();
$bFolderInList = false;
$currentValue = false;
$bCurrentValueDiff = false;
Exemple #6
0
$arPermTypes['NOT_REF'] = array('title' => GetMessage("FILEMAN_FOLDER_ACCESS_INHERIT"), 'letter' => 'N');
$strWarning = "";
$arFiles = array();
if (count($files) > 0) {
    CUtil::decodeURIComponent($files);
    for ($i = 0; $i < count($files); $i++) {
        if (!$USER->CanDoFileOperation('fm_edit_permission', array($site, $path . "/" . $files[$i]))) {
            $strWarning .= GetMessage("FILEMAN_ACCESS_TO_DENIED") . " \"" . $files[$i] . "\".\n";
        } elseif ($files[$i] != '.') {
            $arFiles[] = $files[$i];
        }
    }
} else {
    $arPDirs = array();
    $arPFiles = array();
    CFileMan::GetDirList(array($site, $path), $arPDirs, $arPFiles, array("MIN_PERMISSION" => "X"), array(), "DF");
    foreach ($arPDirs as $dir) {
        if ($USER->CanDoFileOperation('fm_edit_permission', array($site, $dir['ABS_PATH']))) {
            $arFiles[] = $dir["NAME"];
        }
    }
    foreach ($arPFiles as $file) {
        if ($USER->CanDoFileOperation('fm_edit_permission', array($site, $file['ABS_PATH']))) {
            $arFiles[] = $file["NAME"];
        }
    }
}
$filesCount = count($arFiles);
function GetAccessArrTmp($path)
{
    global $DOC_ROOT;