Merged in darojas/processmaker (pull request #133)

Se agregan a usuarios que estan en los grupos en PROJECT USER. Cambios en FILES MANAGER
This commit is contained in:
erik ao
2014-01-30 15:43:09 -04:00
3 changed files with 87 additions and 10 deletions

View File

@@ -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 * Return the Process Files Manager
* *

View File

@@ -33,26 +33,61 @@ class ProjectUser
$oCriteria->addJoin(\TaskUserPeer::TAS_UID, \TaskPeer::TAS_UID, \Criteria::LEFT_JOIN); $oCriteria->addJoin(\TaskUserPeer::TAS_UID, \TaskPeer::TAS_UID, \Criteria::LEFT_JOIN);
$oCriteria->add(\TaskPeer::PRO_UID, $sProcessUID); $oCriteria->add(\TaskPeer::PRO_UID, $sProcessUID);
$oCriteria->add(\TaskUserPeer::TU_TYPE, 1); $oCriteria->add(\TaskUserPeer::TU_TYPE, 1);
$oCriteria->add(\TaskUserPeer::TU_RELATION, 1);
$oCriteria->addGroupByColumn(USR_UID); $oCriteria->addGroupByColumn(USR_UID);
$oDataset = \TaskUserPeer::doSelectRS($oCriteria); $oDataset = \TaskUserPeer::doSelectRS($oCriteria);
$oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC); $oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
$oDataset->next(); $oDataset->next();
while ($aRow = $oDataset->getRow()) { while ($aRow = $oDataset->getRow()) {
$aUsers[] = array('usr_uid' => $aRow['USR_UID'], if ($aRow['TU_RELATION'] == 1) {
'usr_username' => $aRow['USR_USERNAME'], $aUsers[] = array('usr_uid' => $aRow['USR_UID'],
'usr_firstname' => $aRow['USR_FIRSTNAME'], 'usr_username' => $aRow['USR_USERNAME'],
'usr_lastname' => $aRow['USR_LASTNAME']); '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(); $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) { } catch (Exception $e) {
throw $e; throw $e;
} }
} }
/** /**
* Return the users and users groups to assigned to a process * Return starting task
* *
* @param string $sProcessUID {@min 32} {@max 32} * @param string $sProcessUID {@min 32} {@max 32}
* *
@@ -110,7 +145,7 @@ class ProjectUser
} }
/** /**
* Return the users and users groups to assigned to a process * Return starting task by users
* *
* @param string $sProcessUID {@min 32} {@max 32} * @param string $sProcessUID {@min 32} {@max 32}
* @param string $sUserUID {@min 32} {@max 32} * @param string $sUserUID {@min 32} {@max 32}
@@ -142,7 +177,7 @@ class ProjectUser
} }
/** /**
* Return the users and users groups to assigned to a process * Return the user that can start a task
* *
* @param string $sProcessUID {@min 32} {@max 32} * @param string $sProcessUID {@min 32} {@max 32}
* @param array $oData * @param array $oData
@@ -212,12 +247,14 @@ class ProjectUser
$oCriteria->addJoin( \TaskUserPeer::USR_UID, \UsersPeer::USR_UID, \Criteria::LEFT_JOIN ); $oCriteria->addJoin( \TaskUserPeer::USR_UID, \UsersPeer::USR_UID, \Criteria::LEFT_JOIN );
$oCriteria->add( \TaskUserPeer::TAS_UID, $sTASKS ); $oCriteria->add( \TaskUserPeer::TAS_UID, $sTASKS );
$oCriteria->add( \UsersPeer::USR_USERNAME, $sWS_USER ); $oCriteria->add( \UsersPeer::USR_USERNAME, $sWS_USER );
//$oCriteria->add(TaskUserPeer::TU_RELATION,1);
$userIsAssigned = \TaskUserPeer::doCount( $oCriteria ); $userIsAssigned = \TaskUserPeer::doCount( $oCriteria );
// if the user is not assigned directly, maybe a have the task a group with the user // if the user is not assigned directly, maybe a have the task a group with the user
if ($userIsAssigned < 1) { if ($userIsAssigned < 1) {
$oCriteria = new \Criteria( 'workflow' ); $oCriteria = new \Criteria( 'workflow' );
$oCriteria->addSelectColumn( \UsersPeer::USR_UID ); $oCriteria->addSelectColumn( \UsersPeer::USR_UID );
$oCriteria->addSelectColumn( \UsersPeer::USR_USERNAME );
$oCriteria->addSelectColumn( \UsersPeer::USR_FIRSTNAME );
$oCriteria->addSelectColumn( \UsersPeer::USR_LASTNAME );
$oCriteria->addJoin( \UsersPeer::USR_UID, \GroupUserPeer::USR_UID, \Criteria::LEFT_JOIN ); $oCriteria->addJoin( \UsersPeer::USR_UID, \GroupUserPeer::USR_UID, \Criteria::LEFT_JOIN );
$oCriteria->addJoin( \GroupUserPeer::GRP_UID, \TaskUserPeer::USR_UID, \Criteria::LEFT_JOIN ); $oCriteria->addJoin( \GroupUserPeer::GRP_UID, \TaskUserPeer::USR_UID, \Criteria::LEFT_JOIN );
$oCriteria->add( \TaskUserPeer::TAS_UID, $sTASKS ); $oCriteria->add( \TaskUserPeer::TAS_UID, $sTASKS );

View File

@@ -103,6 +103,27 @@ class FilesManager extends Api
return $response; 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} * @param string $prjUid {@min 32} {@max 32}
* *