Skip to content

Commit 3b6725c

Browse files
Merge branch 'release-2024-fall' of github.com:ProcessMaker/processmaker into feature/FOUR-19522
2 parents 39af7db + f2500ea commit 3b6725c

23 files changed

Lines changed: 541 additions & 306 deletions

File tree

‎ProcessMaker/BuildSdk.php‎

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ public function run()
5858
public function setUserId($userId)
5959
{
6060
if (!is_numeric($userId)) {
61-
throw new \Exception('User id must be a number');
61+
throw new Exception('User id must be a number');
6262
}
6363
$this->userId = $userId;
6464
}
@@ -236,6 +236,22 @@ private function fixErroneousCode($folder)
236236
"sed -i -E 's/ProcessMaker\\\Models\\\/ProcessMaker\\\\\\\Models\\\\\\\/g' {} \;"
237237
);
238238
}
239+
240+
if ($this->lang === 'php') {
241+
$content = file_get_contents("{$folder}/lib/ObjectSerializer.php");
242+
$line = 'if (in_array($class, [\'DateTime';
243+
$insertAbove = '
244+
if ($class === "mixed") {
245+
$jsonObj = json_decode($data, true);
246+
if ($jsonObj === null && json_last_error() !== JSON_ERROR_NONE) {
247+
return $data;
248+
}
249+
return $jsonObj;
250+
}
251+
';
252+
$content = str_replace($line, $insertAbove . "\n\n" . $line, $content);
253+
file_put_contents("{$folder}/lib/ObjectSerializer.php", $content);
254+
}
239255
}
240256

241257
private function addMissingDependency($folder)

‎ProcessMaker/Http/Controllers/Api/ProcessTranslationController.php‎

Lines changed: 0 additions & 160 deletions
This file was deleted.

‎ProcessMaker/Http/Controllers/Api/TaskDraftController.php‎

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
use ProcessMaker\Http\Resources\ApiResource;
1010
use ProcessMaker\Models\ProcessRequestToken;
1111
use ProcessMaker\Models\TaskDraft;
12+
use ProcessMaker\SanitizeHelper;
1213

1314
class TaskDraftController extends Controller
1415
{
@@ -19,6 +20,7 @@ public function index(Request $request, ProcessRequestToken $task)
1920

2021
if ($draft) {
2122
$draftData = $draft->data;
23+
2224
return new ApiResource($draftData);
2325
}
2426

@@ -31,12 +33,14 @@ public function update(Request $request, ProcessRequestToken $task)
3133
$draft = TaskDraft::firstOrNew($search, ['data' => []]);
3234
// Do not overwrite __deleted_files
3335
$deletedFiles = Arr::get($draft->data, '__deleted_files');
34-
$data = $request->all();
36+
$data = json_decode($request->getContent(), true);
37+
$data = SanitizeHelper::sanitizeData($data, null, $task->processRequest->do_not_sanitize ?? []);
3538
if ($deletedFiles) {
3639
$data['__deleted_files'] = $deletedFiles;
3740
}
3841
$draft->data = $data;
3942
$draft->saveOrFail();
43+
4044
return new ApiResource($draft);
4145
}
4246

‎ProcessMaker/Http/Controllers/Auth/LoginController.php‎

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -252,12 +252,24 @@ public function beforeLogout(Request $request)
252252
// Clear the user session
253253
$this->forgetUserSession();
254254

255-
event(new Logout(Auth::user()));
256-
257255
// Always destroy 2fa flag
258256
session()->remove(TwoFactorAuthController::TFA_VALIDATED);
259257
session()->remove(TwoFactorAuthController::TFA_MESSAGE);
260258
session()->remove(TwoFactorAuthController::TFA_ERROR);
259+
260+
// Notify to listeners (package-auth, security logger)
261+
$eventResult = event(new Logout(Auth::user()));
262+
263+
// Remove the Laravel cookie
264+
$request->session()->invalidate();
265+
Cookie::queue(Cookie::forget(Passport::cookie()));
266+
267+
// process any redirects generated by the logout event listeners
268+
foreach ($eventResult as $result) {
269+
if (is_array($result) && array_key_exists('redirectTo', $result)) {
270+
return redirect($result['redirectTo']);
271+
}
272+
}
261273
}
262274

263275
return $this->logout($request);
@@ -339,7 +351,7 @@ public function login(Request $request, User $user)
339351
});
340352

