diff --git a/ProcessMaker/Events/ActivityAssigned.php b/ProcessMaker/Events/ActivityAssigned.php index 75c51c5fde..c9a379d9bf 100644 --- a/ProcessMaker/Events/ActivityAssigned.php +++ b/ProcessMaker/Events/ActivityAssigned.php @@ -54,6 +54,16 @@ public function broadcastOn() /** * Return the process request. * + * @return \ProcessMaker\Models\ProcessRequest + */ + public function getProcessRequest() + { + return $this->processRequest; + } + + /** + * Return the process request token. + * * @return \ProcessMaker\Models\ProcessRequestToken */ public function getProcessRequestToken() diff --git a/ProcessMaker/Listeners/HandleActivityAssignedInterstitialRedirect.php b/ProcessMaker/Listeners/HandleActivityAssignedInterstitialRedirect.php index 328ca09cf6..0cf691509d 100644 --- a/ProcessMaker/Listeners/HandleActivityAssignedInterstitialRedirect.php +++ b/ProcessMaker/Listeners/HandleActivityAssignedInterstitialRedirect.php @@ -2,6 +2,7 @@ namespace ProcessMaker\Listeners; +use Auth; use ProcessMaker\Events\ActivityAssigned; class HandleActivityAssignedInterstitialRedirect extends HandleRedirectListener @@ -25,6 +26,9 @@ public function handle(ActivityAssigned $event): void ->getAttribute('process_request_id'), ]); } + + $user = Auth::user(); + $this->setRedirectTo($request, 'redirectToTask', [ @@ -33,6 +37,7 @@ public function handle(ActivityAssigned $event): void 'nodeId' => $event->getProcessRequestToken()->element_id, 'userId' => $event->getProcessRequestToken()->user_id, 'allowInterstitial' => $event->getProcessRequestToken()->getInterstitial()['allow_interstitial'], + 'userCanClaim' => !is_null($user) ? $event->getProcessRequest()->canUserClaimASelfServiceTask($user) : false, ] ); }