Merged in darojas/processmaker (pull request #793)

BUG 15705 'logged out while editing a process under the DESIGNER menu'. Add list of triggers of an activity in the endpoint get activities
This commit is contained in:
Erik Amaru Ortiz
2014-09-25 17:04:24 -04:00
3 changed files with 23 additions and 10 deletions

View File

@@ -49,7 +49,7 @@ class Designer extends Controller
$request = new \OAuth2\Request(array(), $request, array(), array(), array(), $server, null, $headers); $request = new \OAuth2\Request(array(), $request, array(), array(), array(), $server, null, $headers);
$oauthServer = new \ProcessMaker\Services\OAuth2\Server(); $oauthServer = new \ProcessMaker\Services\OAuth2\Server();
$response = $oauthServer->getServer()->handleTokenRequest($request); $response = $oauthServer->postToken($request, true);
$clientToken = $response->getParameters(); $clientToken = $response->getParameters();
$clientToken["client_id"] = $client['CLIENT_ID']; $clientToken["client_id"] = $client['CLIENT_ID'];
$clientToken["client_secret"] = $client['CLIENT_SECRET']; $clientToken["client_secret"] = $client['CLIENT_SECRET'];

View File

@@ -120,6 +120,13 @@ class Activity extends Api
$task->setArrayParamException(array("taskUid" => "act_uid", "stepUid" => "step_uid")); $task->setArrayParamException(array("taskUid" => "act_uid", "stepUid" => "step_uid"));
$response = $task->getSteps($act_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; return $response;
} catch (\Exception $e) { } catch (\Exception $e) {
throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage())); throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));

View File

@@ -222,23 +222,26 @@ class Server implements iAuthenticate
* *
* @format JsonFormat,UploadFormat * @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 // 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); $response = $this->server->handleTokenRequest($request);
$token = $response->getParameters(); $token = $response->getParameters();
if (array_key_exists('access_token', $token) if (array_key_exists('access_token', $token)
&& array_key_exists('refresh_token', $token) && array_key_exists('refresh_token', $token)
) { ) {
session_start(); if ($request == null) {
session_start();
}
$data = $this->storage->getAccessToken($token['access_token']); $data = $this->storage->getAccessToken($token['access_token']);
// verify if the client is our local PM Designer client // verify if the client is our local PM Designer client
if ($data['client_id'] == self::getPmClientId()) { 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"; //require_once "classes/model/PmoauthUserAccessTokens.php";
$userToken = new \PmoauthUserAccessTokens(); $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(); $pmAccessToken = new \PmoauthUserAccessTokens();
$session = $pmAccessToken->getSessionData($token['ACCESS_TOKEN']); $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 // increase the timeout for local php session cookie
$config = \Bootstrap::getSystemConfiguration(); $config = \Bootstrap::getSystemConfiguration();
if (isset($config['session.gc_maxlifetime'])) { if (isset($config['session.gc_maxlifetime'])) {
$lifetime = $config['session.gc_maxlifetime']; $lifetime = $config['session.gc_maxlifetime'];
} else { } else {
@@ -289,7 +295,7 @@ class Server implements iAuthenticate
$lifetime = 1440; $lifetime = 1440;
} }
setcookie($session->getSessionName(), $_COOKIE[$session->getSessionId()], time() + $lifetime, "/"); setcookie($session->getSessionName(), $_COOKIE[$session->getSessionName()], time() + $lifetime, "/");
} }
} }