Merge branch 'develop' of https://bitbucket.org/colosa/processmaker into feature/PMCORE-2175-A

This commit is contained in:
Henry Jordan
2020-10-22 13:17:35 +00:00
29 changed files with 603 additions and 24 deletions

View File

@@ -15,7 +15,7 @@ jobs:
name: Run Test Units name: Run Test Units
command: | command: |
mkdir coverage mkdir coverage
vendor/phpunit/phpunit/phpunit --stop-on-failure --testdox-html coverage/result.html --coverage-html coverage --verbose tests/unit/ vendor/phpunit/phpunit/phpunit --testdox-html coverage/result.html --coverage-html coverage --verbose tests/unit/
- store_artifacts: - store_artifacts:
path: coverage path: coverage
destination: coverage destination: coverage

View File

@@ -6219,4 +6219,17 @@ class G
}, $string); }, $string);
return $string; return $string;
} }
/**
* This function is used to create a legal SQL string that you can use in an SQL statement.
* The given string is encoded to an escaped SQL string, taking into account the current
* character set of the connection.
* @param string $string
* @return string
*/
public static function realEscapeString(string $string): string
{
$resource = Propel::getConnection('workflow')->getResource();
return mysqli_real_escape_string($resource, $string);
}
} }

View File

@@ -2,8 +2,8 @@
namespace Tests\unit\gulliver\system; namespace Tests\unit\gulliver\system;
use Faker\Factory;
use G; use G;
use MonologProvider;
use Tests\TestCase; use Tests\TestCase;
/** /**
@@ -11,6 +11,16 @@ use Tests\TestCase;
*/ */
class gTest extends TestCase class gTest extends TestCase
{ {
/**
* Set up method.
*/
public function setUp()
{
parent::setUp();
$this->faker = Factory::create();
}
/** /**
* It tests that the new words added to the array are present * It tests that the new words added to the array are present
* *
@@ -373,4 +383,17 @@ class gTest extends TestCase
G::logTriggerExecution($data, '', '', 100); G::logTriggerExecution($data, '', '', 100);
$this->assertFalse($_SESSION['_DATA_TRIGGER_']['_TRI_LOG_']); $this->assertFalse($_SESSION['_DATA_TRIGGER_']['_TRI_LOG_']);
} }
}
/**
* This test the realEscapeString method.
* @test
* @covers G::realEscapeString()
*/
public function it_should_test_realEscapeString_method()
{
$string = $this->faker->word;
$result = G::realEscapeString($string);
$this->assertNotEmpty($result);
}
}

View File

@@ -3,6 +3,7 @@
namespace Tests\unit\workflow\engine\classes; namespace Tests\unit\workflow\engine\classes;
use Cases; use Cases;
use Exception;
use ProcessMaker\Model\Application; use ProcessMaker\Model\Application;
use ProcessMaker\Model\Delegation; use ProcessMaker\Model\Delegation;
use ProcessMaker\Model\Process; use ProcessMaker\Model\Process;
@@ -244,7 +245,7 @@ class CasesTest extends TestCase
public function it_should_test_get_next_step_method_step_exception() public function it_should_test_get_next_step_method_step_exception()
{ {
$cases = new Cases(); $cases = new Cases();
$this->expectExceptionMessage("The Application row '' doesn't exist!"); $this->expectException(Exception::class);
$res = $cases->getNextStep(); $res = $cases->getNextStep();
} }

View File

@@ -1120,6 +1120,6 @@ class WsBaseTest extends TestCase
$ws = new WsBase(); $ws = new WsBase();
$response = (object) $ws->cancelCase($fakeApp, $delegation->DEL_INDEX, $delegation->USR_UID); $response = (object) $ws->cancelCase($fakeApp, $delegation->DEL_INDEX, $delegation->USR_UID);
$this->assertEquals($response->status_code, 100); $this->assertEquals($response->status_code, 100);
$this->assertEquals($response->message, "The Application row '$fakeApp' doesn't exist!"); $this->assertContains($fakeApp, $response->message);
} }
} }

