Case counters are not working on Single Sign On Server HOR-1055 Case counters are not working on Single Sign On Server HOR-1055 Case counters are not working on Single Sign On Server
177 lines
6.2 KiB
PHP
Executable File
177 lines
6.2 KiB
PHP
Executable File
<?php
|
|
/**
|
|
* main.php Cases List main processor
|
|
*
|
|
* ProcessMaker Open Source Edition
|
|
* Copyright (C) 2004 - 2008 Colosa Inc.23
|
|
*
|
|
* This program is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU Affero General Public License as
|
|
* published by the Free Software Foundation, either version 3 of the
|
|
* License, or (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU Affero General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Affero General Public License
|
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
*
|
|
* For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
|
|
* Coral Gables, FL, 33134, USA, or email info@colosa.com.
|
|
*/
|
|
|
|
G::LoadClass( "configuration" );
|
|
|
|
$conf = new Configurations();
|
|
|
|
$oHeadPublisher = &headPublisher::getSingleton();
|
|
$oHeadPublisher->addExtJsScript( "cases/main", false ); //Adding a javascript file .js
|
|
$oHeadPublisher->addContent( "cases/main" ); //Adding a html file .html.
|
|
|
|
$keyMem = "USER_PREFERENCES" . $_SESSION["USER_LOGGED"];
|
|
$memcache = &PMmemcached::getSingleton( SYS_SYS );
|
|
|
|
if (($arrayConfig = $memcache->get( $keyMem )) === false) {
|
|
$conf->loadConfig( $x, "USER_PREFERENCES", "", "", $_SESSION["USER_LOGGED"], "" );
|
|
$arrayConfig = $conf->aConfig;
|
|
$memcache->set( $keyMem, $arrayConfig, PMmemcached::ONE_HOUR );
|
|
}
|
|
|
|
$confDefaultOption = "";
|
|
|
|
if (isset( $arrayConfig["DEFAULT_CASES_MENU"] )) {
|
|
//this user has a configuration record
|
|
$confDefaultOption = $arrayConfig["DEFAULT_CASES_MENU"];
|
|
|
|
global $G_TMP_MENU;
|
|
|
|
$oMenu = new Menu();
|
|
$oMenu->load( "cases" );
|
|
$defaultOption = "";
|
|
|
|
foreach ($oMenu->Id as $i => $id) {
|
|
if ($id == $confDefaultOption) {
|
|
$defaultOption = $oMenu->Options[$i];
|
|
break;
|
|
}
|
|
}
|
|
|
|
$defaultOption = ($defaultOption != "") ? $defaultOption : "casesListExtJs";
|
|
} else {
|
|
$defaultOption = "casesListExtJs";
|
|
$confDefaultOption = "CASES_INBOX";
|
|
}
|
|
|
|
if (isset($_SESSION['__OPEN_APPLICATION_UID__'])) {
|
|
$case = new \ProcessMaker\BusinessModel\Cases();
|
|
|
|
$confDefaultOption = 'CASES_SEARCH';
|
|
$action = 'search';
|
|
|
|
$arrayResult = $case->getStatusInfo($_SESSION['__OPEN_APPLICATION_UID__'], 0, $_SESSION['USER_LOGGED']);
|
|
$arrayDelIndex = [];
|
|
|
|
if (!empty($arrayResult)) {
|
|
$arrayDefaultOption = [
|
|
'TO_DO' => ['CASES_INBOX', 'todo'],
|
|
'DRAFT' => ['CASES_DRAFT', 'draft'],
|
|
'CANCELLED' => ['CASES_SENT', 'sent'],
|
|
'COMPLETED' => ['CASES_SENT', 'sent'],
|
|
'PARTICIPATED' => ['CASES_SENT', 'sent'],
|
|
'UNASSIGNED' => ['CASES_SELFSERVICE', 'unassigned'],
|
|
'PAUSED' => ['CASES_PAUSED', 'paused']
|
|
];
|
|
|
|
$confDefaultOption = $arrayDefaultOption[$arrayResult['APP_STATUS']][0];
|
|
$action = $arrayDefaultOption[$arrayResult['APP_STATUS']][1];
|
|
|
|
$arrayDelIndex = $arrayResult['DEL_INDEX'];
|
|
} else {
|
|
$arrayResult = $case->getStatusInfo($_SESSION['__OPEN_APPLICATION_UID__']);
|
|
|
|
$arrayDelIndex = $arrayResult['DEL_INDEX'];
|
|
}
|
|
|
|
if (count($arrayDelIndex) == 1) {
|
|
$defaultOption = '../cases/open?APP_UID=' . $_SESSION['__OPEN_APPLICATION_UID__'] .
|
|
'&DEL_INDEX=' . $arrayDelIndex[0] . '&action=' . $action;
|
|
} else {
|
|
$defaultOption = '../cases/casesListExtJs?action=' . $action .
|
|
'&openApplicationUid=' . $_SESSION['__OPEN_APPLICATION_UID__'];
|
|
}
|
|
|
|
unset($_SESSION['__OPEN_APPLICATION_UID__']);
|
|
} else {
|
|
if (isset($_GET['id'])) {
|
|
$defaultOption = '../cases/open?APP_UID=' . $_GET['id'] . '&DEL_INDEX=' . $_GET['i'];
|
|
|
|
if (isset($_GET['a'])) {
|
|
$defaultOption .= '&action=' . $_GET['a'];
|
|
}
|
|
}
|
|
}
|
|
|
|
$oServerConf = & serverConf::getSingleton();
|
|
if ($oServerConf->isRtl( SYS_LANG )) {
|
|
$regionTreePanel = 'east';
|
|
$regionDebug = 'west';
|
|
} else {
|
|
$regionTreePanel = 'west';
|
|
$regionDebug = 'east';
|
|
}
|
|
|
|
$urlProxy = 'casesMenuLoader?action=getAllCounters&r=';
|
|
/*----------------------------------********---------------------------------*/
|
|
$urlProxy = 'casesMenuLoader?action=getAllCountersEnterprise&r=';
|
|
/*----------------------------------********---------------------------------*/
|
|
|
|
$oHeadPublisher->assign('regionTreePanel', $regionTreePanel);
|
|
$oHeadPublisher->assign('regionDebug', $regionDebug);
|
|
$oHeadPublisher->assign("defaultOption", $defaultOption); //User menu permissions
|
|
$oHeadPublisher->assign('urlProxy', $urlProxy); //sending the urlProxy to make
|
|
$oHeadPublisher->assign("_nodeId", isset($confDefaultOption) ? $confDefaultOption : "PM_USERS"); //User menu permissions
|
|
$oHeadPublisher->assign("FORMATS", $conf->getFormats());
|
|
|
|
$_SESSION["current_ux"] = "NORMAL";
|
|
|
|
G::RenderPage("publish", "extJs");
|
|
|
|
/*----------------------------------********---------------------------------*/
|
|
function getClientCredentials($clientId)
|
|
{
|
|
$oauthQuery = new ProcessMaker\Services\OAuth2\PmPdo(getDsn());
|
|
return $oauthQuery->getClientDetails($clientId);
|
|
}
|
|
|
|
function getDsn()
|
|
{
|
|
list($host, $port) = strpos(DB_HOST, ':') !== false ? explode(':', DB_HOST) : array(DB_HOST, '');
|
|
$port = empty($port) ? '' : ";port=$port";
|
|
$dsn = DB_ADAPTER.':host='.$host.';dbname='.DB_NAME.$port;
|
|
|
|
return array('dsn' => $dsn, 'username' => DB_USER, 'password' => DB_PASS);
|
|
}
|
|
|
|
|
|
function getAuthorizationCode($client)
|
|
{
|
|
\ProcessMaker\Services\OAuth2\Server::setDatabaseSource(getDsn());
|
|
\ProcessMaker\Services\OAuth2\Server::setPmClientId($client['CLIENT_ID']);
|
|
|
|
$oauthServer = new \ProcessMaker\Services\OAuth2\Server();
|
|
$userId = $_SESSION['USER_LOGGED'];
|
|
$authorize = true;
|
|
$_GET = array_merge($_GET, array(
|
|
'response_type' => 'code',
|
|
'client_id' => $client['CLIENT_ID'],
|
|
'scope' => implode(' ', $oauthServer->getScope())
|
|
));
|
|
|
|
$response = $oauthServer->postAuthorize($authorize, $userId, true);
|
|
$code = substr($response->getHttpHeader('Location'), strpos($response->getHttpHeader('Location'), 'code=')+5, 40);
|
|
|
|
return $code;
|
|
}
|
|
/*----------------------------------********---------------------------------*/ |