Merged develop into bugfix/HOR-2572

This commit is contained in:
Paula Quispe
2017-10-31 07:36:29 -04:00
12 changed files with 122 additions and 104 deletions

View File

@@ -5664,48 +5664,55 @@ class Cases
/**
* Obtain all user permits for Dynaforms, Input and output documents
* function getAllObjects ($proUid, $appUid, $tasUid, $usrUid)
*
* function getAllObjects ($PRO_UID, $APP_UID, $TAS_UID, $USR_UID)
* @author Erik Amaru Ortiz <erik@colosa.com>
* @access public
* @param Process ID, Application ID, Task ID and User ID
* @return Array within all user permitions all objects' types
* @param string $proUid, Process ID
* @param string $appUid, Application ID,
* @param string $tasUid, Task ID
* @param string $usrUid, User ID
* @param integer $delIndex, User ID
*
* @return array within all user permissions all objects' types
*/
public function getAllObjects($PRO_UID, $APP_UID, $TAS_UID = '', $USR_UID = '', $delIndex = 0)
public function getAllObjects($proUid, $appUid, $tasUid = '', $usrUid = '', $delIndex = 0)
{
$ACTIONS = array('VIEW', 'BLOCK', 'DELETE'); //TO COMPLETE
$MAIN_OBJECTS = array();
$RESULT_OBJECTS = array();
$permissionAction = ['VIEW', 'BLOCK', 'DELETE']; //TO COMPLETE
$mainObjects = [];
$resultObjects = [];
foreach ($ACTIONS as $action) {
$MAIN_OBJECTS[$action] = $this->getAllObjectsFrom($PRO_UID, $APP_UID, $TAS_UID, $USR_UID, $action, $delIndex);
foreach ($permissionAction as $action) {
$mainObjects[$action] = $this->getAllObjectsFrom($proUid, $appUid, $tasUid, $usrUid, $action, $delIndex);
}
/* ADDITIONAL OPERATIONS */
/* * * BETWEN VIEW AND BLOCK** */
$RESULT_OBJECTS['DYNAFORMS'] = G::arrayDiff(
$MAIN_OBJECTS['VIEW']['DYNAFORMS'], $MAIN_OBJECTS['BLOCK']['DYNAFORMS']
//We will review data with VIEW and BLOCK
//Dynaforms BLOCK it means does not show in the list
$resultObjects['DYNAFORMS'] = G::arrayDiff(
$mainObjects['VIEW']['DYNAFORMS'], $mainObjects['BLOCK']['DYNAFORMS']
);
$RESULT_OBJECTS['INPUT_DOCUMENTS'] = G::arrayDiff(
$MAIN_OBJECTS['VIEW']['INPUT_DOCUMENTS'], $MAIN_OBJECTS['BLOCK']['INPUT_DOCUMENTS']
//Input BLOCK it means does not show in the list
$resultObjects['INPUT_DOCUMENTS'] = G::arrayDiff(
$mainObjects['VIEW']['INPUT_DOCUMENTS'], $mainObjects['BLOCK']['INPUT_DOCUMENTS']
);
$RESULT_OBJECTS['OUTPUT_DOCUMENTS'] = array_merge_recursive(
G::arrayDiff($MAIN_OBJECTS['VIEW']['OUTPUT_DOCUMENTS'], $MAIN_OBJECTS['BLOCK']['OUTPUT_DOCUMENTS']), G::arrayDiff($MAIN_OBJECTS['DELETE']['OUTPUT_DOCUMENTS'], $MAIN_OBJECTS['BLOCK']['OUTPUT_DOCUMENTS'])
//Output BLOCK it means does not show in the list
$resultObjects['OUTPUT_DOCUMENTS'] = array_merge_recursive(
G::arrayDiff($mainObjects['VIEW']['OUTPUT_DOCUMENTS'], $mainObjects['BLOCK']['OUTPUT_DOCUMENTS']), G::arrayDiff($mainObjects['DELETE']['OUTPUT_DOCUMENTS'], $mainObjects['BLOCK']['OUTPUT_DOCUMENTS'])
);
$RESULT_OBJECTS['CASES_NOTES'] = G::arrayDiff(
$MAIN_OBJECTS['VIEW']['CASES_NOTES'], $MAIN_OBJECTS['BLOCK']['CASES_NOTES']
//Case notes BLOCK it means does not show in the list
$resultObjects['CASES_NOTES'] = G::arrayDiff(
$mainObjects['VIEW']['CASES_NOTES'], $mainObjects['BLOCK']['CASES_NOTES']
);
array_push($RESULT_OBJECTS["DYNAFORMS"], -1, -2);
array_push($RESULT_OBJECTS['INPUT_DOCUMENTS'], -1);
array_push($RESULT_OBJECTS['OUTPUT_DOCUMENTS'], -1);
array_push($RESULT_OBJECTS['CASES_NOTES'], -1);
array_push($resultObjects["DYNAFORMS"], -1, -2);
array_push($resultObjects['INPUT_DOCUMENTS'], -1);
array_push($resultObjects['OUTPUT_DOCUMENTS'], -1);
array_push($resultObjects['CASES_NOTES'], -1);
return $RESULT_OBJECTS;
return $resultObjects;
}
/**
* Obtain all object permissions for Dynaforms, Input, Output and Message history
*
* This function return information about a specific object permissions or for all = ANY
*
* @access public
* @param string $proUid
* @param string $appUid
@@ -5713,6 +5720,7 @@ class Cases
* @param string $usrUid
* @param string $action some action [VIEW, BLOCK, RESEND]
* @param integer $delIndex
*
* @return array within all user permissions all objects' types
*/
public function getAllObjectsFrom($proUid, $appUid, $tasUid = '', $usrUid = '', $action = '', $delIndex = 0)
@@ -5727,25 +5735,22 @@ class Cases
}
}
$userPermissions = array();
$groupPermissions = array();
$result = array(
"DYNAFORM" => array(),
"INPUT" => array(),
"ATTACHMENT" => array(),
"OUTPUT" => array(),
"CASES_NOTES" => 0,
"MSGS_HISTORY" => array()
/*----------------------------------********---------------------------------*/
, "SUMMARY_FORM" => 0
/*----------------------------------********---------------------------------*/
);
$userPermissions = [];
$groupPermissions = [];
$oObjectPermission = new ObjectPermission();
$userPermissions = $oObjectPermission->verifyObjectPermissionPerUser($usrUid, $proUid, $tasUid, $action, $caseData);
$groupPermissions = $oObjectPermission->verifyObjectPermissionPerGroup($usrUid, $proUid, $tasUid, $action, $caseData);
$objectPermission = new ObjectPermission();
$userPermissions = $objectPermission->verifyObjectPermissionPerUser($usrUid, $proUid, $tasUid, $action, $caseData);
$groupPermissions = $objectPermission->verifyObjectPermissionPerGroup($usrUid, $proUid, $tasUid, $action, $caseData);
$permissions = array_merge($userPermissions, $groupPermissions);
$resultDynaforms = [];
$resultInputs = [];
$resultAttachments = [];
$resultOutputs = [];
$resultCaseNotes = 0;
$resultSummary = 0;
$resultMessages = [];
foreach ($permissions as $row) {
$userUid = $row['USR_UID'];
$opUserRelation = $row['OP_USER_RELATION'];
@@ -5758,35 +5763,37 @@ class Cases
//The values of obCaseStatus is [ALL, COMPLETED, DRAFT, TO_DO, PAUSED]
//If the case is todo and we need the participate
//but we did not participated did not validate nothing and return array empty
$sw_participate = false; // must be false for default
$swParticipate = false; // must be false for default
if ($obCaseStatus != 'COMPLETED' && $opParticipated == 1) {
$oCriteriax = new Criteria('workflow');
$oCriteriax->add(AppDelegationPeer::USR_UID, $usrUid);
$oCriteriax->add(AppDelegationPeer::APP_UID, $appUid);
$datasetx = AppDelegationPeer::doSelectRS($oCriteriax);
$datasetx->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$datasetx->next();
$aRow = $datasetx->getRow();
if (!is_array($aRow)) {
$criteria = new Criteria('workflow');
$criteria->add(AppDelegationPeer::USR_UID, $usrUid);
$criteria->add(AppDelegationPeer::APP_UID, $appUid);
$dataset = AppDelegationPeer::doSelectRS($criteria);
$dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$dataset->next();
$row = $dataset->getRow();
if (!is_array($row)) {
//The user was not participated in the case and the participation is required
$sw_participate = true;
$swParticipate = true;
}
}
//If user can be see the objects process
//We will be prepare the data relate to the Type can be ANY, DYNAFORM, INPUT, OUTPUT, ...
if (!$sw_participate) {
if (!$swParticipate) {
switch ($opType) {
case 'ANY':
//For dynaforms
$result['DYNAFORM'] = $oObjectPermission->objectPermissionByDynaform(
$listDynaform = $objectPermission->objectPermissionByDynaform(
$appUid,
$opTaskSource,
$opObjUid,
$caseData['APP_STATUS']
);
$resultDynaforms = array_merge($resultDynaforms, $listDynaform);
//For Ouputs
$result['OUTPUT'] = $oObjectPermission->objectPermissionByOutputInput(
$listOutput = $objectPermission->objectPermissionByOutputInput(
$appUid,
$proUid,
$opTaskSource,
@@ -5794,8 +5801,10 @@ class Cases
$opObjUid,
$caseData['APP_STATUS']
);
$resultOutputs = array_merge($resultOutputs, $listOutput);
//For Inputs
$result['INPUT'] = $oObjectPermission->objectPermissionByOutputInput(
$listInput = $objectPermission->objectPermissionByOutputInput(
$appUid,
$proUid,
$opTaskSource,
@@ -5803,8 +5812,10 @@ class Cases
$opObjUid,
$caseData['APP_STATUS']
);
$resultInputs = array_merge($resultInputs, $listInput);
//For Attachment
$result['ATTACHMENT'] = $oObjectPermission->objectPermissionByOutputInput(
$listAttachment = $objectPermission->objectPermissionByOutputInput(
$appUid,
$proUid,
$opTaskSource,
@@ -5812,14 +5823,15 @@ class Cases
$opObjUid,
$caseData['APP_STATUS']
);
$resultAttachments = array_merge($resultAttachments, $listAttachment);
$result['CASES_NOTES'] = 1;
$resultCaseNotes = 1;
/*----------------------------------********---------------------------------*/
$result['SUMMARY_FORM'] = 1;
$resultSummary = 1;
/*----------------------------------********---------------------------------*/
//Message History
$result['MSGS_HISTORY'] = $oObjectPermission->objectPermissionMessage(
$listMessage = $objectPermission->objectPermissionMessage(
$appUid,
$proUid,
$userUid,
@@ -5829,17 +5841,19 @@ class Cases
$caseData['APP_STATUS'],
$opParticipated
);
$resultMessages = array_merge($resultMessages, $listMessage);
break;
case 'DYNAFORM':
$result['DYNAFORM'] = $oObjectPermission->objectPermissionByDynaform(
$listDynaform = $objectPermission->objectPermissionByDynaform(
$appUid,
$opTaskSource,
$opObjUid,
$caseData['APP_STATUS']
);
$resultDynaforms = array_merge($resultDynaforms, $listDynaform);
break;
case 'INPUT':
$result['INPUT'] = $oObjectPermission->objectPermissionByOutputInput(
$listInput = $objectPermission->objectPermissionByOutputInput(
$appUid,
$proUid,
$opTaskSource,
@@ -5847,9 +5861,10 @@ class Cases
$opObjUid,
$caseData['APP_STATUS']
);
$resultInputs = array_merge($resultInputs, $listInput);
break;
case 'ATTACHMENT':
$result['ATTACHMENT'] = $oObjectPermission->objectPermissionByOutputInput(
$listAttachment = $objectPermission->objectPermissionByOutputInput(
$appUid,
$proUid,
$opTaskSource,
@@ -5857,9 +5872,10 @@ class Cases
$opObjUid,
$caseData['APP_STATUS']
);
$resultAttachments = array_merge($resultAttachments, $listAttachment);
break;
case 'OUTPUT':
$result['OUTPUT'] = $oObjectPermission->objectPermissionByOutputInput(
$listOutput = $objectPermission->objectPermissionByOutputInput(
$appUid,
$proUid,
$opTaskSource,
@@ -5867,17 +5883,18 @@ class Cases
$opObjUid,
$caseData['APP_STATUS']
);
$resultOutputs = array_merge($resultOutputs, $listOutput);
break;
case 'CASES_NOTES':
$result['CASES_NOTES'] = 1;
$resultCaseNotes = 1;
break;
/*----------------------------------********---------------------------------*/
case 'SUMMARY_FORM':
$result['SUMMARY_FORM'] = 1;
$resultSummary = 1;
break;
/*----------------------------------********---------------------------------*/
case 'MSGS_HISTORY':
$result['MSGS_HISTORY'] = $oObjectPermission->objectPermissionMessage(
$listMessage= $objectPermission->objectPermissionMessage(
$appUid,
$proUid,
$userUid,
@@ -5887,21 +5904,22 @@ class Cases
$caseData['APP_STATUS'],
$opParticipated
);
$resultMessages = array_merge($resultMessages, $listMessage);
break;
}
}
}
return array(
"DYNAFORMS" => $result['DYNAFORM'],
"INPUT_DOCUMENTS" => $result['INPUT'],
"ATTACHMENTS" => $result['ATTACHMENT'],
"OUTPUT_DOCUMENTS" => $result['OUTPUT'],
"CASES_NOTES" => $result['CASES_NOTES'],
"MSGS_HISTORY" => $result['MSGS_HISTORY']
"DYNAFORMS" => $resultDynaforms,
"INPUT_DOCUMENTS" => $resultInputs,
"ATTACHMENTS" => $resultAttachments,
"OUTPUT_DOCUMENTS" => $resultOutputs,
"CASES_NOTES" => $resultCaseNotes,
"MSGS_HISTORY" => $resultMessages
/*----------------------------------********---------------------------------*/
, "SUMMARY_FORM" => $resultSummary
/*----------------------------------********---------------------------------*/
, "SUMMARY_FORM" => $result['SUMMARY_FORM']
/*----------------------------------********---------------------------------*/
);
}

View File

@@ -856,7 +856,6 @@ class WorkspaceTools
if (!$currentUserIsSuper) {
$appCache->checkGrantsForUser(true);
$appCache->setSuperForUser($currentUser);
$currentUserIsSuper = true;
}

View File

@@ -1260,20 +1260,6 @@ class AppCacheView extends BaseAppCacheView
}
}
public function setSuperForUser($mysqlUser)
{
try {
$con = Propel::getConnection("root");
$stmt = $con->createStatement();
$sql = "GRANT SUPER on *.* to '$mysqlUser' ";
$rs1 = $stmt->executeQuery($sql, ResultSet::FETCHMODE_NUM);
return array();
} catch (Exception $e) {
return array('error' => true, 'msg' => $e->getMessage());
}
}
/**
* search for table APP_CACHE_VIEW
* @return void

View File

@@ -0,0 +1,7 @@
<?php
/**
* Maintained for compatibility reasons.
* @deprecated 3.2.2, File maintained only for backward compatibility because it is used in plugins
*/

View File

@@ -1501,6 +1501,12 @@ msgstr "You cannot delete the default language"
msgid "Please select a .po file"
msgstr "Please select a .po file"
# TRANSLATION
# LABEL/ID_THE_REASON_REASSIGN_USER_EMPTY
#: LABEL/ID_THE_REASON_REASSIGN_USER_EMPTY
msgid "Please complete the reassign reason."
msgstr "Please complete the reassign reason."
# TRANSLATION
# LABEL/ID_EMAIL
#: LABEL/ID_EMAIL
@@ -3007,12 +3013,6 @@ msgstr "Process"
msgid "Reassign Cases"
msgstr "Reassign Cases"
# TRANSLATION
# LABEL/ID_THE_REASON_REASSIGN_USER_EMPTY
#: LABEL/ID_THE_REASON_REASSIGN_USER_EMPTY
msgid "Please complete the reassign reason."
msgstr "Please complete the reassign reason."
# TRANSLATION
# LABEL/ID_ALERT_MESSAGE
#: LABEL/ID_ALERT_MESSAGE
@@ -51758,3 +51758,10 @@ msgstr "Flow"
#: LABEL/ID_MAFE_f775fa07e143b2e671946a48af8f42ca
msgid "versioning"
msgstr "versioning"
# TRANSLATION
# LABEL/ID_SELECT_VARIABLE
#: LABEL/ID_SELECT_VARIABLE
msgid "Select Variable"
msgstr "Select Variable"

View File

@@ -2065,7 +2065,7 @@ SELECT 'LABEL','ID_REASON','en','Reason','2016-10-20'
UNION ALL
SELECT 'LABEL','ID_NOTIFY','en','Notify','2016-10-20'
UNION ALL
SELECT 'JAVASCRIPT','ID_THE_REASON_REASSIGN_USER_EMPTY','en','Please complete the reassign reason.','2016-10-20'
SELECT 'LABEL','ID_THE_REASON_REASSIGN_USER_EMPTY','en','Please complete the reassign reason.','2016-10-20'
UNION ALL
SELECT 'LABEL','ID_PRIORITY_VH','en','VERY HIGH','2014-01-15'
UNION ALL

View File

@@ -1758,7 +1758,7 @@ INSERT INTO TRANSLATION (TRN_CATEGORY,TRN_ID,TRN_LANG,TRN_VALUE,TRN_UPDATE_DATE
( 'LABEL','ID_REASSIGN','en','Reassign','2014-01-15') ,
( 'LABEL','ID_REASON','en','Reason','2016-10-20') ,
( 'LABEL','ID_NOTIFY','en','Notify','2016-10-20') ,
( 'JAVASCRIPT','ID_THE_REASON_REASSIGN_USER_EMPTY','en','Please complete the reassign reason.','2016-10-20') ,
( 'LABEL','ID_THE_REASON_REASSIGN_USER_EMPTY','en','Please complete the reassign reason.','2016-10-20') ,
( 'LABEL','ID_PRIORITY_VH','en','VERY HIGH','2014-01-15') ,
( 'LABEL','ID_GROUPS','en','Groups','2014-01-15') ,
( 'LABEL','ID_CONFIRM_DELETE_CASE','en','Are you sure you want to delete this case?','2014-01-15') ,
@@ -6285,7 +6285,8 @@ INSERT INTO TRANSLATION (TRN_CATEGORY,TRN_ID,TRN_LANG,TRN_VALUE,TRN_UPDATE_DATE
( 'LABEL','ID_MAFE_e6fe2cb291ace4c56d3f9481b3b963af','en','Select a language','2017-10-25') ,
( 'LABEL','ID_MAFE_e9cb217697088a98b1937d111d936281','en','Attachment','2017-10-25') ,
( 'LABEL','ID_MAFE_f1a76f66cca677c6e628d9ca58a6c8fc','en','Flow','2017-10-25') ,
( 'LABEL','ID_MAFE_f775fa07e143b2e671946a48af8f42ca','en','versioning','2017-10-25') ;
( 'LABEL','ID_MAFE_f775fa07e143b2e671946a48af8f42ca','en','versioning','2017-10-25'),
( 'LABEL','ID_SELECT_VARIABLE','en','Select Variable','2017-10-27');
INSERT INTO ISO_LOCATION (IC_UID,IL_UID,IL_NAME,IL_NORMAL_NAME,IS_UID) VALUES
('AD','','',' ','') ,

View File

@@ -35,7 +35,7 @@ $_REQUEST['sSymbol']= isset($_REQUEST["sSymbol"])?$_REQUEST["sSymbol"]:'';
$_SERVER["QUERY_STRING"] = $filter->xssFilterHard($_SERVER["QUERY_STRING"]);
$html = '<title>Upload Variable</title>';
$html = '<title>' . G::LoadTranslation('ID_SELECT_VARIABLE') . '</title>';
$html .= '<form action="uploader.php?'.$_SERVER["QUERY_STRING"].'&q=upload" onLoad="onLoad()" method="post" enctype="multipart/form-data" onsubmit="" style="height:0px;">';
$html .= '<div id="d_variables">';
$html .= '<table width="90%" align="center">';

View File

@@ -219,7 +219,7 @@
'</td><td>' +
'<h3>'+r.USR_FIRSTNAME+' '+r.USR_LASTNAME+' ('+r.USR_USERNAME+')</h3>' +
'<p><pre>'+r.NOTE_CONTENT+'</pre>' +
'<div class="appMessageDate">{translate label="ID_POSTED_AT"} '+r.NOTE_DATE+'</div>' +
'<div class="appMessageDate">{/literal}{translate label="ID_POSTED_AT"}{literal} ' + r.NOTE_DATE + '</div>' +
'</td></tr></table></div>';
content.append(s);

View File

@@ -1516,7 +1516,7 @@ Ext.onReady ( function() {
if( rowSelected ) {
if (Ext.getCmp('idTextareaReasonCasesList').getValue() === '') {
Ext.Msg.alert(_('ID_ALERT'), _('ID_CAN_NOT_BE_EMPTY', _('ID_REASON_REASSIGN')));
Ext.Msg.alert(_('ID_ALERT'), _('ID_THE_REASON_REASSIGN_USER_EMPTY'));
return;
}
PMExt.confirm(_('ID_CONFIRM'), _('ID_REASSIGN_CONFIRM'), function(){

View File

@@ -126,7 +126,7 @@
'</td><td>' +
'<h3>'+r.USR_FIRSTNAME+' '+r.USR_LASTNAME+' ('+r.USR_USERNAME+')</h3>' +
'<p><pre>'+r.NOTE_CONTENT+'</pre>' +
'<div class="appMessageDate">{translate label="ID_POSTED_AT"} '+r.NOTE_DATE+'</div>' +
'<div class="appMessageDate">{/literal}{translate label="ID_POSTED_AT"}{literal} ' + r.NOTE_DATE + '</div>' +
'</td></tr></table></div>';
content.append(s);

View File

@@ -219,7 +219,7 @@
'</td><td>' +
'<h3>'+r.USR_FIRSTNAME+' '+r.USR_LASTNAME+' ('+r.USR_USERNAME+')</h3>' +
'<p><pre>'+r.NOTE_CONTENT+'</pre>' +
'<div class="appMessageDate">{translate label="ID_POSTED_AT"} '+r.NOTE_DATE+'</div>' +
'<div class="appMessageDate">{/literal}{translate label="ID_POSTED_AT"}{literal} ' + r.NOTE_DATE + '</div>' +
'</td></tr></table></div>';
content.append(s);