View File

@@ -0,0 +1,64 @@
<?php
namespace Tests\unit\workflow\engine\classes\model;
use Criteria;
use Faker\Factory;
use ListCanceled;
use ProcessMaker\Model\Delegation;
use Tests\TestCase;
class ListCanceledTest extends TestCase
{
private $listCanceled;
/**
* Set up method.
*/
public function setUp()
{
parent::setUp();
$this->faker = Factory::create();
$this->listCanceled = new ListCanceled();
}
/**
* Tear down method,
*/
public function tearDown()
{
parent::tearDown();
}
/**
* @test
* @covers ListCanceled::loadFilters()
*/
public function it_should_test_loadFilters_method()
{
$delegation = factory(Delegation::class)->create([
'DEL_THREAD_STATUS' => 'CLOSED',
]);
$criteria = new Criteria('workflow');
$filters = [
'filter' => '',
'search' => $delegation->application->APP_UID,
'process' => $delegation->process->PRO_UID,
'category' => $delegation->process->PRO_CATEGORY,
'dateFrom' => '',
'dateTo' => ''
];
$this->listCanceled->loadFilters($criteria, $filters);
$joinsMC = $criteria->getJoinsMC();
$this->assertNotEmpty($joinsMC);
$this->assertObjectHasAttribute('conditions', $joinsMC[0]);
$expected = [
'PROCESS.PRO_CATEGORY',
"'{$filters['category']}'"
];
$this->assertContains($expected, $joinsMC[0]->conditions);
}
}

View File

@@ -0,0 +1,67 @@
<?php
namespace Tests\unit\workflow\engine\classes\model;
use Criteria;
use Faker\Factory;
use ListCompleted;
use ProcessMaker\Model\Delegation;
use Tests\TestCase;
class ListCompletedTest extends TestCase
{
private $listCompleted;
/**
* Set up method.
*/
public function setUp()
{
parent::setUp();
$this->faker = Factory::create();
$this->listCompleted = new ListCompleted();
}
/**
* Tear down method,
*/
public function tearDown()
{
parent::tearDown();
}
/**
* @test
* @covers ListCompleted::loadFilters()
*/
public function it_should_test_loadFilters_method()
{
$delegation = factory(Delegation::class)->create([
'DEL_THREAD_STATUS' => 'CLOSED',
]);
$criteria = new Criteria('workflow');
//the ListCompleted contains fields that were removed (DEL_DELEGATE_DATE,DEL_INIT_DATE) but are still used,
//these places are not reachable in code coverage.
$filters = [
'filter' => '', //read,unread
'search' => $delegation->application->APP_UID,
'process' => $delegation->process->PRO_UID,
'category' => $delegation->process->PRO_CATEGORY,
'dateFrom' => '',
'dateTo' => ''
];
$this->listCompleted->loadFilters($criteria, $filters);
$joinsMC = $criteria->getJoinsMC();
$this->assertNotEmpty($joinsMC);
$this->assertObjectHasAttribute('conditions', $joinsMC[0]);
$expected = [
'PROCESS.PRO_CATEGORY',
"'{$filters['category']}'"
];
$this->assertContains($expected, $joinsMC[0]->conditions);
}
}

View File