341353
$this->setupLanguage($request, $user);
342-
354+
343355
return $this->sendLoginResponse($request);
344356
}
345357

@@ -368,7 +380,8 @@ public function showLoginFailed(Request $request)
368380
return view('errors.login-failed');
369381
}
370382

371-
private function setupLanguage(Request $request, User $user) {
383+
private function setupLanguage(Request $request, User $user)
384+
{
372385
$language = $request->cookies->get('language');
373386
if ($language) {
374387
$user->language = json_decode($language)->code;

‎ProcessMaker/Http/Controllers/Process/ProcessTranslationController.php‎

Lines changed: 0 additions & 31 deletions
This file was deleted.

‎ProcessMaker/ImportExport/Exporters/EmbedExporter.php‎

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,9 @@
33
namespace ProcessMaker\ImportExport\Exporters;
44

55
use ProcessMaker\ImportExport\DependentType;
6-
use ProcessMaker\Models\Embed;
76

87
class EmbedExporter extends ExporterBase
98
{
10-
public $handleDuplicatesByIncrementing = ['uuid'];
11-
12-
public $incrementStringSeparator = null;
13-
149
public function export(): void
1510
{
1611
$embed = $this->model;

‎ProcessMaker/ImportExport/Exporters/ProcessExporter.php‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -495,6 +495,7 @@ public function importEmbed(): void
495495
{
496496
foreach ($this->getDependents(DependentType::EMBED) as $embed) {
497497
$embed->model->setAttribute('model_id', $this->model->id);
498+
$embed->model->saveOrFail();
498499
}
499500
}
500501

‎ProcessMaker/ScriptRunners/Base.php‎

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,14 +37,14 @@ abstract public function config($code, array $dockerConfig);
3737
/**
3838
* Set the user to run this script as
3939
*
40-
* @var \ProcessMaker\Models\User
40+
* @var User
4141
*/
4242
private $user;
4343

4444
/**
4545
* Set the script executor
4646
*
47-
* @var \ProcessMaker\Models\ScriptExecutor
47+
* @var ScriptExecutor
4848
*/
4949
private $scriptExecutor;
5050

@@ -60,10 +60,10 @@ public function __construct(ScriptExecutor $scriptExecutor)
6060
* @param array $data
6161
* @param array $config
6262
* @param int $timeout
63-
* @param \ProcessMaker\Models\User $user
63+
* @param User $user
6464
*
6565
* @return array
66-
* @throws \RuntimeException
66+
* @throws RuntimeException
6767
*/
6868
public function run($code, array $data, array $config, $timeout, ?User $user)
6969
{
@@ -82,6 +82,7 @@ public function run($code, array $data, array $config, $timeout, ?User $user)
8282
$accessToken = Cache::remember('script-runner-' . $user->id, $expires, function () use ($user) {
8383
$user->removeOldRunScriptTokens();
8484
$token = new GenerateAccessToken($user);
85+
8586
return $token->getToken();
8687
});
8788
$environmentVariables[] = 'API_TOKEN=' . (!$isNayra ? escapeshellarg($accessToken) : $accessToken);
@@ -93,6 +94,7 @@ public function run($code, array $data, array $config, $timeout, ?User $user)
9394
// Nayra Executor
9495
if ($isNayra) {
9596
$response = $this->handleNayraDocker($code, $data, $config, $timeout, $environmentVariables);
97+
9698
return json_decode($response, true);
9799
}
98100

@@ -104,6 +106,7 @@ public function run($code, array $data, array $config, $timeout, ?User $user)
104106

105107
// Set docker shared memory size
106108
$parameters .= ' --shm-size=' . env('DOCKER_SHARED_MEMORY', '256m');
109+
$parameters .= ' --platform linux/amd64 ';
107110

108111
// Add any custom parameters specified in the config file
109112
$parameters .= ' ' . config('app.processmaker_scripts_docker_params');

‎composer.json‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "processmaker/processmaker",
3-
"version": "4.12.0+alpha-1",
3+
"version": "4.12.0+alpha-2",
44
"description": "BPM PHP Software",
55
"keywords": [
66
"php bpm processmaker"
@@ -106,7 +106,7 @@
106106
"Gmail"
107107
],
108108
"processmaker": {
109-
"build": "18a60bb3",
109+
"build": "5790ab96",
110110
"cicd-enabled": true,
111111
"custom": {
112112
"package-ellucian-ethos": "dev-release-2024-fall",

0 commit comments

Comments
 (0)