fully obey permissions of documents

This commit is contained in:
Uwe Steinmann 2015-03-17 06:36:33 +01:00
parent 14ee9b35f2
commit a257c25277

View File

@ -383,31 +383,40 @@ if(isset($_GET["fullsearch"]) && $_GET["fullsearch"]) {
// ---------------- Start searching ----------------------------------------- // ---------------- Start searching -----------------------------------------
$startTime = getTime(); $startTime = getTime();
$resArr = $dms->search($query, $limit, ($pageNumber-1)*$limit, $mode, $searchin, $startFolder, $owner, $status, $creationdate ? $startdate : array(), $creationdate ? $stopdate : array(), array(), array(), $categories, $attributes, $resultmode, $expirationdate ? $expstartdate : array(), $expirationdate ? $expstopdate : array()); $resArr = $dms->search($query, 0, 0 /*$limit, ($pageNumber-1)*$limit*/, $mode, $searchin, $startFolder, $owner, $status, $creationdate ? $startdate : array(), $creationdate ? $stopdate : array(), array(), array(), $categories, $attributes, $resultmode, $expirationdate ? $expstartdate : array(), $expirationdate ? $expstopdate : array());
$searchTime = getTime() - $startTime; $searchTime = getTime() - $startTime;
$searchTime = round($searchTime, 2); $searchTime = round($searchTime, 2);
$entries = array(); $entries = array();
$fcount = 0;
if($resArr['folders']) { if($resArr['folders']) {
foreach ($resArr['folders'] as $entry) { foreach ($resArr['folders'] as $entry) {
if ($entry->getAccessMode($user) >= M_READ) { if ($entry->getAccessMode($user) >= M_READ) {
$entries[] = $entry; $entries[] = $entry;
$fcount++;
} }
} }
} }
$dcount = 0;
if($resArr['docs']) { if($resArr['docs']) {
foreach ($resArr['docs'] as $entry) { foreach ($resArr['docs'] as $entry) {
if ($entry->getAccessMode($user) >= M_READ) { if ($entry->getAccessMode($user) >= M_READ) {
$entries[] = $entry; $entries[] = $entry;
$dcount++;
} }
} }
} }
$totalPages = count($entries)/$limit;
if(count($entries)%$limit)
$totalPages++;
if($limit > 0)
$entries = array_slice($entries, ($pageNumber-1)*$limit, $limit);
// }}} // }}}
} }
// -------------- Output results -------------------------------------------- // -------------- Output results --------------------------------------------
if(count($entries) == 1 && ($resArr['totalDocs'] + $resArr['totalFolders']) == 1) { if(count($entries) == 1) {
$entry = $entries[0]; $entry = $entries[0];
if(get_class($entry) == 'SeedDMS_Core_Document') { if(get_class($entry) == 'SeedDMS_Core_Document') {
header('Location: ../out/out.ViewDocument.php?documentid='.$entry->getID()); header('Location: ../out/out.ViewDocument.php?documentid='.$entry->getID());
@ -418,10 +427,10 @@ if(count($entries) == 1 && ($resArr['totalDocs'] + $resArr['totalFolders']) == 1
} }
} else { } else {
$tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME'])); $tmp = explode('.', basename($_SERVER['SCRIPT_FILENAME']));
$view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user, 'query'=>$query, 'searchhits'=>$entries, 'totalpages'=>$resArr['totalPages'], 'pagenumber'=>$pageNumber, 'searchtime'=>$searchTime, 'urlparams'=>$_GET, 'cachedir'=>$settings->_cacheDir)); $view = UI::factory($theme, $tmp[1], array('dms'=>$dms, 'user'=>$user, 'query'=>$query, 'searchhits'=>$entries, 'totalpages'=>$totalPages, 'pagenumber'=>$pageNumber, 'searchtime'=>$searchTime, 'urlparams'=>$_GET, 'cachedir'=>$settings->_cacheDir));
if($view) { if($view) {
$view->setParam('totaldocs', $resArr['totalDocs']); $view->setParam('totaldocs', $dcount /*resArr['totalDocs']*/);
$view->setParam('totalfolders', $resArr['totalFolders']); $view->setParam('totalfolders', $fcount /*resArr['totalFolders']*/);
$view->setParam('fullsearch', (isset($_GET["fullsearch"]) && $_GET["fullsearch"]) ? true : false); $view->setParam('fullsearch', (isset($_GET["fullsearch"]) && $_GET["fullsearch"]) ? true : false);
$view->setParam('mode', isset($mode) ? $mode : ''); $view->setParam('mode', isset($mode) ? $mode : '');
$view->setParam('searchin', isset($searchin) ? $searchin : array()); $view->setParam('searchin', isset($searchin) ? $searchin : array());