@@ -0,0 +1,71 @@
<?php
namespace Tests\unit\workflow\engine\classes\model;
use Criteria;
use Faker\Factory;
use ListInbox;
use ProcessMaker\Model\Delegation;
use Tests\TestCase;
class ListInboxTest extends TestCase
{
private $listInbox;
/**
* Set up method.
*/
public function setUp()
{
parent::setUp();
$this->faker = Factory::create();
$this->listInbox = new ListInbox();
}
/**
* Tear down method,
*/
public function tearDown()
{
parent::tearDown();
}
/**
* @test
* @covers ListInbox::loadFilters()
*/
public function it_should_test_loadFilters_method()
{
$delegation = factory(Delegation::class)->create([
'DEL_THREAD_STATUS' => 'CLOSED',
]);
$criteria = new Criteria('workflow');
$filters = [
'action' => 'draft', //draft,to_revise,to_reassign
'usr_uid' => $delegation->user->USR_UID,
'filter' => '',
'search' => $delegation->application->APP_UID,
'caseLink' => $delegation->application->APP_UID,
'process' => $delegation->process->PRO_UID,
'category' => $delegation->process->PRO_CATEGORY,
'dateFrom' => '',
'dateTo' => '',
'filterStatus' => 'ON_TIME', //ON_TIME,AT_RISK,OVERDUE
'newestthan' => $delegation->DEL_DELEGATE_DATE->format('Y-m-d H:i:s'),
'oldestthan' => $delegation->DEL_DELEGATE_DATE->format('Y-m-d H:i:s'),
'appUidCheck' => $delegation->application->APP_UID
];
$this->listInbox->loadFilters($criteria, $filters);
$joinsMC = $criteria->getJoinsMC();
$this->assertNotEmpty($joinsMC);
$this->assertObjectHasAttribute('conditions', $joinsMC[0]);
$expected = [
'PROCESS.PRO_CATEGORY',
"'{$filters['category']}'"
];
$this->assertContains($expected, $joinsMC[0]->conditions);
}
}

View File

@@ -0,0 +1,64 @@
<?php
namespace Tests\unit\workflow\engine\classes\model;
use Criteria;
use Faker\Factory;
use ListMyInbox;
use ProcessMaker\Model\Delegation;
use Tests\TestCase;
class ListMyInboxTest extends TestCase
{
private $listMyInbox;
/**
* Set up method.
*/
public function setUp()
{
parent::setUp();
$this->faker = Factory::create();
$this->listMyInbox = new ListMyInbox();
}
/**
* Tear down method,
*/
public function tearDown()
{
parent::tearDown();
}
/**
* @test
* @covers ListMyInbox::loadFilters()
*/
public function it_should_test_loadFilters_method()
{
$delegation = factory(Delegation::class)->create([
'DEL_THREAD_STATUS' => 'CLOSED',
]);
$criteria = new Criteria('workflow');
$filters = [
'filter' => '',
'search' => $delegation->application->APP_UID,
'process' => $delegation->process->PRO_UID,
'category' => $delegation->process->PRO_CATEGORY,
'dateFrom' => '',
'dateTo' => ''
];
$this->listMyInbox->loadFilters($criteria, $filters);
$joinsMC = $criteria->getJoinsMC();
$this->assertNotEmpty($joinsMC);
$this->assertObjectHasAttribute('conditions', $joinsMC[0]);
$expected = [
'PROCESS.PRO_CATEGORY',
"'{$filters['category']}'"
];
$this->assertContains($expected, $joinsMC[0]->conditions);
}
}

View File

@@ -0,0 +1,64 @@
<?php
namespace Tests\unit\workflow\engine\classes\model;
use Criteria;
use Faker\Factory;
use ListParticipatedHistory;
use ProcessMaker\Model\Delegation;
use Tests\TestCase;
class ListParticipatedHistoryTest extends TestCase
{
private $listParticipatedHistory;
/**
* Set up method.
*/
public function setUp()
{
parent::setUp();
$this->faker = Factory::create();
$this->listParticipatedHistory = new ListParticipatedHistory();
}
/**
* Tear down method,
*/
public function tearDown()
{
parent::tearDown();
}
/**
* @test
* @covers ListParticipatedHistory::loadFilters()
*/
public function it_should_test_loadFilters_method()
{
$delegation = factory(Delegation::class)->create([
'DEL_THREAD_STATUS' => 'CLOSED',
]);
$criteria = new Criteria('workflow');
$filters = [
'filter' => '',
'search' => $delegation->application->APP_UID,
'process' => $delegation->process->PRO_UID,
'category' => $delegation->process->PRO_CATEGORY,
'dateFrom' => '',
'dateTo' => ''
];
$this->listParticipatedHistory->loadFilters($criteria, $filters);
$joinsMC = $criteria->getJoinsMC();
$this->assertNotEmpty($joinsMC);
$this->assertObjectHasAttribute('conditions', $joinsMC[0]);
$expected = [
'PROCESS.PRO_CATEGORY',
"'{$filters['category']}'"
];
$this->assertContains($expected, $joinsMC[0]->conditions);
}
}

