From 6ea9cc28d77166eea048d8c99b04df4b665457e8 Mon Sep 17 00:00:00 2001 From: Freddy Daniel Rojas Valda Date: Thu, 30 Jan 2014 14:53:30 -0400 Subject: [PATCH] Se agregan a usuarios que estan en los grupos en PROJECT USER. Cambios en FILES MANAGER --- .../engine/src/BusinessModel/FilesManager.php | 19 ++++++++ .../engine/src/BusinessModel/ProjectUser.php | 47 ++++++++++++++++--- .../Api/ProcessMaker/Project/FilesManager.php | 21 +++++++++ 3 files changed, 81 insertions(+), 6 deletions(-) diff --git a/workflow/engine/src/BusinessModel/FilesManager.php b/workflow/engine/src/BusinessModel/FilesManager.php index 953adb6cf..ce2039ce2 100644 --- a/workflow/engine/src/BusinessModel/FilesManager.php +++ b/workflow/engine/src/BusinessModel/FilesManager.php @@ -194,6 +194,25 @@ class FilesManager } } + /** + * Return the Process Files Manager + * + * @param string $sProcessUID {@min 32} {@max 32} + * @param string $userUid {@min 32} {@max 32} + * @param array $aData + * + * return array + * + * @access public + */ + public function updateProcessFilesManager($sProcessUID, $userUid, $aData) + { + try { + } catch (Exception $e) { + throw $e; + } + } + /** * Return the Process Files Manager * diff --git a/workflow/engine/src/BusinessModel/ProjectUser.php b/workflow/engine/src/BusinessModel/ProjectUser.php index d2646dd79..41328fbf5 100644 --- a/workflow/engine/src/BusinessModel/ProjectUser.php +++ b/workflow/engine/src/BusinessModel/ProjectUser.php @@ -33,19 +33,54 @@ class ProjectUser $oCriteria->addJoin(\TaskUserPeer::TAS_UID, \TaskPeer::TAS_UID, \Criteria::LEFT_JOIN); $oCriteria->add(\TaskPeer::PRO_UID, $sProcessUID); $oCriteria->add(\TaskUserPeer::TU_TYPE, 1); - $oCriteria->add(\TaskUserPeer::TU_RELATION, 1); $oCriteria->addGroupByColumn(USR_UID); $oDataset = \TaskUserPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC); $oDataset->next(); while ($aRow = $oDataset->getRow()) { - $aUsers[] = array('usr_uid' => $aRow['USR_UID'], - 'usr_username' => $aRow['USR_USERNAME'], - 'usr_firstname' => $aRow['USR_FIRSTNAME'], - 'usr_lastname' => $aRow['USR_LASTNAME']); + if ($aRow['TU_RELATION'] == 1) { + $aUsers[] = array('usr_uid' => $aRow['USR_UID'], + 'usr_username' => $aRow['USR_USERNAME'], + 'usr_firstname' => $aRow['USR_FIRSTNAME'], + 'usr_lastname' => $aRow['USR_LASTNAME']); + } else { + $criteria = new \Criteria("workflow"); + $criteria->addSelectColumn(\UsersPeer::USR_UID); + $criteria->addJoin(\GroupUserPeer::USR_UID, \UsersPeer::USR_UID, \Criteria::INNER_JOIN); + $criteria->add(\GroupUserPeer::GRP_UID, $aRow['USR_UID'], \Criteria::EQUAL); + $criteria->add(\UsersPeer::USR_STATUS, "CLOSED", \Criteria::NOT_EQUAL); + $rsCriteria = \GroupUserPeer::doSelectRS($criteria); + $rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC); + while ($rsCriteria->next()) { + $row = $rsCriteria->getRow(); + $oCriteriaU = new \Criteria('workflow'); + $oCriteriaU->setDistinct(); + $oCriteriaU->addSelectColumn(\UsersPeer::USR_FIRSTNAME); + $oCriteriaU->addSelectColumn(\UsersPeer::USR_LASTNAME); + $oCriteriaU->addSelectColumn(\UsersPeer::USR_USERNAME); + $oCriteriaU->addSelectColumn(\UsersPeer::USR_EMAIL); + $oCriteriaU->add(\UsersPeer::USR_UID, $row['USR_UID']); + $oDatasetU = \UsersPeer::doSelectRS($oCriteriaU); + $oDatasetU->setFetchmode(\ResultSet::FETCHMODE_ASSOC); + while ($oDatasetU->next()) { + $aRowU = $oDatasetU->getRow(); + $aUsers[] = array('usr_uid' => $row['USR_UID'], + 'usr_username' => $aRowU['USR_USERNAME'], + 'usr_firstname' => $aRowU['USR_FIRSTNAME'], + 'usr_lastname' => $aRowU['USR_LASTNAME']); + } + } + } $oDataset->next(); } - return $aUsers; + $aUsersGroups = array(); + $exclude = array(""); + for ($i = 0; $i<=count($aUsers)-1; $i++) { + if (!in_array(trim($aUsers[$i]["usr_uid"]) ,$exclude)) { + $aUsersGroups[] = $aUsers[$i]; $exclude[] = trim($aUsers[$i]["usr_uid"]); + } + } + return $aUsersGroups; } catch (Exception $e) { throw $e; } diff --git a/workflow/engine/src/Services/Api/ProcessMaker/Project/FilesManager.php b/workflow/engine/src/Services/Api/ProcessMaker/Project/FilesManager.php index 51455b8e6..a79ac917a 100644 --- a/workflow/engine/src/Services/Api/ProcessMaker/Project/FilesManager.php +++ b/workflow/engine/src/Services/Api/ProcessMaker/Project/FilesManager.php @@ -103,6 +103,27 @@ class FilesManager extends Api return $response; } + /** + * @param string $prjUid {@min 32} {@max 32} + * @param ProcessFilesManagerStructure $request_data + * + * @url PUT /:prjUid/process-file-manager-upload + */ + public function doPutProcessFilesManagerUpload($prjUid, ProcessFilesManagerStructure $request_data) + { + try { + $userUid = $this->getUserId(); + $request_data = (array)($request_data); + $filesManager = new \BusinessModel\FilesManager(); + $arrayData = $filesManager->updateProcessFilesManager($prjUid, $userUid, $request_data); + //Response + $response = $arrayData; + } catch (\Exception $e) { + //response + throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()); + } + return $response; + } /** * @param string $prjUid {@min 32} {@max 32} *