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);
$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'];

View File

@@ -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()));

View File

@@ -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
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)
) {
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,8 +255,12 @@ class Server implements iAuthenticate
}
}
if ($returnResponse) {
return $response;
} else {
$response->send();
}
}
/**
* Access verification method.
@@ -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(), $_COOKIE[$session->getSessionName()], time() + $lifetime, "/");
}
}