Merged in release/3.3 (pull request #6585)

Updating branch release/3.3.1 with the last fixes on release/3.3

Approved-by: Julio Cesar Laura Avendaño <contact@julio-laura.com>
This commit is contained in:
Julio Cesar Laura Avendaño
2018-08-10 20:29:19 +00:00
24 changed files with 533 additions and 1760 deletions

View File

@@ -43,6 +43,7 @@ use ProcessMaker\Exception\RBACException;
*/
class RBAC
{
const ADMIN_USER_UID = '00000000000000000000000000000001';
const SETUPERMISSIONUID = '00000000000000000000000000000002';
const PER_SYSTEM = '00000000000000000000000000000002';
const PM_GUEST_CASE = 'PM_GUEST_CASE';

View File

@@ -151,21 +151,6 @@ EOT
CLI::taskOpt("workspace", "Select the workspace whose case folders will be migrated, if multiple workspaces are present in the server.\n Ex: -wworkflow. Ex: --workspace=workflow", "w:", "workspace=");
CLI::taskRun("runStructureDirectories");
CLI::taskName("database-generate-self-service-by-value");
CLI::taskDescription(<<<EOT
Generate or upgrade the table "self-service by value".
This command populates the table "self-service by value" for cases whose
task is defined with "Self Service Value Based Assignment" in "Assignment
Rules".
If no workspace is specified, the command will be run in all workspaces. More
than one workspace can be specified.
EOT
);
CLI::taskArg("workspace-name", true, true);
CLI::taskRun("run_database_generate_self_service_by_value");
CLI::taskName('database-verify-consistency');
CLI::taskDescription(<<<EOT
Verify that the database data is consistent so any database-upgrade operation will be executed flawlessly.
@@ -931,33 +916,6 @@ function runStructureDirectories($command, $args)
}
}
function run_database_generate_self_service_by_value($args, $opts)
{
$filter = new InputFilter();
$opts = $filter->xssFilterHard($opts);
$args = $filter->xssFilterHard($args);
try {
$arrayWorkspace = get_workspaces_from_args($args);
foreach ($arrayWorkspace as $value) {
$workspace = $value;
try {
G::outRes("Generating the table \"self-service by value\" for " . pakeColor::colorize($workspace->name, "INFO") . "\n");
$workspace->appAssignSelfServiceValueTableGenerateData();
} catch (Exception $e) {
G::outRes("Errors generating the table \"self-service by value\" of workspace " . CLI::info($workspace->name) . ": " . CLI::error($e->getMessage()) . "\n");
}
echo "\n";
}
echo "Done!\n";
} catch (Exception $e) {
G::outRes(CLI::error($e->getMessage()) . "\n");
}
}
function run_database_verify_consistency($args, $opts)
{
verifyAppCacheConsistency($args);

View File

@@ -1974,12 +1974,6 @@ class Cases
$listParticipatedLast = new ListParticipatedLast();
$listParticipatedLast->refresh($data);
/*----------------------------------********---------------------------------*/
/** This case is subProcess? */
if (SubApplication::isCaseSubProcess($appUid)) {
$route = new Derivation();
$route->verifyIsCaseChild($appUid, $delIndex);
}
}
/** Update search index */
@@ -1993,6 +1987,7 @@ class Cases
/**
* With this we can change the status to CLOSED in APP_DELEGATION
* We close a thread in the action: paused reassign cancel
*
* @param string $appUid
* @param string $delIndex
@@ -2035,12 +2030,6 @@ class Cases
$listParticipatedLast->refresh($data);
/*----------------------------------********---------------------------------*/
/** This case is subProcess? */
if (SubApplication::isCaseSubProcess($appUid)) {
$route = new Derivation();
$route->verifyIsCaseChild($appUid, $delIndex);
}
/** Update searchindex */
if ($this->appSolr != null) {
$this->appSolr->updateApplicationSearchIndex($appUid);
@@ -4260,7 +4249,7 @@ class Cases
}
/**
* This function will be close the one or all threads
* This function will be close the one or all threads for cancel the case
*
* @param string $appUid
* @param integer $delIndex, if is null we will to close all threads
@@ -4288,6 +4277,14 @@ class Cases
$result[] = $resultDelegation;
}
/** This case is subProcess? */
if (SubApplication::isCaseSubProcess($appUid)) {
foreach ($result as $value){
$route = new Derivation();
$route->verifyIsCaseChild($appUid, $value['DEL_INDEX']);
}
}
return $result;
}

View File

