list documents in revision/reception without access

This commit is contained in:
Uwe Steinmann 2017-01-25 09:53:18 +01:00
parent 761247fe0d
commit 69e1bb66ad
2 changed files with 134 additions and 0 deletions

View File

@ -71,6 +71,36 @@ $unlinkeddocuments = $dms->checkDocuments();
$nofilesizeversions = $dms->getNoFileSizeDocumentContent();
$nochecksumversions = $dms->getNoChecksumDocumentContent();
$duplicateversions = $dms->getDuplicateDocumentContent();
$tmprevs = $dms->getDocumentsInRevision();
$docsinrevision = array();
foreach($tmprevs as $rev) {
if($doc = $dms->getDocument($rev['documentID'])) {
if($rev['type'] == 0) {
$ruser = $dms->getUser($rev['required']);
$mode = $doc->getAccessMode($ruser);
} elseif($rev['type'] == 1) {
$rgroup = $dms->getGroup($rev['required']);
$mode = $doc->getGroupAccessMode($rgroup);
}
if($mode < M_READ)
$docsinrevision[] = $doc;
}
}
$tmprevs = $dms->getDocumentsInReception();
$docsinreception = array();
foreach($tmprevs as $rev) {
if($doc = $dms->getDocument($rev['documentID'])) {
if($rev['type'] == 0) {
$ruser = $dms->getUser($rev['required']);
$mode = $doc->getAccessMode($ruser);
} elseif($rev['type'] == 1) {
$rgroup = $dms->getGroup($rev['required']);
$mode = $doc->getGroupAccessMode($rgroup);
}
if($mode < M_READ)
$docsinreception[] = $doc;
}
}
$rootfolder = $dms->getFolder($settings->_rootFolderID);
function repair_tree($dms, $user, $folder, $path=':') { /* {{{ */
@ -133,12 +163,18 @@ if($view) {
$view->setParam('nofilesizeversions', $nofilesizeversions);
$view->setParam('nochecksumversions', $nochecksumversions);
$view->setParam('duplicateversions', $duplicateversions);
$view->setParam('docsinrevision', $docsinrevision);
$view->setParam('docsinreception', $docsinreception);
$view->setParam('unlink', $unlink);
$view->setParam('setfilesize', $setfilesize);
$view->setParam('setchecksum', $setchecksum);
$view->setParam('repair', $repair);
$view->setParam('rootfolder', $rootfolder);
$view->setParam('repairobjects', $repairobjects);
$view->setParam('cachedir', $settings->_cacheDir);
$view->setParam('previewWidthList', $settings->_previewWidthList);
$view->setParam('previewconverters', $settings->_converters['preview']);
$view->setParam('timeout', $settings->_cmdTimeout);
$view->setParam('accessobject', $accessop);
$view($_GET);
exit;

View File

@ -18,6 +18,11 @@
*/
require_once("class.Bootstrap.php");
/**
* Include class to preview documents
*/
require_once("SeedDMS/Preview.php");
/**
* Class which outputs the html page for ObjectCheck view
*
@ -31,6 +36,55 @@ require_once("class.Bootstrap.php");
*/
class SeedDMS_View_ObjectCheck extends SeedDMS_Bootstrap_Style {
protected function printListHeader($resArr, $previewer, $order=false) { /* {{{ */
$orderby = $this->params['orderby'];
$orderdir = $this->params['orderdir'];
print "<table class=\"table table-condensed\">";
print "<thead>\n<tr>\n";
print "<th></th>\n";
if($order)
print "<th><a data-action=\"".$order."\" data-orderby=\"n\" data-orderdir=\"".($orderdir == 'desc' ? '' : 'desc')."\">".getMLText("name")."</a> ".($orderby == 'n' || $orderby == '' ? ($orderdir == 'desc' ? '<i class="icon-arrow-up"></i>' : '<i class="icon-arrow-down"></i>') : '')." &middot; <a data-action=\"".$order."\" data-orderby=\"u\" data-orderdir=\"".($orderdir == 'desc' ? '' : 'desc')."\">".getMLText("last_update")."</a> ".($orderby == 'u' ? ($orderdir == 'desc' ? '<i class="icon-arrow-up"></i>' : '<i class="icon-arrow-down"></i>') : '')." &middot; <a data-action=\"".$order."\" data-orderby=\"e\" data-orderdir=\"".($orderdir == 'desc' ? '' : 'desc')."\">".getMLText("expires")."</a> ".($orderby == 'e' ? ($orderdir == 'desc' ? '<i class="icon-arrow-up"></i>' : '<i class="icon-arrow-down"></i>') : '')."</th>\n";
else
print "<th>".getMLText("name")."</th>\n";
if($order)
print "<th><a data-action=\"".$order."\" data-orderby=\"s\" data-orderdir=\"".($orderdir == 'desc' ? '' : 'desc')."\">".getMLText("status")."</a>".($orderby == 's' ? " ".($orderdir == 'desc' ? '<i class="icon-arrow-up"></i>' : '<i class="icon-arrow-down"></i>') : '')."</th>\n";
else
print "<th>".getMLText("status")."</th>\n";
print "<th>".getMLText("action")."</th>\n";
print "</tr>\n</thead>\n<tbody>\n";
} /* }}} */
protected function printListFooter() { /* {{{ */
echo "</tbody>\n</table>";
} /* }}} */
protected function printList($resArr, $previewer, $order=false) { /* {{{ */
$dms = $this->params['dms'];
$user = $this->params['user'];
$this->printListHeader($resArr, $previewer, $order);
$noaccess = 0;
foreach ($resArr as $document) {
$document->verifyLastestContentExpriry();
if($document->getAccessMode($user) >= M_READ && $document->getLatestContent()) {
$txt = $this->callHook('documentListItem', $document, $previewer, false);
if(is_string($txt))
echo $txt;
else
echo $this->documentListRow($document, $previewer, false);
} else {
$noaccess++;
}
}
$this->printListFooter();
if($noaccess) {
$this->warningMsg(getMLText('list_contains_no_access_docs', array('count'=>$noaccess)));
}
} /* }}} */
function _tree($dms, $user, $folder, $path=':') { /* {{{ */
$objects = array();
@ -459,6 +513,46 @@ class SeedDMS_View_ObjectCheck extends SeedDMS_Bootstrap_Style {
}
} /* }}} */
function listDocsInRevisionNoAccess() { /* {{{ */
$dms = $this->params['dms'];
$user = $this->params['user'];
$folder = $this->params['folder'];
$docsinrevision = $this->params['docsinrevision'];
$cachedir = $this->params['cachedir'];
$previewwidth = $this->params['previewWidthList'];
$previewconverters = $this->params['previewconverters'];
$timeout = $this->params['timeout'];
$previewer = new SeedDMS_Preview_Previewer($cachedir, $previewwidth, $timeout);
$previewer->setConverters($previewconverters);
$this->contentHeading(getMLText("docs_in_revision_no_access"));
if($docsinrevision) {
$this->printList($docsinrevision, $previewer, 'listDocsInRevisionNoAccess');
}
} /* }}} */
function listDocsInReceptionNoAccess() { /* {{{ */
$dms = $this->params['dms'];
$user = $this->params['user'];
$folder = $this->params['folder'];
$docsinreception = $this->params['docsinreception'];
$cachedir = $this->params['cachedir'];
$previewwidth = $this->params['previewWidthList'];
$previewconverters = $this->params['previewconverters'];
$timeout = $this->params['timeout'];
$previewer = new SeedDMS_Preview_Previewer($cachedir, $previewwidth, $timeout);
$previewer->setConverters($previewconverters);
$this->contentHeading(getMLText("docs_in_revision_no_access"));
if($docsinreception) {
$this->printList($docsinreception, $previewer, 'listDocsInReceptionNoAccess');
}
} /* }}} */
function js() { /* {{{ */
$user = $this->params['user'];
$folder = $this->params['folder'];
@ -494,6 +588,8 @@ $(document).ready( function() {
$nofilesizeversions = $this->params['nofilesizeversions'];
$nochecksumversions = $this->params['nochecksumversions'];
$duplicateversions = $this->params['duplicateversions'];
$docsinrevision = $this->params['docsinrevision'];
$docsinreception = $this->params['docsinreception'];
$repair = $this->params['repair'];
$unlink = $this->params['unlink'];
$setfilesize = $this->params['setfilesize'];
@ -523,6 +619,8 @@ $(document).ready( function() {
$this->contentHeading(getMLText("object_check_warning"));
echo '<ul class="nav nav-list bs-docs-sidenav _affix">';
echo '<li class=""><a data-href="#duplicate_content" data-action="listDuplicateContent"><span class="badge '.($duplicateversions ? 'badge-info ' : '').'badge-right">'.count($duplicateversions).'</span>'.getMLText("duplicate_content").'</a></li>';
echo '<li class=""><a data-href="#inrevision_no_access" data-action="listDocsInRevisionNoAccess"><span class="badge '.($docsinrevision ? 'badge-info ' : '').'badge-right">'.count($docsinrevision).'</span>'.getMLText("docs_in_revision_no_access").'</a></li>';
echo '<li class=""><a data-href="#inreception_no_access" data-action="listDocsInReceptionNoAccess"><span class="badge '.($docsinreception ? 'badge-info ' : '').'badge-right">'.count($docsinreception).'</span>'.getMLText("docs_in_reception_no_access").'</a></li>';
echo '</ul>';
echo '</div>';
echo '<div class="span9">';