HOR-651 Permissions Error

This commit is contained in:
dheeyi
2016-03-30 17:23:54 -04:00
parent eadca40d08
commit fa5109841b
2 changed files with 134 additions and 133 deletions

View File

@@ -5114,12 +5114,12 @@ class Cases
* @return object * @return object
*/ */
public function getallDynaformsCriteria($sProcessUID, $sApplicationUID, $sTasKUID, $sUserUID) public function getallDynaformsCriteria($sProcessUID, $sApplicationUID, $sTasKUID, $sUserUID, $delIndex = 0)
{ {
//check OBJECT_PERMISSION table //check OBJECT_PERMISSION table
$this->verifyTable(); $this->verifyTable();
$aObjectPermissions = $this->getAllObjects($sProcessUID, $sApplicationUID, $sTasKUID, $sUserUID); $aObjectPermissions = $this->getAllObjects($sProcessUID, $sApplicationUID, $sTasKUID, $sUserUID, $delIndex);
if (!is_array($aObjectPermissions)) { if (!is_array($aObjectPermissions)) {
$aObjectPermissions = array( $aObjectPermissions = array(
'DYNAFORMS' => array(-1), 'DYNAFORMS' => array(-1),
@@ -5342,18 +5342,18 @@ class Cases
$respTo = $this->getTo($aTask["TAS_ASSIGN_TYPE"], $aTask["TAS_UID"], $aTask["USR_UID"], $arrayData); $respTo = $this->getTo($aTask["TAS_ASSIGN_TYPE"], $aTask["TAS_UID"], $aTask["USR_UID"], $arrayData);
$sTo = $respTo['to']; $sTo = $respTo['to'];
$sCc = $respTo['cc']; $sCc = $respTo['cc'];
if ($aTask ["TAS_ASSIGN_TYPE"] === "SELF_SERVICE") { if ($aTask ["TAS_ASSIGN_TYPE"] === "SELF_SERVICE") {
if ($swtplDefault == 1) { if ($swtplDefault == 1) {
G::verifyPath ( $pathEmail, true ); // Create if it does not exist G::verifyPath ( $pathEmail, true ); // Create if it does not exist
$fileTemplate = $pathEmail . G::LoadTranslation ( 'ID_UNASSIGNED_MESSAGE' ); $fileTemplate = $pathEmail . G::LoadTranslation ( 'ID_UNASSIGNED_MESSAGE' );
if ((! file_exists ( $fileTemplate )) && file_exists ( PATH_TPL . "mails" . PATH_SEP . G::LoadTranslation ( 'ID_UNASSIGNED_MESSAGE' ) )) { if ((! file_exists ( $fileTemplate )) && file_exists ( PATH_TPL . "mails" . PATH_SEP . G::LoadTranslation ( 'ID_UNASSIGNED_MESSAGE' ) )) {
@copy ( PATH_TPL . "mails" . PATH_SEP . G::LoadTranslation ( 'ID_UNASSIGNED_MESSAGE' ), $fileTemplate ); @copy ( PATH_TPL . "mails" . PATH_SEP . G::LoadTranslation ( 'ID_UNASSIGNED_MESSAGE' ), $fileTemplate );
} }
$sBody2 = G::replaceDataField ( file_get_contents ( $fileTemplate ), $arrayData2 ); $sBody2 = G::replaceDataField ( file_get_contents ( $fileTemplate ), $arrayData2 );
} }
} }
if ($sTo != null) { if ($sTo != null) {
@@ -5390,124 +5390,124 @@ class Cases
} catch (Exception $oException) { } catch (Exception $oException) {
throw $oException; throw $oException;
} }
} }
public function getTo($taskType, $taskUid, $taskUsrUid, $arrayData) public function getTo($taskType, $taskUid, $taskUsrUid, $arrayData)
{ {
$sTo = null; $sTo = null;
$sCc = null; $sCc = null;
$arrayResp = array (); $arrayResp = array ();
$task = new Tasks (); $task = new Tasks ();
$group = new Groups (); $group = new Groups ();
$oUser = new Users (); $oUser = new Users ();
switch ($taskType) { switch ($taskType) {
case "SELF_SERVICE" : case "SELF_SERVICE" :
if (isset ( $taskUid ) && ! empty ( $taskUid )) { if (isset ( $taskUid ) && ! empty ( $taskUid )) {
$arrayTaskUser = array (); $arrayTaskUser = array ();
$arrayAux1 = $task->getGroupsOfTask ( $taskUid, 1 ); $arrayAux1 = $task->getGroupsOfTask ( $taskUid, 1 );
foreach ( $arrayAux1 as $arrayGroup ) { foreach ( $arrayAux1 as $arrayGroup ) {
$arrayAux2 = $group->getUsersOfGroup ( $arrayGroup ["GRP_UID"] ); $arrayAux2 = $group->getUsersOfGroup ( $arrayGroup ["GRP_UID"] );
foreach ( $arrayAux2 as $arrayUser ) { foreach ( $arrayAux2 as $arrayUser ) {
$arrayTaskUser [] = $arrayUser ["USR_UID"]; $arrayTaskUser [] = $arrayUser ["USR_UID"];
} }
} }
$arrayAux1 = $task->getUsersOfTask ( $taskUid, 1 ); $arrayAux1 = $task->getUsersOfTask ( $taskUid, 1 );
foreach ( $arrayAux1 as $arrayUser ) { foreach ( $arrayAux1 as $arrayUser ) {
$arrayTaskUser [] = $arrayUser ["USR_UID"]; $arrayTaskUser [] = $arrayUser ["USR_UID"];
} }
$criteria = new Criteria ( "workflow" ); $criteria = new Criteria ( "workflow" );
$criteria->addSelectColumn ( UsersPeer::USR_UID ); $criteria->addSelectColumn ( UsersPeer::USR_UID );
$criteria->addSelectColumn ( UsersPeer::USR_USERNAME ); $criteria->addSelectColumn ( UsersPeer::USR_USERNAME );
$criteria->addSelectColumn ( UsersPeer::USR_FIRSTNAME ); $criteria->addSelectColumn ( UsersPeer::USR_FIRSTNAME );
$criteria->addSelectColumn ( UsersPeer::USR_LASTNAME ); $criteria->addSelectColumn ( UsersPeer::USR_LASTNAME );
$criteria->addSelectColumn ( UsersPeer::USR_EMAIL ); $criteria->addSelectColumn ( UsersPeer::USR_EMAIL );
$criteria->add ( UsersPeer::USR_UID, $arrayTaskUser, Criteria::IN ); $criteria->add ( UsersPeer::USR_UID, $arrayTaskUser, Criteria::IN );
$rsCriteria = UsersPeer::doSelectRs ( $criteria ); $rsCriteria = UsersPeer::doSelectRs ( $criteria );
$rsCriteria->setFetchmode ( ResultSet::FETCHMODE_ASSOC ); $rsCriteria->setFetchmode ( ResultSet::FETCHMODE_ASSOC );
$to = null; $to = null;
$cc = null; $cc = null;
$sw = 1; $sw = 1;
while ( $rsCriteria->next () ) { while ( $rsCriteria->next () ) {
$row = $rsCriteria->getRow (); $row = $rsCriteria->getRow ();
$toAux = ((($row ["USR_FIRSTNAME"] != "") || ($row ["USR_LASTNAME"] != "")) ? $row ["USR_FIRSTNAME"] . " " . $row ["USR_LASTNAME"] . " " : "") . "<" . $row ["USR_EMAIL"] . ">"; $toAux = ((($row ["USR_FIRSTNAME"] != "") || ($row ["USR_LASTNAME"] != "")) ? $row ["USR_FIRSTNAME"] . " " . $row ["USR_LASTNAME"] . " " : "") . "<" . $row ["USR_EMAIL"] . ">";
if ($sw == 1) { if ($sw == 1) {
$to = $toAux; $to = $toAux;
$sw = 0; $sw = 0;
} else { } else {
$cc = $cc . (($cc != null) ? "," : null) . $toAux; $cc = $cc . (($cc != null) ? "," : null) . $toAux;
} }
} }
$arrayResp ['to'] = $to; $arrayResp ['to'] = $to;
$arrayResp ['cc'] = $cc; $arrayResp ['cc'] = $cc;
} }
break; break;
case "MULTIPLE_INSTANCE" : case "MULTIPLE_INSTANCE" :
$to = null; $to = null;
$cc = null; $cc = null;
$sw = 1; $sw = 1;
$oDerivation = new Derivation (); $oDerivation = new Derivation ();
$userFields = $oDerivation->getUsersFullNameFromArray ( $oDerivation->getAllUsersFromAnyTask ( $taskUid ) ); $userFields = $oDerivation->getUsersFullNameFromArray ( $oDerivation->getAllUsersFromAnyTask ( $taskUid ) );
if (isset ( $userFields )) { if (isset ( $userFields )) {
foreach ( $userFields as $row ) { foreach ( $userFields as $row ) {
$toAux = ((($row ["USR_FIRSTNAME"] != "") || ($row ["USR_LASTNAME"] != "")) ? $row ["USR_FIRSTNAME"] . " " . $row ["USR_LASTNAME"] . " " : "") . "<" . $row ["USR_EMAIL"] . ">"; $toAux = ((($row ["USR_FIRSTNAME"] != "") || ($row ["USR_LASTNAME"] != "")) ? $row ["USR_FIRSTNAME"] . " " . $row ["USR_LASTNAME"] . " " : "") . "<" . $row ["USR_EMAIL"] . ">";
if ($sw == 1) { if ($sw == 1) {
$to = $toAux; $to = $toAux;
$sw = 0; $sw = 0;
} else { } else {
$cc = $cc . (($cc != null) ? "," : null) . $toAux; $cc = $cc . (($cc != null) ? "," : null) . $toAux;
} }
} }
$arrayResp ['to'] = $to; $arrayResp ['to'] = $to;
$arrayResp ['cc'] = $cc; $arrayResp ['cc'] = $cc;
} }
break; break;
case "MULTIPLE_INSTANCE_VALUE_BASED" : case "MULTIPLE_INSTANCE_VALUE_BASED" :
$oTask = new Task (); $oTask = new Task ();
$aTaskNext = $oTask->load ( $taskUid ); $aTaskNext = $oTask->load ( $taskUid );
if (isset ( $aTaskNext ["TAS_ASSIGN_VARIABLE"] ) && ! empty ( $aTaskNext ["TAS_ASSIGN_VARIABLE"] )) { if (isset ( $aTaskNext ["TAS_ASSIGN_VARIABLE"] ) && ! empty ( $aTaskNext ["TAS_ASSIGN_VARIABLE"] )) {
$to = null; $to = null;
$cc = null; $cc = null;
$sw = 1; $sw = 1;
$nextTaskAssignVariable = trim ( $aTaskNext ["TAS_ASSIGN_VARIABLE"], " @#" ); $nextTaskAssignVariable = trim ( $aTaskNext ["TAS_ASSIGN_VARIABLE"], " @#" );
$arrayUsers = $arrayData [$nextTaskAssignVariable]; $arrayUsers = $arrayData [$nextTaskAssignVariable];
$oDerivation = new Derivation (); $oDerivation = new Derivation ();
$userFields = $oDerivation->getUsersFullNameFromArray ( $arrayUsers ); $userFields = $oDerivation->getUsersFullNameFromArray ( $arrayUsers );
foreach ( $userFields as $row ) { foreach ( $userFields as $row ) {
$toAux = ((($row ["USR_FIRSTNAME"] != "") || ($row ["USR_LASTNAME"] != "")) ? $row ["USR_FIRSTNAME"] . " " . $row ["USR_LASTNAME"] . " " : "") . "<" . $row ["USR_EMAIL"] . ">"; $toAux = ((($row ["USR_FIRSTNAME"] != "") || ($row ["USR_LASTNAME"] != "")) ? $row ["USR_FIRSTNAME"] . " " . $row ["USR_LASTNAME"] . " " : "") . "<" . $row ["USR_EMAIL"] . ">";
if ($sw == 1) { if ($sw == 1) {
$to = $toAux; $to = $toAux;
$sw = 0; $sw = 0;
} else { } else {
$cc = $cc . (($cc != null) ? "," : null) . $toAux; $cc = $cc . (($cc != null) ? "," : null) . $toAux;
} }
} }
$arrayResp ['to'] = $to; $arrayResp ['to'] = $to;
$arrayResp ['cc'] = $cc; $arrayResp ['cc'] = $cc;
} }
break; break;
default : default :
if (isset ( $taskUsrUid ) && ! empty ( $taskUsrUid )) { if (isset ( $taskUsrUid ) && ! empty ( $taskUsrUid )) {
$aUser = $oUser->load ( $taskUsrUid ); $aUser = $oUser->load ( $taskUsrUid );
$sTo = ((($aUser ["USR_FIRSTNAME"] != "") || ($aUser ["USR_LASTNAME"] != "")) ? $aUser ["USR_FIRSTNAME"] . " " . $aUser ["USR_LASTNAME"] . " " : "") . "<" . $aUser ["USR_EMAIL"] . ">"; $sTo = ((($aUser ["USR_FIRSTNAME"] != "") || ($aUser ["USR_LASTNAME"] != "")) ? $aUser ["USR_FIRSTNAME"] . " " . $aUser ["USR_LASTNAME"] . " " : "") . "<" . $aUser ["USR_EMAIL"] . ">";
} }
$arrayResp ['to'] = $sTo; $arrayResp ['to'] = $sTo;
$arrayResp ['cc'] = ''; $arrayResp ['cc'] = '';
break; break;
} }
return $arrayResp; return $arrayResp;
} }
/** /**
@@ -5519,14 +5519,14 @@ class Cases
* @param Process ID, Application ID, Task ID and User ID * @param Process ID, Application ID, Task ID and User ID
* @return Array within all user permitions all objects' types * @return Array within all user permitions all objects' types
*/ */
public function getAllObjects($PRO_UID, $APP_UID, $TAS_UID = '', $USR_UID = '') public function getAllObjects($PRO_UID, $APP_UID, $TAS_UID = '', $USR_UID = '', $delIndex = 0)
{ {
$ACTIONS = Array('VIEW', 'BLOCK', 'DELETE'); //TO COMPLETE $ACTIONS = Array('VIEW', 'BLOCK', 'DELETE'); //TO COMPLETE
$MAIN_OBJECTS = Array(); $MAIN_OBJECTS = Array();
$RESULT_OBJECTS = Array(); $RESULT_OBJECTS = Array();
foreach ($ACTIONS as $action) { foreach ($ACTIONS as $action) {
$MAIN_OBJECTS[$action] = $this->getAllObjectsFrom($PRO_UID, $APP_UID, $TAS_UID, $USR_UID, $action); $MAIN_OBJECTS[$action] = $this->getAllObjectsFrom($PRO_UID, $APP_UID, $TAS_UID, $USR_UID, $action, $delIndex);
} }
/* ADDITIONAL OPERATIONS */ /* ADDITIONAL OPERATIONS */
/* * * BETWEN VIEW AND BLOCK** */ /* * * BETWEN VIEW AND BLOCK** */

View File

@@ -49,7 +49,8 @@ if ($actionAjax == 'historyDynaformGrid_Ajax') {
$oCase = new Cases(); $oCase = new Cases();
$aProcesses = Array (); $aProcesses = Array ();
$c = $oCase->getallDynaformsCriteria( $_SESSION['PROCESS'], $_SESSION['APPLICATION'], $_SESSION['CURRENT_TASK'], $_SESSION['USER_LOGGED'] ); $c = $oCase->getallDynaformsCriteria( $_SESSION['PROCESS'], $_SESSION['APPLICATION'], $_SESSION['CURRENT_TASK'],
$_SESSION['USER_LOGGED'] , $_SESSION['INDEX']);
if ($c->getDbName() == 'dbarray') { if ($c->getDbName() == 'dbarray') {
$rs = ArrayBasePeer::doSelectRs( $c ); $rs = ArrayBasePeer::doSelectRs( $c );