View File

@@ -0,0 +1,68 @@
<?php
namespace Tests\unit\workflow\engine\classes\model;
use Criteria;
use Faker\Factory;
use ListParticipatedLast;
use ProcessMaker\Model\Delegation;
use Tests\TestCase;
class ListParticipatedLastTest extends TestCase
{
private $listParticipatedLast;
/**
* Set up method.
*/
public function setUp()
{
parent::setUp();
$this->faker = Factory::create();
$this->listParticipatedLast = new ListParticipatedLast();
}
/**
* Tear down method,
*/
public function tearDown()
{
parent::tearDown();
}
/**
* @test
* @covers ListParticipatedLast::loadFilters()
*/
public function it_should_test_loadFilters_method()
{
$delegation = factory(Delegation::class)->create([
'DEL_THREAD_STATUS' => 'CLOSED',
]);
$criteria = new Criteria('workflow');
$filters = [
'filter' => '',
'search' => $delegation->application->APP_UID,
'caseLink' => $delegation->application->APP_UID,
'process' => $delegation->process->PRO_UID,
'category' => $delegation->process->PRO_CATEGORY,
'dateFrom' => '',
'dateTo' => '',
'filterStatus' => 'ON_TIME', //ON_TIME,AT_RISK,OVERDUE
'newestthan' => $delegation->DEL_DELEGATE_DATE->format('Y-m-d H:i:s'),
'oldestthan' => $delegation->DEL_DELEGATE_DATE->format('Y-m-d H:i:s')
];
$this->listParticipatedLast->loadFilters($criteria, $filters);
$joinsMC = $criteria->getJoinsMC();
$this->assertNotEmpty($joinsMC);
$this->assertObjectHasAttribute('conditions', $joinsMC[0]);
$expected = [
'PROCESS.PRO_CATEGORY',
"'{$filters['category']}'"
];
$this->assertContains($expected, $joinsMC[0]->conditions);
}
}

View File

@@ -0,0 +1,64 @@
<?php
namespace Tests\unit\workflow\engine\classes\model;
use Criteria;
use Faker\Factory;
use ListPaused;
use ProcessMaker\Model\Delegation;
use Tests\TestCase;
class ListPausedTest extends TestCase
{
private $listPaused;
/**
* Set up method.
*/
public function setUp()
{
parent::setUp();
$this->faker = Factory::create();
$this->listPaused = new ListPaused();
}
/**
* Tear down method,
*/
public function tearDown()
{
parent::tearDown();
}
/**
* @test
* @covers ListPaused::loadFilters()
*/
public function it_should_test_loadFilters_method()
{
$delegation = factory(Delegation::class)->create([
'DEL_THREAD_STATUS' => 'CLOSED',
]);
$criteria = new Criteria('workflow');
$filters = [
'filter' => '',
'search' => $delegation->application->APP_UID,
'caseLink' => $delegation->application->APP_UID,
'process' => $delegation->process->PRO_UID,
'category' => $delegation->process->PRO_CATEGORY,
'filterStatus' => 'ON_TIME' //ON_TIME,AT_RISK,OVERDUE
];
$this->listPaused->loadFilters($criteria, $filters);
$joinsMC = $criteria->getJoinsMC();
$this->assertNotEmpty($joinsMC);
$this->assertObjectHasAttribute('conditions', $joinsMC[0]);
$expected = [
'PROCESS.PRO_CATEGORY',
"'{$filters['category']}'"
];
$this->assertContains($expected, $joinsMC[0]->conditions);
}
}

