From cd6b0d9179f51110c477f95e68d1054f5e642a2a Mon Sep 17 00:00:00 2001 From: Freddy Daniel Rojas Valda Date: Thu, 18 Sep 2014 11:25:45 -0400 Subject: [PATCH 1/3] BUG 15705 'logged out while editing a process under the DESIGNER menu' --- workflow/engine/controllers/designer.php | 2 +- .../ProcessMaker/Services/OAuth2/Server.php | 24 ++++++++++++------- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/workflow/engine/controllers/designer.php b/workflow/engine/controllers/designer.php index a4a3eac89..f76fbb5e2 100644 --- a/workflow/engine/controllers/designer.php +++ b/workflow/engine/controllers/designer.php @@ -49,7 +49,7 @@ class Designer extends Controller $request = new \OAuth2\Request(array(), $request, array(), array(), array(), $server, null, $headers); $oauthServer = new \ProcessMaker\Services\OAuth2\Server(); - $response = $oauthServer->getServer()->handleTokenRequest($request); + $response = $oauthServer->postToken($request, true); $clientToken = $response->getParameters(); $clientToken["client_id"] = $client['CLIENT_ID']; $clientToken["client_secret"] = $client['CLIENT_SECRET']; diff --git a/workflow/engine/src/ProcessMaker/Services/OAuth2/Server.php b/workflow/engine/src/ProcessMaker/Services/OAuth2/Server.php index 4c6636cdf..ce95a79d3 100644 --- a/workflow/engine/src/ProcessMaker/Services/OAuth2/Server.php +++ b/workflow/engine/src/ProcessMaker/Services/OAuth2/Server.php @@ -222,23 +222,26 @@ class Server implements iAuthenticate * * @format JsonFormat,UploadFormat */ - public function postToken() + public function postToken($request = null, $returnResponse = false) { // Handle a request for an OAuth2.0 Access Token and send the response to the client - $request = \OAuth2\Request::createFromGlobals(); + if ($request == null) { + $request = \OAuth2\Request::createFromGlobals(); + } $response = $this->server->handleTokenRequest($request); - $token = $response->getParameters(); if (array_key_exists('access_token', $token) && array_key_exists('refresh_token', $token) ) { - session_start(); + if ($request == null) { + session_start(); + } $data = $this->storage->getAccessToken($token['access_token']); // verify if the client is our local PM Designer client if ($data['client_id'] == self::getPmClientId()) { - error_log('do stuff - is a request from local pm client'); + //error_log('do stuff - is a request from local pm client'); //require_once "classes/model/PmoauthUserAccessTokens.php"; $userToken = new \PmoauthUserAccessTokens(); @@ -252,7 +255,11 @@ class Server implements iAuthenticate } } - $response->send(); + if ($returnResponse) { + return $response; + } else { + $response->send(); + } } /** @@ -276,10 +283,9 @@ class Server implements iAuthenticate $pmAccessToken = new \PmoauthUserAccessTokens(); $session = $pmAccessToken->getSessionData($token['ACCESS_TOKEN']); - if ($session !== false && array_key_exists($session->getSessionId(), $_COOKIE)) { + if ($session !== false && array_key_exists($session->getSessionName(), $_COOKIE)) { // increase the timeout for local php session cookie $config = \Bootstrap::getSystemConfiguration(); - if (isset($config['session.gc_maxlifetime'])) { $lifetime = $config['session.gc_maxlifetime']; } else { @@ -289,7 +295,7 @@ class Server implements iAuthenticate $lifetime = 1440; } - setcookie($session->getSessionName(), $_COOKIE[$session->getSessionId()], time() + $lifetime, "/"); + setcookie($session->getSessionName(), $session->getSessionId(), time() + $lifetime, "/"); } } From e5e85246b6fb2a45f1b8da86abb707e2d315c888 Mon Sep 17 00:00:00 2001 From: Freddy Daniel Rojas Valda Date: Tue, 23 Sep 2014 14:25:43 -0400 Subject: [PATCH 2/3] BUG 15705 fix cookie. logged out while editing a process under the DESIGNER menu --- workflow/engine/src/ProcessMaker/Services/OAuth2/Server.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workflow/engine/src/ProcessMaker/Services/OAuth2/Server.php b/workflow/engine/src/ProcessMaker/Services/OAuth2/Server.php index ce95a79d3..3d869afc0 100644 --- a/workflow/engine/src/ProcessMaker/Services/OAuth2/Server.php +++ b/workflow/engine/src/ProcessMaker/Services/OAuth2/Server.php @@ -295,7 +295,7 @@ class Server implements iAuthenticate $lifetime = 1440; } - setcookie($session->getSessionName(), $session->getSessionId(), time() + $lifetime, "/"); + setcookie($session->getSessionName(), $_COOKIE[$session->getSessionName()], time() + $lifetime, "/"); } } From efa6ff05d289a873377d41f7bd677efff9450173 Mon Sep 17 00:00:00 2001 From: Freddy Daniel Rojas Valda Date: Tue, 23 Sep 2014 17:18:04 -0400 Subject: [PATCH 3/3] Add list of triggers of an activity in the endpoint get activities --- .../src/ProcessMaker/Services/Api/Project/Activity.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/workflow/engine/src/ProcessMaker/Services/Api/Project/Activity.php b/workflow/engine/src/ProcessMaker/Services/Api/Project/Activity.php index e65d2e8b5..0cbf08caf 100644 --- a/workflow/engine/src/ProcessMaker/Services/Api/Project/Activity.php +++ b/workflow/engine/src/ProcessMaker/Services/Api/Project/Activity.php @@ -120,6 +120,13 @@ class Activity extends Api $task->setArrayParamException(array("taskUid" => "act_uid", "stepUid" => "step_uid")); $response = $task->getSteps($act_uid); + + $step = new \ProcessMaker\Services\Api\Project\Activity\Step(); + + for ($i = 0; $i < count($response); $i++) { + $response[$i]["triggers"] = $step->doGetActivityStepTriggers($response[$i]["step_uid"], $act_uid, $prj_uid); + } + return $response; } catch (\Exception $e) { throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));