@@ -1071,7 +1071,8 @@ class Derivation
$taskNextDel,
$iNewDelIndex,
$nextDel["TAS_UID"],
$appFields
$appFields,
$taskNextDel->getTasId()
);
}
@@ -1135,7 +1136,9 @@ class Derivation
//Close case
$appFields["APP_STATUS"] = "COMPLETED";
$appFields["APP_FINISH_DATE"] = "now";
$this->verifyIsCaseChild($currentDelegation["APP_UID"], $currentDelegation["DEL_INDEX"]);
if (SubApplication::isCaseSubProcess($currentDelegation["APP_UID"])) {
$this->verifyIsCaseChild($currentDelegation["APP_UID"], $currentDelegation["DEL_INDEX"]);
}
$flagUpdateCase = true;
}
@@ -1489,51 +1492,18 @@ class Derivation
function verifyIsCaseChild($applicationUid, $delIndex = 0)
{
//Obtain the related row in the table SUB_APPLICATION
$criteria = new Criteria('workflow');
$criteria->add(SubApplicationPeer::APP_UID, $applicationUid);
$dataSet = SubApplicationPeer::doSelectRS($criteria);
$dataSet->setFetchmode(ResultSet::FETCHMODE_ASSOC);
if ($dataSet->next()) {
$subApplication = $dataSet->getRow();
$subApplication = SubApplication::getSubProcessInfo($applicationUid);
if (!empty($subApplication)) {
//Obtain the related row in the table SUB_PROCESS
$case = new Cases();
$parentCase = $case->loadCase($subApplication['APP_PARENT'], $subApplication['DEL_INDEX_PARENT']);
$criteria = new Criteria('workflow');
$criteria->add(SubProcessPeer::PRO_PARENT, $parentCase['PRO_UID']);
$criteria->add(SubProcessPeer::TAS_PARENT, $parentCase['TAS_UID']);
$dataSet = SubProcessPeer::doSelectRS($criteria);
$dataSet->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$dataSet->next();
$subApplicationParent = $dataSet->getRow();
if ($subApplicationParent['SP_SYNCHRONOUS'] == 1 || $subApplication['SA_STATUS'] == 'ACTIVE') {
$subProcessParent = SubProcess::getSubProcessConfiguration($parentCase['PRO_UID'], $parentCase['TAS_UID']);
if ($subProcessParent['SP_SYNCHRONOUS'] == 1 || $subApplication['SA_STATUS'] == 'ACTIVE') {
$appFields = $case->loadCase($applicationUid, $delIndex);
//Copy case variables to parent case
$fields = unserialize($subApplicationParent['SP_VARIABLES_IN']);
$newFields = [];
foreach ($fields as $originField => $targetField) {
$originField = str_replace('@', '', $originField);
$originField = str_replace('#', '', $originField);
$originField = str_replace('%', '', $originField);
$originField = str_replace('?', '', $originField);
$originField = str_replace('$', '', $originField);
$originField = str_replace('=', '', $originField);
$targetField = str_replace('@', '', $targetField);
$targetField = str_replace('#', '', $targetField);
$targetField = str_replace('%', '', $targetField);
$targetField = str_replace('?', '', $targetField);
$targetField = str_replace('$', '', $targetField);
$targetField = str_replace('=', '', $targetField);
$newFields[$targetField] = isset($appFields['APP_DATA'][$originField]) ? $appFields['APP_DATA'][$originField] : '';
if (array_key_exists($originField . '_label', $appFields['APP_DATA'])) {
$newFields[$targetField . '_label'] = $appFields['APP_DATA'][$originField . '_label'];
} else {
if (array_key_exists($targetField . '_label', $parentCase['APP_DATA'])) {
$newFields[$targetField . '_label'] = '';
}
}
}
$fields = unserialize($subProcessParent['SP_VARIABLES_IN']);
$newFields = $this->getSubProcessVariables($fields, $appFields['APP_DATA'], $parentCase['APP_DATA']);
$parentCase['APP_DATA'] = array_merge($parentCase['APP_DATA'], $newFields);
$case->updateCase($subApplication['APP_PARENT'], $parentCase);
@@ -1650,7 +1620,45 @@ class Derivation
}
}
/* getDerivatedCases
/**
* Will be get sub process variables
* Get variables-in and variables-out
*
* @param array $fields
* @param array $childCaseData
* @param array $parentCaseData
*
* @return array
*/
public function getSubProcessVariables($fields, $childCaseData, $parentCaseData)
{
$newFields = [];
foreach ($fields as $originField => $targetField) {
$originField = str_replace('@', '', $originField);
$originField = str_replace('#', '', $originField);
$originField = str_replace('%', '', $originField);
$originField = str_replace('?', '', $originField);
$originField = str_replace('$', '', $originField);
$originField = str_replace('=', '', $originField);
$targetField = str_replace('@', '', $targetField);
$targetField = str_replace('#', '', $targetField);
$targetField = str_replace('%', '', $targetField);
$targetField = str_replace('?', '', $targetField);
$targetField = str_replace('$', '', $targetField);
$targetField = str_replace('=', '', $targetField);
$newFields[$targetField] = isset($childCaseData[$originField]) ? $childCaseData[$originField] : '';
if (array_key_exists($originField . '_label', $childCaseData)) {
$newFields[$targetField . '_label'] = $childCaseData[$originField . '_label'];
} elseif (array_key_exists($targetField . '_label', $parentCaseData)) {
$newFields[$targetField . '_label'] = '';
}
}
return $newFields;
}
/** getDerivatedCases
* get all derivated cases and subcases from any task,
* this function is useful to know who users have been assigned and what task they do.
*
@@ -2081,13 +2089,16 @@ class Derivation
/**
* When we route a case we will to create a record in the table APP_ASSIGN_SELF_SERVICE_VALUE if the task is SELF_SERVICE
*
* @param object $taskNextDel
* @param integer $iNewDelIndex
* @param string $nextTasUid
* @param array $appFields
* @param integer $nextTasId
*
* @return void
*/
public function createRecordAppSelfServiceValue($taskNextDel, $iNewDelIndex, $nextTasUid, $appFields)
public function createRecordAppSelfServiceValue($taskNextDel, $iNewDelIndex, $nextTasUid, $appFields, $nextTasId = 0)
{
if ($taskNextDel->getTasAssignType() == "SELF_SERVICE" && trim($taskNextDel->getTasGroupVariable()) != "") {
$nextTaskGroupVariable = trim($taskNextDel->getTasGroupVariable(), " @#");
@@ -2101,11 +2112,13 @@ class Derivation
$appAssignSelfServiceValue->create(
$appFields["APP_UID"],
$iNewDelIndex,
array(
[
"PRO_UID" => $appFields["PRO_UID"],
"TAS_UID" => $nextTasUid,
"GRP_UID" => ""
),
"GRP_UID" => "",
"APP_NUMBER" => !empty($appFields["APP_NUMBER"]) ? $appFields["APP_NUMBER"] : 0,
"TAS_ID" => $nextTasId
],
$dataVariable
);
}

View File

@@ -946,7 +946,7 @@ class ProcessMap
}
}
global $_DBArray;
$_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : '');
$_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : []);
$_DBArray['availableBB'] = $aBB;
$_SESSION['_DBArray'] = $_DBArray;
$oCriteria = new Criteria('dbarray');
@@ -1125,7 +1125,7 @@ class ProcessMap
$oDataset->next();
}
global $_DBArray;
$_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : '');
$_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : []);
$_DBArray['taskUsers'] = $aUsers;
$_SESSION['_DBArray'] = $_DBArray;
@@ -1201,7 +1201,7 @@ class ProcessMap
$oDataset->next();
}
global $_DBArray;
$_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : '');
$_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : []);
$_DBArray['availableUsers'] = $aUsers;
$_SESSION['_DBArray'] = $_DBArray;
@@ -2017,7 +2017,7 @@ class ProcessMap
$oDataset->next();
}
global $_DBArray;
$_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : '');
$_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : []);
$_DBArray['inputDocArrayMain'] = $inputDocArray;
$_SESSION['_DBArray'] = $_DBArray;
@@ -2681,7 +2681,7 @@ class ProcessMap
$oDataset->next();
}
global $_DBArray;
$_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : '');
$_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : []);
$_DBArray['processes'] = $aProcesses;
$_SESSION['_DBArray'] = $_DBArray;
@@ -2788,7 +2788,7 @@ class ProcessMap
}
}
global $_DBArray;
$_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : '');
$_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : []);
$_DBArray['reports'] = $row;
$_SESSION['_DBArray'] = $_DBArray;
@@ -3399,7 +3399,7 @@ class ProcessMap
$oDataset->next();
}
global $_DBArray;
$_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : '');
$_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : []);
$_DBArray['objectsPermissions'] = $aObjectsPermissions;
$_SESSION['_DBArray'] = $_DBArray;
@@ -3647,7 +3647,7 @@ class ProcessMap
$oDataset->next();
}
global $_DBArray;
$_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : '');
$_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : []);
$_DBArray['allObjects'] = $aAllObjects;
$_DBArray['allDynaforms'] = $aAllDynaforms;
$_DBArray['allInputs'] = $aAllInputs;
@@ -3805,7 +3805,7 @@ class ProcessMap
$oDataset->next();
}
global $_DBArray;
$_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : '');
$_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : []);
$_DBArray['allObjects'] = $aAllObjects;
$_DBArray['allDynaforms'] = $aAllDynaforms;
$_DBArray['allInputs'] = $aAllInputs;
@@ -4000,7 +4000,7 @@ class ProcessMap
$oDataset->next();
}
global $_DBArray;
$_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : '');
$_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : []);
$_DBArray['availableObjects'] = $aAvailableObjects;
$_SESSION['_DBArray'] = $_DBArray;
@@ -4119,7 +4119,7 @@ class ProcessMap
$aDirectories[] = array('DIRECTORY' => '<a href="#" onclick="goToDirectory(\'' . $sProcessUID . '\', \'mailTemplates\', \'\');return false;" class="pagedTableHeader">' . G::loadTranslation('ID_TEMPLATES') . '</a>' );
$aDirectories[] = array('DIRECTORY' => '<a href="#" onclick="goToDirectory(\'' . $sProcessUID . '\', \'public\', \'\');return false;" class="pagedTableHeader">' . G::loadTranslation('ID_PUBLIC') . '</a>' );
$_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : '');
$_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : []);
$_DBArray['directories'] = $aDirectories;
$_SESSION['_DBArray'] = $_DBArray;
@@ -4184,7 +4184,7 @@ class ProcessMap
$aTheFiles[] = array('PATH' => $aFile['FILE'], 'EDIT' => ($sMainDirectory == 'mailTemplates' ? 'Edit' : ''), 'EDIT_JS' => "editFile('{$sProcessUID}', @@PATH);return false;", 'DOWNLOAD_TEXT' => G::LoadTranslation('ID_DOWNLOAD'), 'DOWNLOAD_JS' => 'downloadFile(\'' . $sProcessUID . '\', \'' . $sMainDirectory . '\', \'' . $sCurrentDirectory . '\', \'' . $aFile['FILE'] . '\');return false;', 'DELETE_TEXT' => G::LoadTranslation('ID_DELETE'), 'DELETE_JS' => 'deleteFile(\'' . $sProcessUID . '\', \'' . $sMainDirectory . '\', \'' . $sCurrentDirectory . '\', \'' . $aFile['FILE'] . '\');return false;' );
}
global $_DBArray;
$_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : '');
$_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : []);
$_DBArray['objects'] = $aTheFiles;
$_SESSION['_DBArray'] = $_DBArray;
@@ -4347,7 +4347,7 @@ class ProcessMap
/* Prepare page before to show */
global $_DBArray;
$_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : '');
$_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : []);
$_DBArray['NewCase'] = $this->subProcess_TaskIni($sProcessUID);
unset($_DBArray['TheProcesses']);
$_DBArray['TheProcesses'][] = array('pro_uid' => 'char', 'value' => 'char');
@@ -4947,7 +4947,7 @@ class ProcessMap
$oDataset->next();
}
global $_DBArray;
$_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : '');
$_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : []);
$_DBArray['taskUsers'] = $aUsers;
$_SESSION['_DBArray'] = $_DBArray;
@@ -5018,7 +5018,7 @@ class ProcessMap
$oDataset->next();
}
global $_DBArray;
$_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : '');
$_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : []);
$_DBArray['availableUsers'] = $aUsers;
$_SESSION['_DBArray'] = $_DBArray;
@@ -5144,7 +5144,7 @@ class ProcessMap
}
global $_DBArray;
$_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : '');
$_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : []);
$_DBArray['availableBB'] = $aBB;
$_SESSION['_DBArray'] = $_DBArray;
@@ -5262,7 +5262,7 @@ class ProcessMap
}
global $_DBArray;
$_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : '');
$_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : []);
$_DBArray['steps'] = $aSteps;
$_SESSION['_DBArray'] = $_DBArray;
@@ -5637,7 +5637,7 @@ class ProcessMap
$oDataset->next();
}
global $_DBArray;
$_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : '');
$_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : []);
$_DBArray['outputDocArray'] = $outputDocArray;
$_SESSION['_DBArray'] = $_DBArray;
@@ -5664,7 +5664,7 @@ class ProcessMap
/* Prepare page before to show */
global $_DBArray;
$_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : '');
$_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : []);
$_DBArray['NewCase'] = $this->subProcess_TaskIni($sProcessUID);
unset($_DBArray['TheProcesses']);
$_DBArray['TheProcesses'][] = array('pro_uid' => 'char', 'value' => 'char' );
@@ -6203,7 +6203,7 @@ class ProcessMap
$oDataset->next();
}
global $_DBArray;
$_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : '');
$_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : []);
switch ($sAction) {
case 'tasks':
@@ -6311,7 +6311,7 @@ class ProcessMap
}
// return $aObjects;
global $_DBArray;
$_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : '');
$_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : []);
$_DBArray['objects'] = $aObjects;
$_SESSION['_DBArray'] = $_DBArray;
@@ -6494,7 +6494,7 @@ class ProcessMap
$oDataset->next();
}
global $_DBArray;
$_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : '');
$_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : []);
$_DBArray['availableUsers'] = $aUsers;
$_SESSION['_DBArray'] = $_DBArray;
return $_SESSION['_DBArray']['availableUsers'];
@@ -6573,7 +6573,7 @@ class ProcessMap
$oDataset->next();
}
global $_DBArray;
$_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : '');
$_DBArray = (isset($_SESSION['_DBArray']) ? $_SESSION['_DBArray'] : []);
$_DBArray['taskUsers'] = $aUsers;
$_SESSION['_DBArray'] = $_DBArray;
$oCriteria = new Criteria('dbarray');

