Se modifica end point de validacion de usuario mediante WS, no es necesario enviar act_uid en PROJECT USERS

This commit is contained in:
Daniel Rojas
2014-03-12 13:25:38 -04:00
parent 850952607a
commit ab04aa6e4d
2 changed files with 22 additions and 12 deletions

View File

@@ -202,13 +202,14 @@ class ProjectUser
* Return the user that can start a task * Return the user that can start a task
* *
* @param string $sProcessUID {@min 32} {@max 32} * @param string $sProcessUID {@min 32} {@max 32}
* @param string $sActivityUID {@min 32} {@max 32}
* @param array $oData * @param array $oData
* *
* return array * return array
* *
* @access public * @access public
*/ */
public function postProjectWsUserCanStartTask($sProcessUID, $oData) public function postProjectWsUserCanStartTask($sProcessUID, $sActivityUID, $oData)
{ {
try { try {
$oProcess = \ProcessPeer::retrieveByPK( $sProcessUID ); $oProcess = \ProcessPeer::retrieveByPK( $sProcessUID );
@@ -220,8 +221,7 @@ class ProjectUser
* validates if the username and password are valid data and if the user assigned * validates if the username and password are valid data and if the user assigned
* to the webentry has the rights and persmissions required * to the webentry has the rights and persmissions required
*/ */
$sPRO_UID = $sProcessUID; $sTASKS = $sActivityUID;
$sTASKS = $oData['act_uid'];
$sWS_USER = trim( $oData['username'] ); $sWS_USER = trim( $oData['username'] );
$sWS_PASS = trim( $oData['password'] ); $sWS_PASS = trim( $oData['password'] );
if (\G::is_https()) { if (\G::is_https()) {
@@ -265,9 +265,14 @@ class ProjectUser
$oCriteria->addSelectColumn( \UsersPeer::USR_USERNAME ); $oCriteria->addSelectColumn( \UsersPeer::USR_USERNAME );
$oCriteria->addSelectColumn( \UsersPeer::USR_FIRSTNAME ); $oCriteria->addSelectColumn( \UsersPeer::USR_FIRSTNAME );
$oCriteria->addSelectColumn( \UsersPeer::USR_LASTNAME ); $oCriteria->addSelectColumn( \UsersPeer::USR_LASTNAME );
$oCriteria->addSelectColumn( \TaskPeer::PRO_UID );
$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->addJoin( \TaskUserPeer::TAS_UID, \TaskPeer::TAS_UID, \Criteria::LEFT_JOIN );
if ($sTASKS) {
$oCriteria->add( \TaskUserPeer::TAS_UID, $sTASKS );
}
$oCriteria->add( \UsersPeer::USR_USERNAME, $sWS_USER ); $oCriteria->add( \UsersPeer::USR_USERNAME, $sWS_USER );
$oCriteria->add( \TaskPeer::PRO_UID, $sProcessUID );
$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) {
@@ -278,11 +283,19 @@ class ProjectUser
$oCriteria->addSelectColumn( \UsersPeer::USR_LASTNAME ); $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->addJoin( \TaskUserPeer::TAS_UID, \TaskPeer::TAS_UID, \Criteria::LEFT_JOIN );
if ($sTASKS) {
$oCriteria->add( \TaskUserPeer::TAS_UID, $sTASKS );
}
$oCriteria->add( \UsersPeer::USR_USERNAME, $sWS_USER ); $oCriteria->add( \UsersPeer::USR_USERNAME, $sWS_USER );
$oCriteria->add( \TaskPeer::PRO_UID, $sProcessUID );
$userIsAssigned = \GroupUserPeer::doCount( $oCriteria ); $userIsAssigned = \GroupUserPeer::doCount( $oCriteria );
if (! ($userIsAssigned >= 1)) { if (! ($userIsAssigned >= 1)) {
throw (new \Exception( "The `usr_uid` `" . $sWS_USER . "` doesn't have the activity `act_uid` `" . $sTASKS . "` assigned")); if ($sTASKS) {
throw (new \Exception( "The `usr_uid` `" . $sWS_USER . "` doesn't have the activity `act_uid` `" . $sTASKS . "` assigned"));
} else {
throw (new \Exception( "The `usr_uid` `" . $sWS_USER . "` doesn't have an activity assigned"));
}
} }
} }
$oDataset = \TaskUserPeer::doSelectRS($oCriteria); $oDataset = \TaskUserPeer::doSelectRS($oCriteria);

View File

@@ -71,16 +71,17 @@ class ProjectUsers extends Api
/** /**
* @param string $prj_uid {@min 32} {@max 32} * @param string $prj_uid {@min 32} {@max 32}
* @param string $act_uid {@min 32} {@max 32}
* @param wsUserCanStartTaskStructure $request_data * @param wsUserCanStartTaskStructure $request_data
* *
* @url POST /:prj_uid/ws/user/can-start-task * @url POST /:prj_uid/ws/user/can-start-task
*/ */
public function doPostProjectWsUserCanStartTask($prj_uid, wsUserCanStartTaskStructure $request_data = null) public function doPostProjectWsUserCanStartTask($prj_uid, $act_uid = null, wsUserCanStartTaskStructure $request_data = null)
{ {
try { try {
$request_data = (array)($request_data); $request_data = (array)($request_data);
$user = new \BusinessModel\ProjectUser(); $user = new \BusinessModel\ProjectUser();
$objectData = $user->postProjectWsUserCanStartTask($prj_uid, $request_data); $objectData = $user->postProjectWsUserCanStartTask($prj_uid, $act_uid, $request_data);
//Response //Response
$response = $objectData; $response = $objectData;
} catch (\Exception $e) { } catch (\Exception $e) {
@@ -93,10 +94,6 @@ class ProjectUsers extends Api
class wsUserCanStartTaskStructure class wsUserCanStartTaskStructure
{ {
/**
* @var string {@from body} {@min 32} {@max 32}
*/
public $act_uid;
/** /**
* @var string {@from body} * @var string {@from body}
*/ */