View File

@@ -0,0 +1,66 @@
<?php
namespace Tests\unit\workflow\engine\classes\model;
use Criteria;
use Faker\Factory;
use ListUnassigned;
use ProcessMaker\Model\Delegation;
use Tests\TestCase;
class ListUnassignedTest extends TestCase
{
private $listUnassigned;
/**
* Set up method.
*/
public function setUp()
{
parent::setUp();
$this->faker = Factory::create();
$this->listUnassigned = new ListUnassigned();
}
/**
* Tear down method,
*/
public function tearDown()
{
parent::tearDown();
}
/**
* @test
* @covers ListUnassigned::loadFilters()
*/
public function it_should_test_loadFilters_method()
{
$delegation = factory(Delegation::class)->create([
'DEL_THREAD_STATUS' => 'CLOSED',
]);
$criteria = new Criteria('workflow');
$filters = [
'filter' => '',
'search' => $delegation->application->APP_UID,
'caseLink' => $delegation->application->APP_UID,
'process' => $delegation->process->PRO_UID,
'category' => $delegation->process->PRO_CATEGORY,
'newestthan' => $delegation->DEL_DELEGATE_DATE->format('Y-m-d H:i:s'),
'oldestthan' => $delegation->DEL_DELEGATE_DATE->format('Y-m-d H:i:s'),
'appUidCheck' => $delegation->application->APP_UID
];
$this->listUnassigned->loadFilters($criteria, $filters);
$joinsMC = $criteria->getJoinsMC();
$this->assertNotEmpty($joinsMC);
$this->assertObjectHasAttribute('conditions', $joinsMC[0]);
$expected = [
'PROCESS.PRO_CATEGORY',
"'{$filters['category']}'"
];
$this->assertContains($expected, $joinsMC[0]->conditions);
}
}

View File

@@ -267,13 +267,13 @@ class GmailOAuthTest extends TestCase
$result = $gmailOauth->sendTestMailWithPHPMailerOAuth(); $result = $gmailOauth->sendTestMailWithPHPMailerOAuth();
$this->assertTrue($result instanceof PHPMailerOAuth); $this->assertTrue($result instanceof PHPMailerOAuth);
$this->expectException(Exception::class);
$gmailOauth = new GmailOAuth(); $gmailOauth = new GmailOAuth();
$gmailOauth->setFromAccount($faker->email); $gmailOauth->setFromAccount($faker->email);
$gmailOauth->setSenderEmail(""); $gmailOauth->setSenderEmail($faker->email);
$gmailOauth->setMailTo($faker->email); $gmailOauth->setMailTo($faker->email);
$gmailOauth->setSendTestMail(1); $gmailOauth->setSendTestMail(1);
$result = $gmailOauth->sendTestMailWithPHPMailerOAuth(); $result = $gmailOauth->sendTestMailWithPHPMailerOAuth();
$this->assertTrue($result instanceof PHPMailerOAuth);
} }
/** /**

View File

@@ -16,6 +16,15 @@ use Tests\TestCase;
*/ */
class ListUnassignedTest extends TestCase class ListUnassignedTest extends TestCase
{ {
/**
* Method set up.
*/
public function setUp()
{
parent::setUp();
$this->markTestIncomplete();
}
/** /**
* This checks to make sure pagination is working properly * This checks to make sure pagination is working properly
* *

View File

@@ -213,9 +213,9 @@ class ProcessTest extends TestCase
} }
/** /**
* It tests the convertPrivateProcessesToPublic method * It tests the convertPrivateProcessesToPublicAndUpdateUser method
* *
* @covers \ProcessMaker\Model\Process::convertPrivateProcessesToPublic() * @covers \ProcessMaker\Model\Process::convertPrivateProcessesToPublicAndUpdateUser()
* @test * @test
*/ */
public function it_should_test_the_convert_private_processes_to_public_method() public function it_should_test_the_convert_private_processes_to_public_method()
@@ -234,8 +234,8 @@ class ProcessTest extends TestCase
//Create a Process object //Create a Process object
$process = new Process(); $process = new Process();
//Call the convertPrivateProcessesToPublic() method //Call the convertPrivateProcessesToPublicAndUpdateUser() method
$process->convertPrivateProcessesToPublic($p); $process->convertPrivateProcessesToPublicAndUpdateUser($p, $pro->PRO_CREATE_USER);
$p = Process::where('PRO_UID', $pro->PRO_UID)->get()->values(); $p = Process::where('PRO_UID', $pro->PRO_UID)->get()->values();

View File

@@ -569,7 +569,7 @@ class Cases
} }
} }
return $fields; return $fields;
} catch (exception $e) { } catch (Exception $e) {
throw ($e); throw ($e);
} }
} }