View File

@@ -3083,32 +3083,37 @@ class Processes
/**
* Get Groupwf Rows for a Process form an array
*
* @param array $aGroups
* @return array $aGroupwf
* @param array $groups
*
* @return array $groupList
* @throws Exception
*/
public function getGroupwfRows($aGroups)
public function getGroupwfRows($groups)
{
try {
$aInGroups = array();
foreach ($aGroups as $key => $val) {
$aInGroups[] = $val['USR_UID'];
$inGroups = [];
foreach ($groups as $key => $val) {
$inGroups[] = $val['USR_UID'];
}
$aGroupwf = array();
$oCriteria = new Criteria('workflow');
$oCriteria->add(GroupwfPeer::GRP_UID, $aInGroups, Criteria::IN);
$oDataset = GroupwfPeer::doSelectRS($oCriteria);
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$oDataset->next();
while ($aRow = $oDataset->getRow()) {
$oGroupwf = new Groupwf();
$aGroupwf[] = $oGroupwf->Load($aRow['GRP_UID']);
$oDataset->next();
$groupList = [];
$criteria = new Criteria('workflow');
$criteria->add(GroupwfPeer::GRP_UID, $inGroups, Criteria::IN);
$dataset = GroupwfPeer::doSelectRS($criteria);
$dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$dataset->next();
while ($row = $dataset->getRow()) {
$groupWf = new Groupwf();
$infoGroup = $groupWf->Load($row['GRP_UID']);
unset($infoGroup['GRP_ID']);
$groupList[] = $infoGroup;
$dataset->next();
}
return $aGroupwf;
} catch (Exception $oError) {
throw ($oError);
return $groupList;
} catch (Exception $error) {
throw ($error);
}
}
@@ -3783,19 +3788,24 @@ class Processes
}
/**
* Get Task User Rows from an array of data
* Get Task User rows from an array of data
*
* @param array $aTaskUser
* @param array $group
* @return array $aStepTrigger
*/
public function createGroupRow($aGroupwf)
public function createGroupRow($group)
{
foreach ($aGroupwf as $key => $row) {
$oGroupwf = new Groupwf();
if ($oGroupwf->GroupwfExists($row['GRP_UID'])) {
$oGroupwf->remove($row['GRP_UID']);
foreach ($group as $key => $row) {
$groupWf = new Groupwf();
if ($groupWf->GroupwfExists($row['GRP_UID'])) {
$groupInfo = $groupWf->Load($row['GRP_UID']);
$groupWf->remove($row['GRP_UID']);
}
$res = $oGroupwf->create($row);
//We will to keep the GRP_ID
if (!empty($groupInfo['GRP_ID'])) {
$row['GRP_ID'] = $groupInfo['GRP_ID'];
}
$res = $groupWf->create($row);
}
}

View File

@@ -1828,9 +1828,11 @@ class WorkspaceTools
* @param string $filename the backup filename
* @param string $srcWorkspace name of the source workspace
* @param string $dstWorkspace name of the destination workspace
* @param string $overwrite if you need overwrite the database
* @param boolean $overwrite if you need overwrite the database
* @param string $lang for define the language
* @param string $port of database if is empty take 3306
*
* @throws Exception
*/
public static function restore($filename, $srcWorkspace, $dstWorkspace = null, $overwrite = true, $lang = 'en', $port = '', $optionMigrateHistoryData = [])
{
@@ -2095,6 +2097,12 @@ class WorkspaceTools
$stop = microtime(true);
CLI::logging("<*> Migrating history data took " . ($stop - $start) . " seconds.\n");
/*----------------------------------********---------------------------------*/
$start = microtime(true);
CLI::logging("> Optimizing Self-Service data in table APP_ASSIGN_SELF_SERVICE_VALUE_GROUP....\n");
$workspace->upgradeSelfServiceData();
$stop = microtime(true);
CLI::logging("<*> Optimizing Self-Service data in table APP_ASSIGN_SELF_SERVICE_VALUE_GROUP took " . ($stop - $start) . " seconds.\n");
}
CLI::logging("Removing temporary files\n");
@@ -2209,6 +2217,7 @@ class WorkspaceTools
$oauthClients->setClientDescription('ProcessMaker Web Designer App');
$oauthClients->setClientWebsite('www.processmaker.com');
$oauthClients->setRedirectUri($endpoint);
$oauthClients->setUsrUid('00000000000000000000000000000001');
$oauthClients->save();
}
@@ -2220,6 +2229,7 @@ class WorkspaceTools
$oauthClients->setClientDescription(config('oauthClients.mobile.clientDescription'));
$oauthClients->setClientWebsite(config('oauthClients.mobile.clientWebsite'));
$oauthClients->setRedirectUri($endpoint);
$oauthClients->setUsrUid('00000000000000000000000000000001');
$oauthClients->save();
}
} else {
@@ -2319,7 +2329,10 @@ class WorkspaceTools
/**
* Generate data for table APP_ASSIGN_SELF_SERVICE_VALUE
*
* return void
* @return void
* @throws Exception
*
* @deprecated Method deprecated in Release 3.3.0
*/
public function appAssignSelfServiceValueTableGenerateData()
{
@@ -4052,9 +4065,7 @@ class WorkspaceTools
$con->commit();
/*----------------------------------********---------------------------------*/
CLI::logging("-> Migrating And Populating Indexing for avoiding the use of table APP_CACHE_VIEW Done \n");
// Populating PRO_ID, USR_ID
// Populating PRO_ID, USR_ID IN LIST TABLES
CLI::logging("-> Populating PRO_ID, USR_ID at LIST_* \n");
$con->begin();
$stmt = $con->createStatement();
@@ -4063,7 +4074,37 @@ class WorkspaceTools
}
$con->commit();
CLI::logging("-> Populating PRO_ID, USR_ID at LIST_* Done \n");
// Populating APP_ASSIGN_SELF_SERVICE_VALUE.APP_NUMBER
CLI::logging("-> Populating APP_ASSIGN_SELF_SERVICE_VALUE.APP_NUMBER \n");
$con->begin();
$stmt = $con->createStatement();
$rs = $stmt->executeQuery("UPDATE APP_ASSIGN_SELF_SERVICE_VALUE AS APP_SELF
INNER JOIN (
SELECT APPLICATION.APP_UID, APPLICATION.APP_NUMBER
FROM APPLICATION
) AS APP
ON (APP_SELF.APP_UID = APP.APP_UID)
SET APP_SELF.APP_NUMBER = APP.APP_NUMBER
WHERE APP_SELF.APP_NUMBER = 0");
$con->commit();
// Populating APP_ASSIGN_SELF_SERVICE_VALUE.TAS_ID
CLI::logging("-> Populating APP_ASSIGN_SELF_SERVICE_VALUE.TAS_ID \n");
$con->begin();
$stmt = $con->createStatement();
$rs = $stmt->executeQuery("UPDATE APP_ASSIGN_SELF_SERVICE_VALUE AS APP_SELF
INNER JOIN (
SELECT TASK.TAS_UID, TASK.TAS_ID
FROM TASK
) AS TASK
ON (APP_SELF.TAS_UID = TASK.TAS_UID)
SET APP_SELF.TAS_ID = TASK.TAS_ID
WHERE APP_SELF.TAS_ID = 0");
$con->commit();
CLI::logging("-> Populating APP_ASSIGN_SELF_SERVICE_VALUE.TAS_ID Done \n");
//Complete all migrations
CLI::logging("-> Migrating And Populating Indexing for avoiding the use of table APP_CACHE_VIEW Done \n");
}
/**

View File

@@ -1336,13 +1336,21 @@ class WsBase
}
}
$strRole = $RBAC->getRoleCodeValid($role);
if (empty($strRole)) {
$data = [];
$data["ROLE"] = $role;
$result = new WsCreateUserResponse(6, G::loadTranslation("ID_INVALID_ROLE", SYS_LANG, $data), null);
if (!empty($role)) {
if ($userUid === $RBAC::ADMIN_USER_UID) {
$result = new WsResponse(15, G::LoadTranslation("ID_ADMINISTRATOR_ROLE_CANT_CHANGED"));
return $result;
return $result;
}
$strRole = $RBAC->getRoleCodeValid($role);
if (empty($strRole)) {
$data = [];
$data["ROLE"] = $role;
$result = new WsCreateUserResponse(6, G::loadTranslation("ID_INVALID_ROLE", SYS_LANG, $data), null);
return $result;
}
}
if (!empty($password) && strlen($password) > 20) {

View File

@@ -2,6 +2,48 @@
class WsResponse
{
/**
* Status used from $status_code
* 0 ID_COMMAND_EXECUTED_SUCCESSFULY
*
* 2 ID_USER_HAVENT_RIGHTS_SYSTEM
* 3 ID_USER_NOT_REGISTERED
* 4 ID_WRONG_PASS
* 5 ID_USER_INACTIVE
* 6 ID_INVALID_ROLE
* 7 ID_USERNAME_ALREADY_EXISTS
* 8 ID_USER_NOT_REGISTERED_GROUP
* 9 ID_GROUP_NOT_REGISTERED_SYSTEM
* 10 ID_ARRAY_VARIABLES_EMPTY
* 11 ID_INVALID_PROCESS
* 12 ID_NO_STARTING_TASK
* 13 ID_MULTIPLE_STARTING_TASKS
* 14 ID_TASK_INVALID_USER_NOT_ASSIGNED_TASK
* 15 ID_ADMINISTRATOR_ROLE_CANT_CHANGED
* 16 ID_CASE_DOES_NOT_EXIST
* 17 ID_CASE_ASSIGNED_ANOTHER_USER
* 18 ID_CASE_DELEGATION_ALREADY_CLOSED
* 19 ID_CASE_IN_STATUS APP_TYPE
* 20 ID_SPECIFY_DELEGATION_INDEX
* 21 ID_CAN_NOT_ROUTE_CASE_USING_WEBSERVICES
* 22 ID_TASK_DOES_NOT_HAVE_ROUTING_RULE
* 23 ID_VARIABLES_PARAM_ZERO
* 24 ID_VARIABLES_PARAM_NOT_ARRAY
* 25 ID_USERNAME_REQUIRED
* 26 ID_PASSWD_REQUIRED
* 27 ID_MSG_ERROR_USR_FIRSTNAME
* 28 ID_TEMPLATE_FILE_NOT_EXIST
* 29 Email does not sent
* 30 ID_TARGET_ORIGIN_USER_SAME
* 31 ID_INVALID_ORIGIN_USER
* 32 ID_CASE_NOT_OPEN
* 33 ID_INVALID_CASE_DELEGATION_INDEX
* 34 ID_TARGET_USER_DOES_NOT_HAVE_RIGHTS
* 35 ID_TARGET_USER_DESTINATION_INVALID
* 36 ID_CASE_COULD_NOT_REASSIGNED
*
* 100 Exception
*/
public $status_code = 0;
public $message = '';
public $timestamp = '';

View File

@@ -2240,6 +2240,10 @@ function PMFUpdateUser ($userUid, $userName, $firstName = null, $lastName = null
$ws = new WsBase();
$result = $ws->updateUser( $userUid, $userName, $firstName, $lastName, $email, $dueDate, $status, $role, $password );
//When the user is created the $result parameter is an array, in other case is a object exception
if (!is_object($result)) {
$result = (object)$result;
}
if ($result->status_code == 0) {
return 1;
} else {

View File

@@ -206,7 +206,6 @@ class AddonsManager extends BaseAddonsManager
$url = $aux[0];
$var = explode("&", $aux[1]);
$var[] = "pmVersion=" . System::getVersion();
///////
$boundary = "---------------------" . substr(G::encryptOld(rand(0, 32000)), 0, 10);

View File

@@ -5,10 +5,11 @@ class AppAssignSelfServiceValue extends BaseAppAssignSelfServiceValue
* Create record
*
* @param string $applicationUid Unique id of Case
* @param int $delIndex Delegation index
* @param array $arrayData Data
* @param int $delIndex Delegation index
* @param array $arrayData Data
*
* return void
* @return void
* @throws Exception
*/
public function create($applicationUid, $delIndex, array $arrayData, $dataVariable = [])
{
@@ -59,9 +60,10 @@ class AppAssignSelfServiceValue extends BaseAppAssignSelfServiceValue
* Remove record
*
* @param string $applicationUid Unique id of Case
* @param int $delIndex Delegation index
* @param int $delIndex Delegation index
*
* return void
* @return void
* @throws Exception
*/
public function remove($applicationUid, $delIndex = 0)
{
@@ -93,8 +95,12 @@ class AppAssignSelfServiceValue extends BaseAppAssignSelfServiceValue
/**
* Generate data
* This method is used from the command database-generate-self-service-by-value
*
* return void
* @return void
* @throws Exception
*
* @deprecated Method deprecated in Release 3.3.0
*/
public function generateData()
{
@@ -133,7 +139,16 @@ class AppAssignSelfServiceValue extends BaseAppAssignSelfServiceValue
$dataVariable = (is_array($dataVariable))? $dataVariable : trim($dataVariable);
if (!empty($dataVariable)) {
$this->create($row["APP_UID"], $row["DEL_INDEX"], array("PRO_UID" => $row["PRO_UID"], "TAS_UID" => $row["TAS_UID"], "GRP_UID" => serialize($dataVariable)));
//@todo, will be deprecate the command database-generate-self-service-by-value
$this->create(
$row["APP_UID"],
$row["DEL_INDEX"],
[
"PRO_UID" => $row["PRO_UID"],
"TAS_UID" => $row["TAS_UID"],
"GRP_UID" => serialize($dataVariable)
]
);
}
}
}

View File

@@ -72,47 +72,54 @@ class Groupwf extends BaseGroupwf
/**
* Creates the Group
*
* @param array $aData $oData is not necessary
* @param array $data is not necessary
*
* @return void
*
* @throws Exception
*/
public function create ($aData)
public function create($data)
{
//$oData is not necessary
$con = Propel::getConnection( GroupwfPeer::DATABASE_NAME );
$con = Propel::getConnection(GroupwfPeer::DATABASE_NAME);
try {
if (isset( $aData['GRP_UID'] )) {
$this->setGrpUid( $aData['GRP_UID'] );
if (!empty($data['GRP_UID'])) {
$this->setGrpUid($data['GRP_UID']);
} else {
$this->setGrpUid( G::generateUniqueID() );
$this->setGrpUid(G::generateUniqueID());
}
if(!empty($data['GRP_ID'])){
$this->setGrpId($data['GRP_ID']);
}
if (isset( $aData['GRP_TITLE'] )) {
$this->setGrpTitle( $aData['GRP_TITLE'] );
if (!empty($data['GRP_TITLE'])) {
$this->setGrpTitle($data['GRP_TITLE']);
} else {
$this->setGrpTitle( 'Default Group Title' );
$this->setGrpTitle('Default Group Title');
}
if (isset( $aData['GRP_STATUS'] )) {
$this->setGrpStatus( $aData['GRP_STATUS'] );
if (!empty($aData['GRP_STATUS'])) {
$this->setGrpStatus($data['GRP_STATUS']);
} else {
$this->setGrpStatus( 'ACTIVE' );
$this->setGrpStatus('ACTIVE');
}
if (isset( $aData['GRP_LDAP_DN'] )) {
$this->setGrpLdapDn( $aData['GRP_LDAP_DN'] );
if (!empty($aData['GRP_LDAP_DN'])) {
$this->setGrpLdapDn($data['GRP_LDAP_DN']);
} else {
$this->setGrpLdapDn( '' );
$this->setGrpLdapDn('');
}
if ($this->validate()) {
$con->begin();
if (isset( $aData['GRP_TITLE'] )) {
$this->setGrpTitleContent( $aData['GRP_TITLE'] );
if (!empty($data['GRP_TITLE'])) {
$this->setGrpTitleContent($data['GRP_TITLE']);
} else {
$this->setGrpTitleContent( 'Default Group Title' );
$this->setGrpTitleContent('Default Group Title');
}
$res = $this->save();
$con->commit();
return $this->getGrpUid();
} else {
$msg = '';
@@ -120,7 +127,7 @@ class Groupwf extends BaseGroupwf
$msg .= $objValidationFailure->getMessage() . "<br/>";
}
throw (new PropelException( 'The row cannot be created!', new PropelException( $msg ) ));
throw (new PropelException('The row cannot be created!', new PropelException($msg)));
}
} catch (Exception $e) {

View File

@@ -325,13 +325,14 @@ class ListUnassigned extends BaseListUnassigned implements ListInterface
* Get SelfService Value Based
*
* @param string $userUid
*
* @return array $arrayAppAssignSelfServiceValueData
* @throws Exception
*/
public function getSelfServiceCasesByEvaluate($userUid)
{
try {
$arrayAppAssignSelfServiceValueData = array();
$arrayAppAssignSelfServiceValueData = [];
$criteria = new Criteria("workflow");
@@ -347,8 +348,10 @@ class ListUnassigned extends BaseListUnassigned implements ListInterface
$criteria->setDistinct();
$criteria->addSelectColumn(AppAssignSelfServiceValuePeer::APP_UID);
$criteria->addSelectColumn(AppAssignSelfServiceValuePeer::APP_NUMBER);
$criteria->addSelectColumn(AppAssignSelfServiceValuePeer::DEL_INDEX);
$criteria->addSelectColumn(AppAssignSelfServiceValuePeer::TAS_UID);
$criteria->addSelectColumn(AppAssignSelfServiceValuePeer::TAS_ID);
$criteria->addJoin(AppAssignSelfServiceValuePeer::ID, AppAssignSelfServiceValueGroupPeer::ID, Criteria::INNER_JOIN);
$criteria->add(AppAssignSelfServiceValueGroupPeer::GRP_UID, $userUid, Criteria::EQUAL);
$criteria->addOr(AppAssignSelfServiceValueGroupPeer::GRP_UID, $sql, Criteria::CUSTOM);
@@ -359,11 +362,11 @@ class ListUnassigned extends BaseListUnassigned implements ListInterface
while ($rsCriteria->next()) {
$row = $rsCriteria->getRow();
$arrayAppAssignSelfServiceValueData[] = array(
"APP_UID" => $row["APP_UID"],
$arrayAppAssignSelfServiceValueData[] = [
"APP_NUMBER" => $row["APP_NUMBER"],
"DEL_INDEX" => $row["DEL_INDEX"],
"TAS_UID" => $row["TAS_UID"]
);
"TAS_ID" => $row["TAS_ID"]
];
}
return $arrayAppAssignSelfServiceValueData;
@@ -389,8 +392,11 @@ class ListUnassigned extends BaseListUnassigned implements ListInterface
$c = new Criteria();
$c->clearSelectColumns();
$c->addSelectColumn(TaskPeer::TAS_UID);
$c->addSelectColumn(TaskPeer::TAS_ID);
$c->addSelectColumn(TaskPeer::PRO_UID);
//@todo we need to use the PRO_ID for the left join
$c->addJoin(TaskPeer::PRO_UID, ProcessPeer::PRO_UID, Criteria::LEFT_JOIN);
//@todo we need to use the TAS_ID for the left join
$c->addJoin(TaskPeer::TAS_UID, TaskUserPeer::TAS_UID, Criteria::LEFT_JOIN);
$c->add(ProcessPeer::PRO_STATUS, 'ACTIVE');
$c->add(TaskPeer::TAS_ASSIGN_TYPE, 'SELF_SERVICE');
@@ -407,7 +413,7 @@ class ListUnassigned extends BaseListUnassigned implements ListInterface
$row = $rs->getRow();
while (is_array($row)) {
$tasks[] = $row['TAS_UID'];
$tasks[] = $row['TAS_ID'];
$rs->next();
$row = $rs->getRow();
}
@@ -418,8 +424,11 @@ class ListUnassigned extends BaseListUnassigned implements ListInterface
$c = new Criteria();
$c->clearSelectColumns();
$c->addSelectColumn(TaskPeer::TAS_UID);
$c->addSelectColumn(TaskPeer::TAS_ID);
$c->addSelectColumn(TaskPeer::PRO_UID);
//@todo we need to use the PRO_ID for the left join
$c->addJoin(TaskPeer::PRO_UID, ProcessPeer::PRO_UID, Criteria::LEFT_JOIN);
//@todo we need to use the TAS_ID for the left join
$c->addJoin(TaskPeer::TAS_UID, TaskUserPeer::TAS_UID, Criteria::LEFT_JOIN);
$c->add(ProcessPeer::PRO_STATUS, 'ACTIVE');
$c->add(TaskPeer::TAS_ASSIGN_TYPE, 'SELF_SERVICE');
@@ -436,7 +445,7 @@ class ListUnassigned extends BaseListUnassigned implements ListInterface
$row = $rs->getRow();
while (is_array($row)) {
$tasks[] = $row['TAS_UID'];
$tasks[] = $row['TAS_ID'];
$rs->next();
$row = $rs->getRow();
}
@@ -446,8 +455,10 @@ class ListUnassigned extends BaseListUnassigned implements ListInterface
/**
* Returns the number of cases of a user
*
* @param string $userUid
* @param array $filters
*
* @return int $total
*/
public function getCountList($userUid, $filters = array())
@@ -463,6 +474,7 @@ class ListUnassigned extends BaseListUnassigned implements ListInterface
*
* @param criteria $criteria
* @param string $userUid
*
* @return criteria $criteria
*/
public function getCriteriaWhereSelfService($criteria, $userUid)
@@ -478,36 +490,36 @@ class ListUnassigned extends BaseListUnassigned implements ListInterface
$firstRow = current($aSelfServiceValueBased);
$criterionAux = sprintf(
"((
LIST_UNASSIGNED.APP_UID='%s' AND
LIST_UNASSIGNED.APP_NUMBER='%s' AND
LIST_UNASSIGNED.DEL_INDEX=%d AND
LIST_UNASSIGNED.TAS_UID='%s'
LIST_UNASSIGNED.TAS_ID='%s'
) ",
$firstRow["APP_UID"],
$firstRow["APP_NUMBER"],
$firstRow["DEL_INDEX"],
$firstRow["TAS_UID"]
$firstRow["TAS_ID"]
);
foreach (array_slice($aSelfServiceValueBased, 1) as $value) {
$criterionAux .= sprintf(
" OR (
LIST_UNASSIGNED.APP_UID='%s' AND
LIST_UNASSIGNED.APP_NUMBER='%s' AND
LIST_UNASSIGNED.DEL_INDEX=%d AND
LIST_UNASSIGNED.TAS_UID='%s'
LIST_UNASSIGNED.TAS_ID='%s'
) ",
$value["APP_UID"],
$value["APP_NUMBER"],
$value["DEL_INDEX"],
$value["TAS_UID"]
$value["TAS_ID"]
);
}
$criterionAux .= ")";
//And Load SelfService
$criteria->add(
$criteria->getNewCriterion(
ListUnassignedPeer::TAS_UID,
ListUnassignedPeer::TAS_ID,
$tasks,
Criteria::IN
)->addOr(
$criteria->getNewCriterion(
ListUnassignedPeer::TAS_UID,
ListUnassignedPeer::TAS_ID,
$criterionAux,
Criteria::CUSTOM
)
@@ -515,7 +527,7 @@ class ListUnassigned extends BaseListUnassigned implements ListInterface
);
} else {
//Self Service
$criteria->add(ListUnassignedPeer::TAS_UID, $tasks, Criteria::IN);
$criteria->add(ListUnassignedPeer::TAS_ID, $tasks, Criteria::IN);
}
return $criteria;

View File

@@ -128,5 +128,29 @@ class SubApplication extends BaseSubApplication
return !is_null($dataset);
}
/**
* Get information about the subProcess
*
* @param string $appUid
* @param string $status
*
* @return object
*/
public static function getSubProcessInfo($appUid, $status = 'ACTIVE')
{
$criteria = new Criteria('workflow');
$criteria->add(SubApplicationPeer::APP_UID, $appUid);
$criteria->add(SubApplicationPeer::SA_STATUS, $status);
$criteria->setLimit(1);
$dataSet = SubApplicationPeer::doSelectRS($criteria);
$dataSet->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$result = [];
if ($dataSet->next()) {
$result = $dataSet->getRow();
}
return $result;
}
}

View File

@@ -157,5 +157,29 @@ class SubProcess extends BaseSubProcess
return SubProcessPeer::doSelectOne($criteria);
}
/**
* This function will be return the configuration in the subProcess
*
* @param string $proUid
* @param string $tasUid
*
* @return array
*/
public static function getSubProcessConfiguration($proUid, $tasUid)
{
$criteria = new Criteria('workflow');
$criteria->add(SubProcessPeer::PRO_PARENT, $proUid);
$criteria->add(SubProcessPeer::TAS_PARENT, $tasUid);
$criteria->setLimit(1);
$dataSet = SubProcessPeer::doSelectRS($criteria);
$dataSet->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$result = [];
if ($dataSet->next()) {
$result = $dataSet->getRow();
}
return $result;
}
}

View File

@@ -69,12 +69,16 @@ class AppAssignSelfServiceValueMapBuilder
$tMap->addColumn('APP_UID', 'AppUid', 'string', CreoleTypes::VARCHAR, true, 32);
$tMap->addColumn('APP_NUMBER', 'AppNumber', 'int', CreoleTypes::INTEGER, false, null);
$tMap->addColumn('DEL_INDEX', 'DelIndex', 'int', CreoleTypes::INTEGER, true, null);
$tMap->addColumn('PRO_UID', 'ProUid', 'string', CreoleTypes::VARCHAR, true, 32);
$tMap->addColumn('TAS_UID', 'TasUid', 'string', CreoleTypes::VARCHAR, true, 32);
$tMap->addColumn('TAS_ID', 'TasId', 'int', CreoleTypes::INTEGER, false, null);
$tMap->addColumn('GRP_UID', 'GrpUid', 'string', CreoleTypes::LONGVARCHAR, true, null);
} // doBuild()

View File

@@ -67,7 +67,7 @@ abstract class BaseAddonsManager extends BaseObject implements Persistent
* The value for the addon_state field.
* @var string
*/
protected $addon_state;
protected $addon_state = '';
/**
* The value for the addon_state_changed field.
@@ -536,7 +536,7 @@ abstract class BaseAddonsManager extends BaseObject implements Persistent
$v = (string) $v;
}
if ($this->addon_state !== $v) {
if ($this->addon_state !== $v || $v === '') {
$this->addon_state = $v;
$this->modifiedColumns[] = AddonsManagerPeer::ADDON_STATE;
}

View File

@@ -39,6 +39,12 @@ abstract class BaseAppAssignSelfServiceValue extends BaseObject implements Persi
*/
protected $app_uid;
/**
* The value for the app_number field.
* @var int
*/
protected $app_number = 0;
/**
* The value for the del_index field.
* @var int
@@ -57,6 +63,12 @@ abstract class BaseAppAssignSelfServiceValue extends BaseObject implements Persi
*/
protected $tas_uid;
/**
* The value for the tas_id field.
* @var int
*/
protected $tas_id = 0;
/**
* The value for the grp_uid field.
* @var string
@@ -99,6 +111,17 @@ abstract class BaseAppAssignSelfServiceValue extends BaseObject implements Persi
return $this->app_uid;
}
/**
* Get the [app_number] column value.
*
* @return int
*/
public function getAppNumber()
{
return $this->app_number;
}
/**
* Get the [del_index] column value.
*
@@ -132,6 +155,17 @@ abstract class BaseAppAssignSelfServiceValue extends BaseObject implements Persi
return $this->tas_uid;
}
/**
* Get the [tas_id] column value.
*
* @return int
*/
public function getTasId()
{
return $this->tas_id;
}
/**
* Get the [grp_uid] column value.
*
@@ -187,6 +221,28 @@ abstract class BaseAppAssignSelfServiceValue extends BaseObject implements Persi
} // setAppUid()
/**
* Set the value of [app_number] column.
*
* @param int $v new value
* @return void
*/
public function setAppNumber($v)
{
// Since the native PHP type for this column is integer,
// we will cast the input value to an int (if it is not).
if ($v !== null && !is_int($v) && is_numeric($v)) {
$v = (int) $v;
}
if ($this->app_number !== $v || $v === 0) {
$this->app_number = $v;
$this->modifiedColumns[] = AppAssignSelfServiceValuePeer::APP_NUMBER;
}
} // setAppNumber()
/**
* Set the value of [del_index] column.
*
@@ -253,6 +309,28 @@ abstract class BaseAppAssignSelfServiceValue extends BaseObject implements Persi
} // setTasUid()
/**
* Set the value of [tas_id] column.
*
* @param int $v new value
* @return void
*/
public function setTasId($v)
{
// Since the native PHP type for this column is integer,
// we will cast the input value to an int (if it is not).
if ($v !== null && !is_int($v) && is_numeric($v)) {
$v = (int) $v;
}
if ($this->tas_id !== $v || $v === 0) {
$this->tas_id = $v;
$this->modifiedColumns[] = AppAssignSelfServiceValuePeer::TAS_ID;
}
} // setTasId()
/**
* Set the value of [grp_uid] column.
*
@@ -296,20 +374,24 @@ abstract class BaseAppAssignSelfServiceValue extends BaseObject implements Persi
$this->app_uid = $rs->getString($startcol + 1);
$this->del_index = $rs->getInt($startcol + 2);
$this->app_number = $rs->getInt($startcol + 2);
$this->pro_uid = $rs->getString($startcol + 3);
$this->del_index = $rs->getInt($startcol + 3);
$this->tas_uid = $rs->getString($startcol + 4);
$this->pro_uid = $rs->getString($startcol + 4);
$this->grp_uid = $rs->getString($startcol + 5);
$this->tas_uid = $rs->getString($startcol + 5);
$this->tas_id = $rs->getInt($startcol + 6);
$this->grp_uid = $rs->getString($startcol + 7);
$this->resetModified();
$this->setNew(false);
// FIXME - using NUM_COLUMNS may be clearer.
return $startcol + 6; // 6 = AppAssignSelfServiceValuePeer::NUM_COLUMNS - AppAssignSelfServiceValuePeer::NUM_LAZY_LOAD_COLUMNS).
return $startcol + 8; // 8 = AppAssignSelfServiceValuePeer::NUM_COLUMNS - AppAssignSelfServiceValuePeer::NUM_LAZY_LOAD_COLUMNS).
} catch (Exception $e) {
throw new PropelException("Error populating AppAssignSelfServiceValue object", $e);
@@ -522,15 +604,21 @@ abstract class BaseAppAssignSelfServiceValue extends BaseObject implements Persi
return $this->getAppUid();
break;
case 2:
return $this->getDelIndex();
return $this->getAppNumber();
break;
case 3:
return $this->getProUid();
return $this->getDelIndex();
break;
case 4:
return $this->getTasUid();
return $this->getProUid();
break;
case 5:
return $this->getTasUid();
break;
case 6:
return $this->getTasId();
break;
case 7:
return $this->getGrpUid();
break;
default:
@@ -555,10 +643,12 @@ abstract class BaseAppAssignSelfServiceValue extends BaseObject implements Persi
$result = array(
$keys[0] => $this->getId(),
$keys[1] => $this->getAppUid(),
$keys[2] => $this->getDelIndex(),
$keys[3] => $this->getProUid(),
$keys[4] => $this->getTasUid(),
$keys[5] => $this->getGrpUid(),
$keys[2] => $this->getAppNumber(),
$keys[3] => $this->getDelIndex(),
$keys[4] => $this->getProUid(),
$keys[5] => $this->getTasUid(),
$keys[6] => $this->getTasId(),
$keys[7] => $this->getGrpUid(),
);
return $result;
}
@@ -597,15 +687,21 @@ abstract class BaseAppAssignSelfServiceValue extends BaseObject implements Persi
$this->setAppUid($value);
break;
case 2:
$this->setDelIndex($value);
$this->setAppNumber($value);
break;
case 3:
$this->setProUid($value);
$this->setDelIndex($value);
break;
case 4:
$this->setTasUid($value);
$this->setProUid($value);
break;
case 5:
$this->setTasUid($value);
break;
case 6:
$this->setTasId($value);
break;
case 7:
$this->setGrpUid($value);
break;
} // switch()
@@ -640,19 +736,27 @@ abstract class BaseAppAssignSelfServiceValue extends BaseObject implements Persi
}
if (array_key_exists($keys[2], $arr)) {
$this->setDelIndex($arr[$keys[2]]);
$this->setAppNumber($arr[$keys[2]]);
}
if (array_key_exists($keys[3], $arr)) {
$this->setProUid($arr[$keys[3]]);
$this->setDelIndex($arr[$keys[3]]);
}
if (array_key_exists($keys[4], $arr)) {
$this->setTasUid($arr[$keys[4]]);
$this->setProUid($arr[$keys[4]]);
}
if (array_key_exists($keys[5], $arr)) {
$this->setGrpUid($arr[$keys[5]]);
$this->setTasUid($arr[$keys[5]]);
}
if (array_key_exists($keys[6], $arr)) {
$this->setTasId($arr[$keys[6]]);
}
if (array_key_exists($keys[7], $arr)) {
$this->setGrpUid($arr[$keys[7]]);
}
}
@@ -674,6 +778,10 @@ abstract class BaseAppAssignSelfServiceValue extends BaseObject implements Persi
$criteria->add(AppAssignSelfServiceValuePeer::APP_UID, $this->app_uid);
}
if ($this->isColumnModified(AppAssignSelfServiceValuePeer::APP_NUMBER)) {
$criteria->add(AppAssignSelfServiceValuePeer::APP_NUMBER, $this->app_number);
}
if ($this->isColumnModified(AppAssignSelfServiceValuePeer::DEL_INDEX)) {
$criteria->add(AppAssignSelfServiceValuePeer::DEL_INDEX, $this->del_index);
}
@@ -686,6 +794,10 @@ abstract class BaseAppAssignSelfServiceValue extends BaseObject implements Persi
$criteria->add(AppAssignSelfServiceValuePeer::TAS_UID, $this->tas_uid);
}
if ($this->isColumnModified(AppAssignSelfServiceValuePeer::TAS_ID)) {
$criteria->add(AppAssignSelfServiceValuePeer::TAS_ID, $this->tas_id);
}
if ($this->isColumnModified(AppAssignSelfServiceValuePeer::GRP_UID)) {
$criteria->add(AppAssignSelfServiceValuePeer::GRP_UID, $this->grp_uid);
}
@@ -746,12 +858,16 @@ abstract class BaseAppAssignSelfServiceValue extends BaseObject implements Persi
$copyObj->setAppUid($this->app_uid);
$copyObj->setAppNumber($this->app_number);
$copyObj->setDelIndex($this->del_index);
$copyObj->setProUid($this->pro_uid);
$copyObj->setTasUid($this->tas_uid);
$copyObj->setTasId($this->tas_id);
$copyObj->setGrpUid($this->grp_uid);

View File

@@ -25,7 +25,7 @@ abstract class BaseAppAssignSelfServiceValuePeer
const CLASS_DEFAULT = 'classes.model.AppAssignSelfServiceValue';
/** The total number of columns. */
const NUM_COLUMNS = 6;
const NUM_COLUMNS = 8;
/** The number of lazy-loaded columns. */
const NUM_LAZY_LOAD_COLUMNS = 0;
@@ -37,6 +37,9 @@ abstract class BaseAppAssignSelfServiceValuePeer
/** the column name for the APP_UID field */
const APP_UID = 'APP_ASSIGN_SELF_SERVICE_VALUE.APP_UID';
/** the column name for the APP_NUMBER field */
const APP_NUMBER = 'APP_ASSIGN_SELF_SERVICE_VALUE.APP_NUMBER';
/** the column name for the DEL_INDEX field */
const DEL_INDEX = 'APP_ASSIGN_SELF_SERVICE_VALUE.DEL_INDEX';
@@ -46,6 +49,9 @@ abstract class BaseAppAssignSelfServiceValuePeer
/** the column name for the TAS_UID field */
const TAS_UID = 'APP_ASSIGN_SELF_SERVICE_VALUE.TAS_UID';
/** the column name for the TAS_ID field */
const TAS_ID = 'APP_ASSIGN_SELF_SERVICE_VALUE.TAS_ID';
/** the column name for the GRP_UID field */
const GRP_UID = 'APP_ASSIGN_SELF_SERVICE_VALUE.GRP_UID';
@@ -60,10 +66,10 @@ abstract class BaseAppAssignSelfServiceValuePeer
* e.g. self::$fieldNames[self::TYPE_PHPNAME][0] = 'Id'
*/
private static $fieldNames = array (
BasePeer::TYPE_PHPNAME => array ('Id', 'AppUid', 'DelIndex', 'ProUid', 'TasUid', 'GrpUid', ),
BasePeer::TYPE_COLNAME => array (AppAssignSelfServiceValuePeer::ID, AppAssignSelfServiceValuePeer::APP_UID, AppAssignSelfServiceValuePeer::DEL_INDEX, AppAssignSelfServiceValuePeer::PRO_UID, AppAssignSelfServiceValuePeer::TAS_UID, AppAssignSelfServiceValuePeer::GRP_UID, ),
BasePeer::TYPE_FIELDNAME => array ('ID', 'APP_UID', 'DEL_INDEX', 'PRO_UID', 'TAS_UID', 'GRP_UID', ),
BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, )
BasePeer::TYPE_PHPNAME => array ('Id', 'AppUid', 'AppNumber', 'DelIndex', 'ProUid', 'TasUid', 'TasId', 'GrpUid', ),
BasePeer::TYPE_COLNAME => array (AppAssignSelfServiceValuePeer::ID, AppAssignSelfServiceValuePeer::APP_UID, AppAssignSelfServiceValuePeer::APP_NUMBER, AppAssignSelfServiceValuePeer::DEL_INDEX, AppAssignSelfServiceValuePeer::PRO_UID, AppAssignSelfServiceValuePeer::TAS_UID, AppAssignSelfServiceValuePeer::TAS_ID, AppAssignSelfServiceValuePeer::GRP_UID, ),
BasePeer::TYPE_FIELDNAME => array ('ID', 'APP_UID', 'APP_NUMBER', 'DEL_INDEX', 'PRO_UID', 'TAS_UID', 'TAS_ID', 'GRP_UID', ),
BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, )
);
/**
@@ -73,10 +79,10 @@ abstract class BaseAppAssignSelfServiceValuePeer
* e.g. self::$fieldNames[BasePeer::TYPE_PHPNAME]['Id'] = 0
*/
private static $fieldKeys = array (
BasePeer::TYPE_PHPNAME => array ('Id' => 0, 'AppUid' => 1, 'DelIndex' => 2, 'ProUid' => 3, 'TasUid' => 4, 'GrpUid' => 5, ),
BasePeer::TYPE_COLNAME => array (AppAssignSelfServiceValuePeer::ID => 0, AppAssignSelfServiceValuePeer::APP_UID => 1, AppAssignSelfServiceValuePeer::DEL_INDEX => 2, AppAssignSelfServiceValuePeer::PRO_UID => 3, AppAssignSelfServiceValuePeer::TAS_UID => 4, AppAssignSelfServiceValuePeer::GRP_UID => 5, ),
BasePeer::TYPE_FIELDNAME => array ('ID' => 0, 'APP_UID' => 1, 'DEL_INDEX' => 2, 'PRO_UID' => 3, 'TAS_UID' => 4, 'GRP_UID' => 5, ),
BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, )
BasePeer::TYPE_PHPNAME => array ('Id' => 0, 'AppUid' => 1, 'AppNumber' => 2, 'DelIndex' => 3, 'ProUid' => 4, 'TasUid' => 5, 'TasId' => 6, 'GrpUid' => 7, ),
BasePeer::TYPE_COLNAME => array (AppAssignSelfServiceValuePeer::ID => 0, AppAssignSelfServiceValuePeer::APP_UID => 1, AppAssignSelfServiceValuePeer::APP_NUMBER => 2, AppAssignSelfServiceValuePeer::DEL_INDEX => 3, AppAssignSelfServiceValuePeer::PRO_UID => 4, AppAssignSelfServiceValuePeer::TAS_UID => 5, AppAssignSelfServiceValuePeer::TAS_ID => 6, AppAssignSelfServiceValuePeer::GRP_UID => 7, ),
BasePeer::TYPE_FIELDNAME => array ('ID' => 0, 'APP_UID' => 1, 'APP_NUMBER' => 2, 'DEL_INDEX' => 3, 'PRO_UID' => 4, 'TAS_UID' => 5, 'TAS_ID' => 6, 'GRP_UID' => 7, ),
BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, )
);
/**
@@ -181,12 +187,16 @@ abstract class BaseAppAssignSelfServiceValuePeer
$criteria->addSelectColumn(AppAssignSelfServiceValuePeer::APP_UID);
$criteria->addSelectColumn(AppAssignSelfServiceValuePeer::APP_NUMBER);
$criteria->addSelectColumn(AppAssignSelfServiceValuePeer::DEL_INDEX);
$criteria->addSelectColumn(AppAssignSelfServiceValuePeer::PRO_UID);
$criteria->addSelectColumn(AppAssignSelfServiceValuePeer::TAS_UID);
$criteria->addSelectColumn(AppAssignSelfServiceValuePeer::TAS_ID);
$criteria->addSelectColumn(AppAssignSelfServiceValuePeer::GRP_UID);
}

View File

@@ -4230,9 +4230,11 @@
</vendor>
<column name="ID" type="INTEGER" required="true" autoIncrement="true" primaryKey="true"/>
<column name="APP_UID" type="VARCHAR" size="32" required="true"/>
<column name="APP_NUMBER" type="INTEGER" required="false" default="0"/>
<column name="DEL_INDEX" type="INTEGER" required="true" default="0"/>
<column name="PRO_UID" type="VARCHAR" size="32" required="true"/>
<column name="TAS_UID" type="VARCHAR" size="32" required="true"/>
<column name="TAS_ID" type="INTEGER" required="false" default="0"/>
<column name="GRP_UID" type="LONGVARCHAR" required="true"/>
</table>

View File

@@ -1395,6 +1395,7 @@ class adminProxy extends HttpProxyController
$oauthClients->setClientDescription('ProcessMaker Web Designer App');
$oauthClients->setClientWebsite('www.processmaker.com');
$oauthClients->setRedirectUri($endpoint);
$oauthClients->setUsrUid('00000000000000000000000000000001');
$oauthClients->save();
if (!empty(config('oauthClients.mobile.clientId'))) {
@@ -1405,6 +1406,7 @@ class adminProxy extends HttpProxyController
$oauthClients->setClientDescription(config('oauthClients.mobile.clientDescription'));
$oauthClients->setClientWebsite(config('oauthClients.mobile.clientWebsite'));
$oauthClients->setRedirectUri($endpoint);
$oauthClients->setUsrUid('00000000000000000000000000000001');
$oauthClients->save();
}

View File

@@ -281,13 +281,13 @@ DROP TABLE IF EXISTS `GROUPWF`;
CREATE TABLE `GROUPWF`
(
`GRP_UID` VARCHAR(32) NOT NULL,
`GRP_ID` INTEGER NOT NULL AUTO_INCREMENT,
`GRP_ID` INTEGER NOT NULL AUTO_INCREMENT,
`GRP_TITLE` MEDIUMTEXT NOT NULL,
`GRP_STATUS` CHAR(8) default 'ACTIVE' NOT NULL,
`GRP_LDAP_DN` VARCHAR(255) default '' NOT NULL,
`GRP_UX` VARCHAR(128) default 'NORMAL',
PRIMARY KEY (`GRP_UID`),
UNIQUE KEY `GRP_ID` (`GRP_ID`)
UNIQUE KEY `GRP_ID` (`GRP_ID`)
)ENGINE=InnoDB DEFAULT CHARSET='utf8';
#-----------------------------------------------------------------------------
#-- GROUP_USER
@@ -2354,9 +2354,11 @@ CREATE TABLE `APP_ASSIGN_SELF_SERVICE_VALUE`
(
`ID` INTEGER NOT NULL AUTO_INCREMENT,
`APP_UID` VARCHAR(32) NOT NULL,
`APP_NUMBER` INTEGER default 0,
`DEL_INDEX` INTEGER default 0 NOT NULL,
`PRO_UID` VARCHAR(32) NOT NULL,
`TAS_UID` VARCHAR(32) NOT NULL,
`TAS_ID` INTEGER default 0,
`GRP_UID` MEDIUMTEXT NOT NULL,
PRIMARY KEY (`ID`)
)ENGINE=InnoDB DEFAULT CHARSET='utf8';
@@ -2372,7 +2374,7 @@ CREATE TABLE `APP_ASSIGN_SELF_SERVICE_VALUE_GROUP`
`ID` INTEGER default 0 NOT NULL,
`GRP_UID` VARCHAR(32) NOT NULL,
`ASSIGNEE_ID` INTEGER default 0,
`ASSIGNEE_TYPE` INTEGER default 0 NOT NULL,
`ASSIGNEE_TYPE` INTEGER default 0 NOT NULL,
KEY `indexId`(`ID`),
KEY `INDEX_ASSIGNEE_ID`(`ASSIGNEE_ID`)
)ENGINE=InnoDB DEFAULT CHARSET='utf8';

File diff suppressed because it is too large Load Diff