Merged master into dashboards2

This commit is contained in:
Dante Loayza
2015-04-21 13:47:11 -04:00
9 changed files with 221 additions and 59 deletions

View File

@@ -104,7 +104,16 @@ class Installer
$result['name']['message'] = ($result['isset']) ? 'Workspace already exist' : $result['name']['message'];
$result['name']['status'] = ($result['isset']) ? false : $result['name']['status'];
//print_r($result);
return Array('created' => G::var_compare(true, $result['path_data'], $result['database']['connection'], $result['name']['status'], $result['database']['version'], $result['database']['ao']['ao_db_wf']['status'], $result['database']['ao']['ao_db_rb']['status'], $result['database']['ao']['ao_db_rp']['status'], $result['admin']['username'], (($result['isset']) ? false : true), $result['admin']['password']), 'result' => $result
return Array('created' => G::var_compare(true,
$result['path_data'],
$result['database']['connection'],
$result['name']['status'],
$result['database']['version'],
$result['database']['ao']['ao_db_wf']['status'],
$result['admin']['username'],
(($result['isset']) ? false : true),
$result['admin']['password']),
'result' => $result
);
}

View File

@@ -12,12 +12,13 @@ class newSiteProxy extends HttpProxyController
public function testingNW ($params) {
if (isset( $_POST['NW_TITLE'] )) {
$action = (isset( $_POST['action'] )) ? trim( $_POST['action'] ) : 'test';
$ao_db_drop = (isset( $_POST['AO_DB_DROP'] )) ? true : false;
G::LoadClass( 'Installer' );
//G::LoadClass( 'json' );
$name = trim( $_POST['NW_TITLE'] );
$inst = new Installer();
if ($inst->isset_site($name)) {
if ($inst->isset_site($name) && $ao_db_drop !==true) {
$this->error = true;
return;
}
@@ -25,7 +26,6 @@ class newSiteProxy extends HttpProxyController
$pass = (isset( $_POST['NW_PASSWORD'] )) ? $_POST['NW_PASSWORD'] : 'admin';
$pass1 = (isset( $_POST['NW_PASSWORD2'] )) ? $_POST['NW_PASSWORD2'] : 'admin';
$ao_db_drop = (isset( $_POST['AO_DB_DROP'] )) ? true : false;
$ao_db_wf = (isset( $_POST['AO_DB_WF'] )) ? $_POST['AO_DB_WF'] : false;
$ao_db_rb = (isset( $_POST['AO_DB_RB'] )) ? $_POST['AO_DB_RB'] : false;

View File

@@ -11,71 +11,40 @@ if ($action == 'selfservice') {
}
/*----------------------------------********---------------------------------*/
$urlProxy = '/api/1.0/' . SYS_SYS . '/lists/';
$urlProxy = 'proxyNewCasesList';
switch ($action) {
case 'todo':
case 'draft':
$urlProxy .= 'inbox';
$urlProxy .= '?list=inbox';
break;
case 'sent':
$urlProxy .= 'participated';
$urlProxy .= '?list=participated';
break;
case 'search':
case 'participated-history':
$urlProxy = 'proxyCasesList';
break;
case 'paused':
$urlProxy .= 'paused';
$urlProxy .= '?list=paused';
break;
case 'cancel':
case 'canceled':
$urlProxy .= 'canceled';
$urlProxy .= '?list=canceled';
break;
case 'completed':
$urlProxy .= 'completed';
$urlProxy .= '?list=completed';
break;
case 'myinbox':
case 'my-inbox':
$urlProxy .= 'my-inbox';
$urlProxy .= '?list=myInbox';
break;
case 'unassigned':
$urlProxy = 'proxyCasesList';
$action = 'unassigned';
break;
}
$clientId = 'x-pm-local-client';
$client = getClientCredentials($clientId);
$authCode = getAuthorizationCode($client);
$debug = false; //System::isDebugMode();
$loader = Maveriks\Util\ClassLoader::getInstance();
$loader->add(PATH_TRUNK . 'vendor/bshaffer/oauth2-server-php/src/', "OAuth2");
$request = array(
'grant_type' => 'authorization_code',
'code' => $authCode
);
$server = array(
'REQUEST_METHOD' => 'POST'
);
$headers = array(
"PHP_AUTH_USER" => $client['CLIENT_ID'],
"PHP_AUTH_PW" => $client['CLIENT_SECRET'],
"Content-Type" => "multipart/form-data;",
"Authorization" => "Basic " . base64_encode($client['CLIENT_ID'] . ":" . $client['CLIENT_SECRET'])
);
$request = new \OAuth2\Request(array(), $request, array(), array(), array(), $server, null, $headers);
$oauthServer = new \ProcessMaker\Services\OAuth2\Server();
$response = $oauthServer->postToken($request, true);
$clientToken = $response->getParameters();
$clientToken["client_id"] = $client['CLIENT_ID'];
$clientToken["client_secret"] = $client['CLIENT_SECRET'];
/*----------------------------------********---------------------------------*/
G::LoadClass("BasePeer");
G::LoadClass("configuration");
//require_once ("classes/model/Fields.php");
@@ -195,9 +164,6 @@ $oHeadPublisher->assign( 'reassignColumns', $reassignColumns ); //sending the co
$oHeadPublisher->assign( 'action', $action ); //sending the action to make
$oHeadPublisher->assign( 'urlProxy', $urlProxy ); //sending the urlProxy to make
$oHeadPublisher->assign( 'caseListBuilder', $caseListBuilder ); //sending the caseListBuilder
/*----------------------------------********---------------------------------*/
$oHeadPublisher->assign( 'credentials', $clientToken ); //sending the SYS_SYS to make
/*----------------------------------********---------------------------------*/
$oHeadPublisher->assign( 'PMDateFormat', $dateFormat ); //sending the fields to get from proxy
$oHeadPublisher->assign( 'statusValues', $status ); //Sending the listing of status
$oHeadPublisher->assign( 'processValues', $processes ); //Sending the listing of processes

View File

@@ -0,0 +1,156 @@
<?php
G::LoadSystem('inputfilter');
$filter = new InputFilter();
$_GET = $filter->xssFilterHard($_GET);
$_REQUEST = $filter->xssFilterHard($_REQUEST);
$_SESSION['USER_LOGGED'] = $filter->xssFilterHard($_SESSION['USER_LOGGED']);
if (!isset($_SESSION['USER_LOGGED'])) {
$responseObject = new stdclass();
$responseObject->error = G::LoadTranslation('ID_LOGIN_AGAIN');
$responseObject->success = true;
$responseObject->lostSession = true;
print G::json_encode( $responseObject );
die();
}
try {
$userUid = $_SESSION['USER_LOGGED'];
$filters["paged"] = isset( $_REQUEST["paged"] ) ? $_REQUEST["paged"] : true;
$filters['count'] = isset( $_REQUEST['count'] ) ? $_REQUEST['count'] : true;
$filters["category"] = isset( $_REQUEST["category"] ) ? $_REQUEST["category"] : "";
$filters["process"] = isset( $_REQUEST["process"] ) ? $_REQUEST["process"] : "";
$filters["search"] = isset( $_REQUEST["search"] ) ? $_REQUEST["search"] : "";
$filters["filter"] = isset( $_REQUEST["filter"] ) ? $_REQUEST["filter"] : "";
$filters["dateFrom"] = (!empty( $_REQUEST["dateFrom"] )) ? substr( $_REQUEST["dateFrom"], 0, 10 ) : "";
$filters["dateTo"] = (!empty( $_REQUEST["dateTo"] )) ? substr( $_REQUEST["dateTo"], 0, 10 ) : "";
$filters["start"] = isset( $_REQUEST["start"] ) ? $_REQUEST["start"] : "0";
$filters["limit"] = isset( $_REQUEST["limit"] ) ? $_REQUEST["limit"] : "25";
$filters["sort"] = isset( $_REQUEST["sort"] ) ? $_REQUEST["sort"] : "";
$filters["dir"] = isset( $_REQUEST["dir"] ) ? $_REQUEST["dir"] : "DESC";
$filters["action"] = isset( $_REQUEST["action"] ) ? $_REQUEST["action"] : "";
$listName = isset( $_REQUEST["list"] ) ? $_REQUEST["list"] : "inbox";
// Select list
switch ($listName) {
case 'inbox':
$list = new ListInbox();
$listpeer = 'ListInboxPeer';
break;
case 'participated_history':
$list = new ListParticipatedHistory();
$listpeer = 'ListParticipatedHistoryPeer';
break;
case 'participated':
case 'participated_last':
$list = new ListParticipatedLast();
$listpeer = 'ListParticipatedLastPeer';
break;
case 'completed':
$list = new ListCompleted();
$listpeer = 'ListCompletedPeer';
break;
case 'paused':
$list = new ListPaused();
$listpeer = 'ListPausedPeer';
break;
case 'canceled':
$list = new ListCanceled();
$listpeer = 'ListCanceledPeer';
break;
case 'my_inbox':
$list = new ListMyInbox();
$listpeer = 'ListMyInboxPeer';
break;
case 'unassigned':
$list = new ListUnassigned();
$listpeer = 'ListUnassignedPeer';
break;
}
// Validate filters
$filters["start"] = (int)$filters["start"];
$filters["start"] = abs($filters["start"]);
if ($filters["start"] != 0) {
$filters["start"]+1;
}
$filters["limit"] = (int)$filters["limit"];
$filters["limit"] = abs($filters["limit"]);
if ($filters["limit"] == 0) {
G::LoadClass("configuration");
$conf = new Configurations();
$generalConfCasesList = $conf->getConfiguration('ENVIRONMENT_SETTINGS', '');
if (isset($generalConfCasesList['casesListRowNumber'])) {
$filters["limit"] = (int)$generalConfCasesList['casesListRowNumber'];
} else {
$filters["limit"] = 25;
}
} else {
$filters["limit"] = (int)$filters["limit"];
}
$filters["sort"] = G::toUpper($filters["sort"]);
$columnsList = $listpeer::getFieldNames(BasePeer::TYPE_FIELDNAME);
if (!(in_array($filters["sort"], $columnsList))) {
$filters["sort"] = '';
}
$filters["dir"] = G::toUpper($filters["dir"]);
if (!($filters["dir"] == 'DESC' || $filters["dir"] == 'ASC')) {
$filters["dir"] = 'DESC';
}
$result = $list->loadList($userUid, $filters);
if (!empty($result)) {
foreach ($result as &$value) {
if (isset($value['DEL_PREVIOUS_USR_UID'])) {
$value['PREVIOUS_USR_UID'] = $value['DEL_PREVIOUS_USR_UID'];
$value['PREVIOUS_USR_USERNAME'] = $value['DEL_PREVIOUS_USR_USERNAME'];
$value['PREVIOUS_USR_FIRSTNAME'] = $value['DEL_PREVIOUS_USR_FIRSTNAME'];
$value['PREVIOUS_USR_LASTNAME'] = $value['DEL_PREVIOUS_USR_LASTNAME'];
}
if (isset($value['DEL_DUE_DATE'])) {
$value['DEL_TASK_DUE_DATE'] = $value['DEL_DUE_DATE'];
}
if (isset($value['APP_PAUSED_DATE'])) {
$value['APP_UPDATE_DATE'] = $value['APP_PAUSED_DATE'];
}
if (isset($value['DEL_CURRENT_USR_USERNAME'])) {
$value['USR_USERNAME'] = $value['DEL_CURRENT_USR_USERNAME'];
$value['USR_FIRSTNAME'] = $value['DEL_CURRENT_USR_FIRSTNAME'];
$value['USR_LASTNAME'] = $value['DEL_CURRENT_USR_LASTNAME'];
$value['APP_UPDATE_DATE'] = $value['DEL_DELEGATE_DATE'];
}
if (isset($value['APP_STATUS'])) {
$value['APP_STATUS_LABEL'] = G::LoadTranslation( "ID_{$value['APP_STATUS']}" );
}
//$value = array_change_key_case($value, CASE_LOWER);
}
}
$filtersData = array();
$filtersData['start'] = $filters["start"];
$filtersData['limit'] = $filters["limit"];
$filtersData['sort'] = G::toLower($filters["sort"]);
$filtersData['dir'] = G::toLower($filters["dir"]);
$filtersData['cat_uid'] = $filters["category"];
$filtersData['pro_uid'] = $filters["process"];
$filtersData['search'] = $filters["search"];
$filtersData['date_from'] = $filters["dateFrom"];
$filtersData['date_to'] = $filters["dateTo"];
$response['filters'] = $filtersData;
$response['data'] = $result;
$filtersData['action'] = $filters["action"];
$response['totalCount'] = $list->countTotal($userUid, $filtersData);
echo G::json_encode($response);
} catch (Exception $e) {
$msg = array("error" => $e->getMessage());
echo G::json_encode($msg);
}

View File

@@ -116,6 +116,12 @@ class PmPdo implements \OAuth2\Storage\AuthorizationCodeInterface,
public function setAccessToken($access_token, $client_id, $user_id, $expires, $scope = null)
{
//Delete expired Access and Refresh Token
foreach (array($this->config["access_token_table"], $this->config["refresh_token_table"]) as $value) {
$stmt = $this->db->prepare(sprintf("DELETE FROM %s WHERE EXPIRES < %s", $value, "'" . date("Y-m-d H:i:s") . "'"));
$result = $stmt->execute();
}
// convert expires to datestring
$expires = date('Y-m-d H:i:s', $expires);
@@ -177,10 +183,8 @@ class PmPdo implements \OAuth2\Storage\AuthorizationCodeInterface,
$access_token->load($token);
$stmt = $this->db->prepare(sprintf('DELETE FROM %s WHERE ACCESS_TOKEN = :token', $this->config['access_token_table']));
$stmt->execute(compact('token'));
$stmt = $this->db->prepare(sprintf("DELETE FROM %s WHERE EXPIRES < %s", $this->config["refresh_token_table"], "'" . date("Y-m-d H:i:s") . "'"));
return $stmt->execute(compact('token'));
return $stmt->execute(compact("token"));
}
/* OAuth2_Storage_UserCredentialsInterface */

View File

@@ -734,7 +734,6 @@ Ext.onReady ( function() {
}
// Create HttpProxy instance, all CRUD requests will be directed to single proxy url.
if (caseListBuilder) {
var proxyCasesList = new Ext.data.HttpProxy({
@@ -747,13 +746,6 @@ Ext.onReady ( function() {
api: {
read : urlProxy
}
/*----------------------------------********---------------------------------*/
,method: 'GET'
,headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer ' + credentials.access_token
}
/*----------------------------------********---------------------------------*/
});
}

View File

@@ -41,6 +41,20 @@ leimnud.event.add(document.getElementById('form[USR_PASSWORD_MASK]'), 'keypress'
}
});
leimnud.event.add(document.getElementById('form[USER_ENV]'), 'keypress', function(event) {
var key;
if(window.event)
key = window.event.keyCode; //IE
else
key = event.which; //firefox
if(key == 13) {
document.getElementById('form[BSUBMIT]').click();
return true;
} else {
return true;
}
});
leimnud.event.add(document.getElementById('form[BSUBMIT]'), 'click', function() {
createCookie("pm_sys_sys", "{\"sys_sys\": \"" + getField("USER_ENV").value + "\"}", 365);

View File

@@ -48,6 +48,20 @@ leimnud.event.add(document.getElementById('form[USR_PASSWORD_MASK]'), 'keypress'
}
});
leimnud.event.add(document.getElementById('form[USER_ENV]'), 'keypress', function(event) {
var key;
if(window.event)
key = window.event.keyCode; //IE
else
key = event.which; //firefox
if(key == 13) {
document.getElementById('form[BSUBMIT]').click();
return true;
} else {
return true;
}
});
leimnud.event.add(document.getElementById('form[BSUBMIT]'), 'click', function() {
createCookie("pm_sys_sys", "{\"sys_sys\": \"" + getField("USER_ENV").value + "\"}", 365);

View File

@@ -692,16 +692,22 @@ ob_start();
// Rebuild the base Workflow translations if not exists
if (! is_file( PATH_LANGUAGECONT . 'translation.en' )) {
$pathFile = $filter->validateInput("classes/model/Translation.php",'path');
$pathFile = $filter->validateInput(PATH_CLASSES . "model" . PATH_SEP . "Translation.php", "path");
require_once ($pathFile);
$fields = Translation::generateFileTranslation( 'en' );
$pmTranslation = new Translation();
$fields = $pmTranslation->generateFileTranslation("en");
}
// TODO: Verify if the language set into url is defined in translations env.
if (SYS_LANG != 'en' && ! is_file( PATH_LANGUAGECONT . 'translation.' . SYS_LANG )) {
$pathFile = $filter->validateInput("classes/model/Translation.php",'path');
$pathFile = $filter->validateInput(PATH_CLASSES . "model" . PATH_SEP . "Translation.php", "path");
require_once ($pathFile);
$fields = Translation::generateFileTranslation( SYS_LANG );
$pmTranslation = new Translation();
$fields = $pmTranslation->generateFileTranslation(SYS_LANG);
}
// Setup plugins
@@ -894,6 +900,7 @@ if (! defined( 'EXECUTE_BY_CRON' )) {
$noLoginFiles[] = 'appFolderAjax';
$noLoginFiles[] = 'steps_Ajax';
$noLoginFiles[] = 'proxyCasesList';
$noLoginFiles[] = 'proxyNewCasesList';
$noLoginFiles[] = 'casesStartPage_Ajax';
$noLoginFiles[] = 'appProxy';
$noLoginFiles[] = 'cases_Ajax';