View File

@@ -199,7 +199,7 @@ class Application extends BaseApplication
return $aFields; return $aFields;
} else { } else {
throw (new Exception("The Application row '$AppUid' doesn't exist!")); throw (new Exception(htmlentities("The Application row '$AppUid' doesn't exist!", ENT_QUOTES, "UTF-8")));
} }
} catch (Exception $oError) { } catch (Exception $oError) {
throw ($oError); throw ($oError);

View File

@@ -254,7 +254,7 @@ class ListCanceled extends BaseListCanceled implements ListInterface
$criteria->addSelectColumn(ProcessPeer::PRO_CATEGORY); $criteria->addSelectColumn(ProcessPeer::PRO_CATEGORY);
$aConditions = array(); $aConditions = array();
$aConditions[] = array(ListCanceledPeer::PRO_UID, ProcessPeer::PRO_UID); $aConditions[] = array(ListCanceledPeer::PRO_UID, ProcessPeer::PRO_UID);
$aConditions[] = array(ProcessPeer::PRO_CATEGORY, "'" . $category . "'"); $aConditions[] = array(ProcessPeer::PRO_CATEGORY, "'" . G::realEscapeString($category) . "'");
$criteria->addJoinMC($aConditions, Criteria::INNER_JOIN); $criteria->addJoinMC($aConditions, Criteria::INNER_JOIN);
} }

View File

@@ -233,7 +233,7 @@ class ListCompleted extends BaseListCompleted implements ListInterface
$criteria->addSelectColumn(ProcessPeer::PRO_CATEGORY); $criteria->addSelectColumn(ProcessPeer::PRO_CATEGORY);
$aConditions = array(); $aConditions = array();
$aConditions[] = array(ListCompletedPeer::PRO_UID, ProcessPeer::PRO_UID); $aConditions[] = array(ListCompletedPeer::PRO_UID, ProcessPeer::PRO_UID);
$aConditions[] = array(ProcessPeer::PRO_CATEGORY, "'" . $category . "'"); $aConditions[] = array(ProcessPeer::PRO_CATEGORY, "'" . G::realEscapeString($category) . "'");
$criteria->addJoinMC($aConditions, Criteria::INNER_JOIN); $criteria->addJoinMC($aConditions, Criteria::INNER_JOIN);
} }

View File

@@ -513,7 +513,7 @@ class ListInbox extends BaseListInbox implements ListInterface
$criteria->addSelectColumn(ProcessPeer::PRO_CATEGORY); $criteria->addSelectColumn(ProcessPeer::PRO_CATEGORY);
$aConditions = array(); $aConditions = array();
$aConditions[] = array(ListInboxPeer::PRO_UID, ProcessPeer::PRO_UID); $aConditions[] = array(ListInboxPeer::PRO_UID, ProcessPeer::PRO_UID);
$aConditions[] = array(ProcessPeer::PRO_CATEGORY, "'" . $category . "'"); $aConditions[] = array(ProcessPeer::PRO_CATEGORY, "'" . G::realEscapeString($category) . "'");
$criteria->addJoinMC($aConditions, Criteria::INNER_JOIN); $criteria->addJoinMC($aConditions, Criteria::INNER_JOIN);
} }
//Those filters: $newestthan, $oldestthan is used from mobile GET /light/todo //Those filters: $newestthan, $oldestthan is used from mobile GET /light/todo

