diff --git a/workflow/engine/classes/model/AppFolder.php b/workflow/engine/classes/model/AppFolder.php index 7b5fe4196..c4b4baaa4 100755 --- a/workflow/engine/classes/model/AppFolder.php +++ b/workflow/engine/classes/model/AppFolder.php @@ -203,7 +203,7 @@ if($limit != 0){ return $folderArray; } - function getFolderContent($folderID, $docIdFilter = array(), $keyword = NULL, $searchType = NULL, $limit=0, $start=0) { + function getFolderContent($folderID, $docIdFilter = array(), $keyword = NULL, $searchType = NULL, $limit=0, $start=0, $user='') { require_once ("classes/model/AppDocument.php"); require_once ("classes/model/InputDocument.php"); require_once ("classes/model/OutputDocument.php"); @@ -229,6 +229,31 @@ if($limit != 0){ $oCriteria->add ( AppDocumentPeer::APP_DOC_TAGS, "%" . $keyword . "%", CRITERIA::LIKE ); } + if ($user != '') { + require_once ("classes/model/AppDelegation.php"); + $criteria = new Criteria (); + $criteria->addSelectColumn (AppDelegationPeer::APP_UID); + $criteria->setDistinct(); + + $conditions = array (); + $conditions [] = array (AppDelegationPeer::APP_UID, AppDocumentPeer::APP_UID); + $conditions [] = array (AppDelegationPeer::DEL_INDEX, AppDocumentPeer::DEL_INDEX); + + $criteria->addJoinMC($conditions, Criteria::LEFT_JOIN); + + $criteria->add(AppDelegationPeer::USR_UID, $user); + + $rs2 = AppDocumentPeer::doSelectRS($criteria); + + $rs2->setFetchmode(ResultSet::FETCHMODE_ASSOC); + $data = array(); + while ($rs2->next()) { + $row = $rs2->getRow(); + $data[] = $row['APP_UID']; + } + $oCriteria->add ( AppDocumentPeer::APP_UID, $data, CRITERIA::IN ); + } + $oCase->verifyTable (); @@ -246,7 +271,6 @@ if($limit != 0){ $rs = AppDocumentPeer::doSelectRS ( $oCriteria ); - $rs->setFetchmode ( ResultSet::FETCHMODE_ASSOC ); $rs->next (); $filesResult = array (); diff --git a/workflow/engine/menus/cases.php b/workflow/engine/menus/cases.php index 72a8c5606..e8b96ccdd 100755 --- a/workflow/engine/menus/cases.php +++ b/workflow/engine/menus/cases.php @@ -58,7 +58,9 @@ if ( $RBAC->userCanAccess('PM_REASSIGNCASE') == 1 ) { $G_TMP_MENU->AddIdRawOption('CASES_TO_REASSIGN', 'casesListExtJs?action=to_reassign', G::LoadTranslation('ID_TO_REASSIGN'), 'reassing.png' ); } -$G_TMP_MENU->AddIdRawOption('CASES_FOLDERS', 'casesStartPage?action=documents', G::LoadTranslation('ID_FOLDERS'), 'folderV2.gif','','blockHeaderNoChild' ); +if ($RBAC->userCanAccess('PM_FOLDERS_VIEW') == 1) { + $G_TMP_MENU->AddIdRawOption('CASES_FOLDERS', 'casesStartPage?action=documents', G::LoadTranslation('ID_FOLDERS'), 'folderV2.gif','','blockHeaderNoChild' ); +} diff --git a/workflow/engine/methods/appFolder/appFolderAjax.php b/workflow/engine/methods/appFolder/appFolderAjax.php index a0966450e..b21e6b4a7 100755 --- a/workflow/engine/methods/appFolder/appFolderAjax.php +++ b/workflow/engine/methods/appFolder/appFolderAjax.php @@ -120,7 +120,9 @@ function expandNode(){ $totalDocuments=0; if(($_POST['sendWhat']=="dirs")||($_POST['sendWhat']=="both")){ - $folderListObj = $oPMFolder->getFolderList ( $_POST ['node'] != 'root' ? $_POST ['node'] == 'NA' ? "" : $_POST ['node'] : $rootFolder, $limit, $start ); + + + $folderListObj = $oPMFolder->getFolderList ( $_POST ['node'] != 'root' ? $_POST ['node'] == 'NA' ? "" : $_POST ['node'] : $rootFolder, $limit, $start); //G::pr($folderListObj); $folderList=$folderListObj['folders']; $totalFolders=$folderListObj['totalFoldersCount']; @@ -128,14 +130,14 @@ function expandNode(){ // G::pr($folderListObj); } - if(($_POST['sendWhat']=="files")||($_POST['sendWhat']=="both")){ - $folderContentObj = $oPMFolder->getFolderContent ( $_POST ['node'] != 'root' ? $_POST ['node'] == 'NA' ? "" : $_POST ['node'] : $rootFolder, array(), NULL, NULL, $limit, $start ); - //G::pr($folderContentObj); + if (($_POST['sendWhat'] == "files")||($_POST['sendWhat'] == "both")) { + global $RBAC; + $user = ($RBAC->userCanAccess('PM_ALLCASES') == 1)? '' : $_SESSION['USER_LOGGED']; + $folderContentObj = $oPMFolder->getFolderContent ( $_POST ['node'] != 'root' ? $_POST ['node'] == 'NA' ? "" : $_POST ['node'] : $rootFolder, array(), NULL, NULL, $limit, $start, $user); $folderContent=$folderContentObj['documents']; $totalDocuments=$folderContentObj['totalDocumentsCount']; $totalItems+=count($folderContent); - -//G::pr($folderContent); + //G::pr($folderContent); } // G::pr($folderList); //var_dump(isset($folderList));