This commit is contained in:
Paula Quispe
2018-07-25 14:08:29 -04:00
parent d47af21c30
commit 33783adeb8
2 changed files with 36 additions and 10 deletions

View File

@@ -386,11 +386,12 @@ class InputDocument
* *
* @param string $applicationUid * @param string $applicationUid
* @param string $userUid * @param string $userUid
* @param array $documentsCanAccess
* *
* @return array Return an array with data of an InputDocument * @return array Return an array with data of an InputDocument
* @throws Exception * @throws Exception
*/ */
public function getCasesInputDocuments($applicationUid, $userUid) public function getCasesInputDocuments($applicationUid, $userUid, $documentsCanAccess = [])
{ {
try { try {
//Verify data inbox //Verify data inbox
@@ -415,7 +416,10 @@ class InputDocument
$criteria = $this->getAppDocumentCriteriaByData($applicationUid); $criteria = $this->getAppDocumentCriteriaByData($applicationUid);
if (!$flagInbox) { if (!$flagInbox) {
$criteria->add(AppDocumentPeer::USR_UID, $userUid, Criteria::EQUAL); $criteria->add(
$criteria->getNewCriterion(AppDocumentPeer::USR_UID, $userUid, Criteria::EQUAL)->addOr(
$criteria->getNewCriterion(AppDocumentPeer::APP_DOC_UID, $documentsCanAccess, Criteria::IN))
);
} }
$rsCriteria = AppDocumentPeer::doSelectRS($criteria); $rsCriteria = AppDocumentPeer::doSelectRS($criteria);

View File

@@ -1,10 +1,11 @@
<?php <?php
namespace ProcessMaker\Services\Api\Cases; namespace ProcessMaker\Services\Api\Cases;
use \ProcessMaker\Services\Api;
use \Luracast\Restler\RestException;
use ProcessMaker\BusinessModel\Cases\InputDocument AS CasesInputDocument;
use Exception; use Exception;
use Luracast\Restler\RestException;
use ProcessMaker\BusinessModel\Cases\InputDocument as CasesInputDocument;
use ProcessMaker\BusinessModel\Cases as BussinessModelCases;
use ProcessMaker\Services\Api;
/** /**
* Cases\InputDocument Api Controller * Cases\InputDocument Api Controller
@@ -16,23 +17,44 @@ class InputDocument extends Api
/** /**
* @url GET /:app_uid/input-documents * @url GET /:app_uid/input-documents
* *
* @param string $app_uid {@min 32}{@max 32} * @param string $app_uid {@min 32}{@max 32}
*
* @return array
* @throws RestException
*/ */
public function doGetInputDocuments($app_uid) public function doGetInputDocuments($app_uid)
{ {
try { try {
$userUid = $this->getUserId(); $userUid = $this->getUserId();
$inputDocument = new \ProcessMaker\BusinessModel\Cases\InputDocument(); //We will to get list of documents that the user can be access
$bmCases = new BussinessModelCases();
$arrayApplicationData = $bmCases->getApplicationRecordByPk($app_uid, [], false);
$userAuthorization = $bmCases->userAuthorization(
$userUid,
$arrayApplicationData['PRO_UID'],
$app_uid,
[],
['INPUT_DOCUMENTS' => 'VIEW', 'ATTACHMENTS' => 'VIEW'],
true
);
$documentsCanAccess = array_merge(
$userAuthorization['objectPermissions']['INPUT_DOCUMENTS'],
$userAuthorization['objectPermissions']['ATTACHMENTS']
);
$response = $inputDocument->getCasesInputDocuments($app_uid, $userUid); //We will to get documents information that the user uploaded and/or that the user has permission
$inputDocument = new CasesInputDocument();
//@todo we need to review the function getCasesInputDocuments with the ticket HOR-4755
$response = $inputDocument->getCasesInputDocuments($app_uid, $userUid, $documentsCanAccess);
if (empty($response)) { //If the user is a supervisor we will to get the documents can be access
if (empty($response) && $userAuthorization['supervisor']) {
$response = $inputDocument->getCasesInputDocumentsBySupervisor($app_uid, $userUid); $response = $inputDocument->getCasesInputDocumentsBySupervisor($app_uid, $userUid);
} }
//Return //Return
return $response; return $response;
} catch (\Exception $e) { } catch (Exception $e) {
throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage())); throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
} }
} }