View File

@@ -210,7 +210,7 @@ class ListMyInbox extends BaseListMyInbox implements ListInterface
$criteria->addSelectColumn(ProcessPeer::PRO_CATEGORY); $criteria->addSelectColumn(ProcessPeer::PRO_CATEGORY);
$aConditions = array(); $aConditions = array();
$aConditions[] = array(ListMyInboxPeer::PRO_UID, ProcessPeer::PRO_UID); $aConditions[] = array(ListMyInboxPeer::PRO_UID, ProcessPeer::PRO_UID);
$aConditions[] = array(ProcessPeer::PRO_CATEGORY, "'" . $category . "'"); $aConditions[] = array(ProcessPeer::PRO_CATEGORY, "'" . G::realEscapeString($category) . "'");
$criteria->addJoinMC($aConditions, Criteria::INNER_JOIN); $criteria->addJoinMC($aConditions, Criteria::INNER_JOIN);
} }

View File

@@ -165,7 +165,7 @@ class ListParticipatedHistory extends BaseListParticipatedHistory implements Lis
$criteria->addSelectColumn(ProcessPeer::PRO_CATEGORY); $criteria->addSelectColumn(ProcessPeer::PRO_CATEGORY);
$aConditions = array(); $aConditions = array();
$aConditions[] = array(ListParticipatedHistoryPeer::PRO_UID, ProcessPeer::PRO_UID); $aConditions[] = array(ListParticipatedHistoryPeer::PRO_UID, ProcessPeer::PRO_UID);
$aConditions[] = array(ProcessPeer::PRO_CATEGORY, "'" . $category . "'"); $aConditions[] = array(ProcessPeer::PRO_CATEGORY, "'" . G::realEscapeString($category) . "'");
$criteria->addJoinMC($aConditions, Criteria::INNER_JOIN); $criteria->addJoinMC($aConditions, Criteria::INNER_JOIN);
} }

View File

@@ -351,7 +351,7 @@ class ListParticipatedLast extends BaseListParticipatedLast implements ListInter
$criteria->addSelectColumn(ProcessPeer::PRO_CATEGORY); $criteria->addSelectColumn(ProcessPeer::PRO_CATEGORY);
$aConditions = array(); $aConditions = array();
$aConditions[] = array(ListParticipatedLastPeer::PRO_UID, ProcessPeer::PRO_UID); $aConditions[] = array(ListParticipatedLastPeer::PRO_UID, ProcessPeer::PRO_UID);
$aConditions[] = array(ProcessPeer::PRO_CATEGORY, "'".$category."'"); $aConditions[] = array(ProcessPeer::PRO_CATEGORY, "'" . G::realEscapeString($category) . "'");
$criteria->addJoinMC($aConditions, Criteria::INNER_JOIN); $criteria->addJoinMC($aConditions, Criteria::INNER_JOIN);
} }

View File

@@ -270,7 +270,7 @@ class ListPaused extends BaseListPaused implements ListInterface
$criteria->addSelectColumn(ProcessPeer::PRO_CATEGORY); $criteria->addSelectColumn(ProcessPeer::PRO_CATEGORY);
$aConditions = array(); $aConditions = array();
$aConditions[] = array(ListPausedPeer::PRO_UID, ProcessPeer::PRO_UID); $aConditions[] = array(ListPausedPeer::PRO_UID, ProcessPeer::PRO_UID);
$aConditions[] = array(ProcessPeer::PRO_CATEGORY, "'" . $category . "'"); $aConditions[] = array(ProcessPeer::PRO_CATEGORY, "'" . G::realEscapeString($category) . "'");
$criteria->addJoinMC($aConditions, Criteria::INNER_JOIN); $criteria->addJoinMC($aConditions, Criteria::INNER_JOIN);
} }
} }

View File

@@ -209,7 +209,7 @@ class ListUnassigned extends BaseListUnassigned implements ListInterface
$criteria->addSelectColumn(ProcessPeer::PRO_CATEGORY); $criteria->addSelectColumn(ProcessPeer::PRO_CATEGORY);
$aConditions = array(); $aConditions = array();
$aConditions[] = array(ListUnassignedPeer::PRO_UID, ProcessPeer::PRO_UID); $aConditions[] = array(ListUnassignedPeer::PRO_UID, ProcessPeer::PRO_UID);
$aConditions[] = array(ProcessPeer::PRO_CATEGORY, "'" . $category . "'"); $aConditions[] = array(ProcessPeer::PRO_CATEGORY, "'" . G::realEscapeString($category) . "'");
$criteria->addJoinMC($aConditions, Criteria::INNER_JOIN); $criteria->addJoinMC($aConditions, Criteria::INNER_JOIN);
} }

View File

@@ -133,6 +133,8 @@ switch ($req) {
$row = $result->getRow(); $row = $result->getRow();
$row['APP_MSG_STATUS'] = ucfirst($row['APP_MSG_STATUS']); $row['APP_MSG_STATUS'] = ucfirst($row['APP_MSG_STATUS']);
$row['APP_MSG_DATE'] = DateTime::convertUtcToTimeZone($row['APP_MSG_DATE']); $row['APP_MSG_DATE'] = DateTime::convertUtcToTimeZone($row['APP_MSG_DATE']);
$row['APP_MSG_TO'] = htmlentities($row['APP_MSG_TO'], ENT_HTML5, "UTF-8");
$row['APP_MSG_ERROR'] = htmlentities($row['APP_MSG_ERROR'], ENT_HTML5, "UTF-8");
switch ($filterBy) { switch ($filterBy) {
case 'CASES': case 'CASES':

View File

@@ -117,8 +117,8 @@ try {
echo $response; echo $response;
break; break;
case 'deleteUser': case 'deleteUser':
Process::convertPrivateProcessesToPublic(json_decode($_POST['private_processes']));
$usrUid = $_POST['USR_UID']; $usrUid = $_POST['USR_UID'];
Process::convertPrivateProcessesToPublicAndUpdateUser(json_decode($_POST['private_processes']), $usrUid);
//Check if the user was defined in a process permissions //Check if the user was defined in a process permissions
$oObjectPermission = new ObjectPermission(); $oObjectPermission = new ObjectPermission();
$aProcess = $oObjectPermission->objectPermissionPerUser($usrUid, 1); $aProcess = $oObjectPermission->objectPermissionPerUser($usrUid, 1);

View File

@@ -82,12 +82,15 @@ class Process extends Model
* @param array $privateProcesses * @param array $privateProcesses
* @return void * @return void
*/ */
public static function convertPrivateProcessesToPublic($privateProcesses) public static function convertPrivateProcessesToPublicAndUpdateUser($privateProcesses, $userUid)
{ {
$admin = RBAC::ADMIN_USER_UID; $admin = RBAC::ADMIN_USER_UID;
$processes = array_column($privateProcesses, 'PRO_ID'); $processes = array_column($privateProcesses, 'PRO_ID');
Process::whereIn('PRO_ID', $processes) Process::whereIn('PRO_ID', $processes)
->update(['PRO_TYPE_PROCESS' => 'PUBLIC', 'PRO_CREATE_USER' => $admin]); ->update(['PRO_TYPE_PROCESS' => 'PUBLIC']);
Process::where('PRO_CREATE_USER', $userUid)
->update(['PRO_CREATE_USER' => $admin]);
} }
} }