From 6af41fcd3a4ca491fabf043956579d235316d2c6 Mon Sep 17 00:00:00 2001 From: dante Date: Fri, 11 Aug 2017 11:55:36 -0400 Subject: [PATCH 1/5] name Refactor --- workflow/engine/classes/Dashboards.php | 6 ------ workflow/engine/classes/DashletProcessMakerCommunity.php | 3 +-- workflow/engine/classes/DashletProcessMakerEnterprise.php | 3 +-- 3 files changed, 2 insertions(+), 10 deletions(-) diff --git a/workflow/engine/classes/Dashboards.php b/workflow/engine/classes/Dashboards.php index b2eff7192..5aefc8667 100644 --- a/workflow/engine/classes/Dashboards.php +++ b/workflow/engine/classes/Dashboards.php @@ -5,13 +5,7 @@ class Dashboards { public function getListDashboards ($start=0, $limit=20, $sort='', $dir='DESC', $search='') { - require_once 'classes/model/Dashboard.php'; - require_once 'classes/model/DashboardIndicator.php'; - require_once 'classes/model/Users.php'; - require_once 'classes/model/Groupwf.php'; - require_once 'classes/model/DashboardDasInd.php'; - $limit_size = isset($limit) ? $limit: 20; $start = isset($_REQUEST['start']) ? $_REQUEST['start'] : 0; $limit = isset($_REQUEST['limit']) ? $_REQUEST['limit'] : $limit_size; diff --git a/workflow/engine/classes/DashletProcessMakerCommunity.php b/workflow/engine/classes/DashletProcessMakerCommunity.php index 1b308255b..79eb061f0 100644 --- a/workflow/engine/classes/DashletProcessMakerCommunity.php +++ b/workflow/engine/classes/DashletProcessMakerCommunity.php @@ -1,9 +1,8 @@ Date: Fri, 11 Aug 2017 13:43:39 -0400 Subject: [PATCH 2/5] Second changes --- workflow/engine/bin/cron_single.php | 2 +- workflow/engine/classes/AppDocumentDrive.php | 4 +- .../engine/classes/DashletOpenVSCompleted.php | 296 ------------- workflow/engine/classes/LabelsGmail.php | 20 +- workflow/engine/classes/ObjectDocument.php | 25 -- workflow/engine/classes/P11835.php | 9 +- workflow/engine/classes/PMDashlet.php | 406 ------------------ workflow/engine/classes/PMDrive.php | 271 ------------ workflow/engine/classes/PMGoogleApi.php | 245 ----------- workflow/engine/classes/WorkspaceTools.php | 6 +- .../engine/classes/model/AppDelegation.php | 2 +- workflow/engine/controllers/dashboard.php | 8 +- workflow/engine/controllers/pmGmail.php | 6 +- .../cases/casesListExtJsRedirector.php | 2 +- .../methods/cases/cases_CatchExecute.php | 2 +- .../engine/methods/cases/cases_Derivate.php | 2 +- .../engine/methods/cases/derivatedGmail.php | 2 +- workflow/engine/methods/cases/open.php | 2 +- 18 files changed, 30 insertions(+), 1280 deletions(-) delete mode 100644 workflow/engine/classes/DashletOpenVSCompleted.php delete mode 100644 workflow/engine/classes/PMDashlet.php delete mode 100644 workflow/engine/classes/PMDrive.php delete mode 100644 workflow/engine/classes/PMGoogleApi.php diff --git a/workflow/engine/bin/cron_single.php b/workflow/engine/bin/cron_single.php index fac05dc1a..5a05112ae 100644 --- a/workflow/engine/bin/cron_single.php +++ b/workflow/engine/bin/cron_single.php @@ -980,7 +980,7 @@ function synchronizeGmailLabels() } $licensedFeatures = &PMLicensedFeatures::getSingleton(); if ($licensedFeatures->verifyfeature('7qhYmF1eDJWcEdwcUZpT0k4S0xTRStvdz09')) { - $pmGoogle = new PMGoogleApi(); + $pmGoogle = new PmGoogleApi(); if ($pmGoogle->getServiceGmailStatus()) { setExecutionMessage("Synchronize labels in Gmail"); $labGmail = new labelsGmail(); diff --git a/workflow/engine/classes/AppDocumentDrive.php b/workflow/engine/classes/AppDocumentDrive.php index 47d88d79c..7a79036ab 100644 --- a/workflow/engine/classes/AppDocumentDrive.php +++ b/workflow/engine/classes/AppDocumentDrive.php @@ -10,7 +10,7 @@ */class AppDocumentDrive { /** - * @var PMDrive $drive + * @var PmDrive $drive */ private $drive; /** @@ -31,7 +31,7 @@ */ public function __construct() { - $this->drive = new PMDrive(); + $this->drive = new PmDrive(); $status = $this->drive->getServiceDriveStatus(); $status = !empty($status) ? ($status == 1 ? true : false): false; $this->usersEmail = ''; diff --git a/workflow/engine/classes/DashletOpenVSCompleted.php b/workflow/engine/classes/DashletOpenVSCompleted.php deleted file mode 100644 index 9dec789b8..000000000 --- a/workflow/engine/classes/DashletOpenVSCompleted.php +++ /dev/null @@ -1,296 +0,0 @@ -xtype = 'arraystore'; - $contextTimeStore->fields = array ('id','value' - ); - $contextTimeStore->data = array (array ('TODAY', G::LoadTranslation('ID_TODAY') - ),array ('YESTERDAY', G::LoadTranslation('ID_YESTERDAY') - ),array ('THIS_WEEK', G::LoadTranslation('ID_THIS_WEEK') - ),array ('PREVIOUS_WEEK', G::LoadTranslation('ID_PREVIOUS_WEEK') - ),array ('THIS_MONTH', G::LoadTranslation('ID_THIS_MONTH') - ),array ('PREVIOUS_MONTH', G::LoadTranslation('ID_PREVIOUS_MONTH') - ),array ('THIS_YEAR', G::LoadTranslation('ID_THIS_YEAR') - ),array ('PREVIOUS_YEAR', G::LoadTranslation('ID_PREVIOUS_YEAR') - ) - ); - - $contextTime = new stdclass(); - $contextTime->xtype = 'combo'; - $contextTime->name = 'DAS_INS_CONTEXT_TIME'; - $contextTime->fieldLabel = G::LoadTranslation( 'ID_PERIOD' ); - $contextTime->editable = false; - $contextTime->width = 320; - $contextTime->store = $contextTimeStore; - $contextTime->mode = 'local'; - $contextTime->triggerAction = 'all'; - $contextTime->valueField = 'id'; - $contextTime->displayField = 'value'; - $contextTime->value = 'TODAY'; - $additionalFields[] = $contextTime; - - $redFrom = new stdclass(); - $redFrom->xtype = 'numberfield'; - $redFrom->name = 'DAS_RED_FROM'; - $redFrom->fieldLabel = G::LoadTranslation( 'ID_RED_STARTS_IN' ); - $redFrom->width = 50; - $redFrom->maxLength = 3; - $redFrom->maxValue = 100; - $redFrom->minValue = 0; - $redFrom->allowBlank = false; - $redFrom->value = 0; - $additionalFields[] = $redFrom; - - $redTo = new stdclass(); - $redTo->xtype = 'numberfield'; - $redTo->name = 'DAS_RED_TO'; - $redTo->fieldLabel = G::LoadTranslation( 'ID_RED_ENDS_IN' ); - $redTo->width = 50; - $redTo->maxLength = 3; - $redTo->maxValue = 100; - $redTo->minValue = 0; - $redTo->allowBlank = false; - $redTo->value = 30; - $additionalFields[] = $redTo; - - $yellowFrom = new stdclass(); - $yellowFrom->xtype = 'numberfield'; - $yellowFrom->name = 'DAS_YELLOW_FROM'; - $yellowFrom->fieldLabel = G::LoadTranslation( 'ID_YELLOW_STARTS_IN' ); - $yellowFrom->width = 50; - $yellowFrom->maxLength = 3; - $yellowFrom->maxValue = 100; - $yellowFrom->minValue = 0; - $yellowFrom->allowBlank = false; - $yellowFrom->value = 30; - $additionalFields[] = $yellowFrom; - - $yellowTo = new stdclass(); - $yellowTo->xtype = 'numberfield'; - $yellowTo->name = 'DAS_YELLOW_TO'; - $yellowTo->fieldLabel = G::LoadTranslation( 'ID_YELLOW_ENDS_IN' ); - $yellowTo->width = 50; - $yellowTo->maxLength = 3; - $yellowTo->maxValue = 100; - $yellowTo->minValue = 0; - $yellowTo->allowBlank = false; - $yellowTo->value = 50; - $additionalFields[] = $yellowTo; - - $greenFrom = new stdclass(); - $greenFrom->xtype = 'numberfield'; - $greenFrom->name = 'DAS_GREEN_FROM'; - $greenFrom->fieldLabel = G::LoadTranslation( 'ID_GREEN_STARTS_IN' ); - $greenFrom->width = 50; - $greenFrom->maxLength = 3; - $greenFrom->maxValue = 100; - $greenFrom->minValue = 0; - $greenFrom->allowBlank = false; - $greenFrom->value = 50; - $additionalFields[] = $greenFrom; - - $greenTo = new stdclass(); - $greenTo->xtype = 'numberfield'; - $greenTo->name = 'DAS_GREEN_TO'; - $greenTo->fieldLabel = G::LoadTranslation( 'ID_GREEN_ENDS_IN' ); - $greenTo->width = 50; - $greenTo->maxLength = 3; - $greenTo->maxValue = 100; - $greenTo->minValue = 0; - $greenTo->allowBlank = false; - $greenTo->value = 100; - $additionalFields[] = $greenTo; - - return $additionalFields; - } - - public static function getXTemplate ($className) - { - return ""; - } - - public function setup ($config) - { - $this->redFrom = isset( $config['DAS_RED_FROM'] ) ? (int) $config['DAS_RED_FROM'] : 0; - $this->redTo = isset( $config['DAS_RED_TO'] ) ? (int) $config['DAS_RED_TO'] : 30; - $this->yellowFrom = isset( $config['DAS_YELLOW_FROM'] ) ? (int) $config['DAS_YELLOW_FROM'] : 30; - $this->yellowTo = isset( $config['DAS_YELLOW_TO'] ) ? (int) $config['DAS_YELLOW_TO'] : 50; - $this->greenFrom = isset( $config['DAS_GREEN_FROM'] ) ? (int) $config['DAS_GREEN_FROM'] : 50; - $this->greenTo = isset( $config['DAS_GREEN_TO'] ) ? (int) $config['DAS_GREEN_TO'] : 100; - - $thisYear = date( 'Y' ); - $lastYear = $thisYear - 1; - $thisMonth = date( 'M' ); - $lastMonth = date( 'M', strtotime( "31 days ago" ) ); - - $todayIni = date( 'Y-m-d H:i:s', strtotime( "today 00:00:00" ) ); - $todayEnd = date( 'Y-m-d H:i:s', strtotime( "today 23:59:59" ) ); - $yesterdayIni = date( 'Y-m-d H:i:s', strtotime( "yesterday 00:00:00" ) ); - $yesterdayEnd = date( 'Y-m-d H:i:s', strtotime( "yesterday 23:59:59" ) ); - $thisWeekIni = date( 'Y-m-d H:i:s', strtotime( "monday 00:00:00" ) ); - $thisWeekEnd = date( 'Y-m-d H:i:s', strtotime( "sunday 23:59:59" ) ); - $previousWeekIni = date( 'Y-m-d H:i:s', strtotime( "last monday 00:00:00" ) ); - $previousWeekEnd = date( 'Y-m-d H:i:s', strtotime( "last sunday 23:59:59" ) ); - - $thisMonthIni = date( 'Y-m-d H:i:s', strtotime( "$thisMonth 1st 00:00:00" ) ); - $thisMonthEnd = date( 'Y-m-d H:i:s', strtotime( "$thisMonth last day 23:59:59" ) ); - - $previousMonthIni = date( 'Y-m-d H:i:s', strtotime( "$lastMonth 1st 00:00:00" ) ); - $previousMonthEnd = date( 'Y-m-d H:i:s', strtotime( "$lastMonth last day 23:59:59" ) ); - - $thisYearIni = date( 'Y-m-d H:i:s', strtotime( "jan $thisYear 00:00:00" ) ); - $thisYearEnd = date( 'Y-m-d H:i:s', strtotime( "Dec 31 $thisYear 23:59:59" ) ); - $previousYearIni = date( 'Y-m-d H:i:s', strtotime( "jan $lastYear 00:00:00" ) ); - $previousYearEnd = date( 'Y-m-d H:i:s', strtotime( "Dec 31 $lastYear 23:59:59" ) ); - - if (! isset( $config['DAS_INS_CONTEXT_TIME'] )) { - $config['DAS_INS_CONTEXT_TIME'] = 'TODAY'; - } - - switch ($config['DAS_INS_CONTEXT_TIME']) { - case 'TODAY': - $dateIni = $todayIni; - $dateEnd = $todayEnd; - break; - case 'YESTERDAY': - $dateIni = $yesterdayIni; - $dateEnd = $yesterdayEnd; - break; - case 'THIS_WEEK': - $dateIni = $thisWeekIni; - $dateEnd = $thisWeekEnd; - break; - case 'PREVIOUS_WEEK': - $dateIni = $previousWeekIni; - $dateEnd = $previousWeekEnd; - break; - case 'THIS_MONTH': - $dateIni = $todayIni; - $dateEnd = $todayEnd; - break; - case 'PREVIOUS_MONTH': - $dateIni = $todayIni; - $dateEnd = $todayEnd; - break; - case 'THIS_QUARTER': - $dateIni = $todayIni; - $dateEnd = $todayEnd; - break; - case 'PREVIOUS_QUARTER': - $dateIni = $todayIni; - $dateEnd = $todayEnd; - break; - case 'THIS_YEAR': - $dateIni = $thisYearIni; - $dateEnd = $thisYearEnd; - break; - case 'PREVIOUS_YEAR': - $dateIni = $previousYearIni; - $dateEnd = $previousYearEnd; - break; - } - - $con = Propel::getConnection( "workflow" ); - $stmt = $con->createStatement(); - $sql = "select count(*) as CANT from APPLICATION where APP_STATUS in ( 'DRAFT', 'TO_DO' ) "; - $sql .= "and APP_CREATE_DATE > '$dateIni' and APP_CREATE_DATE <= '$dateEnd' "; - $rs = $stmt->executeQuery( $sql, ResultSet::FETCHMODE_ASSOC ); - $rs->next(); - $row = $rs->getRow(); - $casesTodo = $row['CANT']; - - $stmt = $con->createStatement(); - $sql = "select count(*) as CANT from APPLICATION where APP_STATUS = 'COMPLETED' "; - $sql .= "and APP_CREATE_DATE > '$dateIni' and APP_CREATE_DATE <= '$dateEnd' "; - $rs = $stmt->executeQuery( $sql, ResultSet::FETCHMODE_ASSOC ); - $rs->next(); - $row = $rs->getRow(); - $casesCompleted = $row['CANT']; - if ($casesCompleted + $casesTodo != 0) { - $this->value = $casesCompleted / ($casesCompleted + $casesTodo) * 100; - } else { - $this->value = 0; - } - $this->open = $casesCompleted; - $this->completed = $casesCompleted + $casesTodo; - switch ($config['DAS_INS_CONTEXT_TIME']) { - case 'TODAY': - $this->centerLabel = G::LoadTranslation('ID_TODAY'); - break; - case 'YESTERDAY': - $this->centerLabel = G::LoadTranslation('ID_YESTERDAY'); - break; - case 'THIS_WEEK': - $this->centerLabel = G::LoadTranslation('ID_THIS_WEEK'); - break; - case 'PREVIOUS_WEEK': - $this->centerLabel = G::LoadTranslation('ID_PREVIOUS_WEEK'); - break; - case 'THIS_MONTH': - $this->centerLabel = G::LoadTranslation('ID_THIS_MONTH'); - break; - case 'PREVIOUS_MONTH': - $this->centerLabel = G::LoadTranslation('ID_PREVIOUS_MONTH'); - break; - case 'THIS_QUARTER': - $this->centerLabel = G::LoadTranslation('ID_THIS_QUARTER'); - break; - case 'PREVIOUS_QUARTER': - $this->centerLabel = G::LoadTranslation('ID_PREVIOUS_QUARTER'); - break; - case 'THIS_YEAR': - $this->centerLabel = G::LoadTranslation('ID_THIS_YEAR'); - break; - case 'PREVIOUS_YEAR': - $this->centerLabel = G::LoadTranslation('ID_PREVIOUS_YEAR'); - break; - default: - $this->centerLabel = ''; - break; - } - return true; - } - - public function render ($width = 300) - { - $g = new pmGauge(); - $g->w = $width; - $g->value = $this->value; - - $g->redFrom = $this->redFrom; - $g->redTo = $this->redTo; - $g->yellowFrom = $this->yellowFrom; - $g->yellowTo = $this->yellowTo; - $g->greenFrom = $this->greenFrom; - $g->greenTo = $this->greenTo; - - $g->centerLabel = $this->centerLabel; - $g->open = $this->open; - $g->completed = $this->completed; - $g->render(); - } - -} \ No newline at end of file diff --git a/workflow/engine/classes/LabelsGmail.php b/workflow/engine/classes/LabelsGmail.php index 9be041eea..38ac6aab3 100644 --- a/workflow/engine/classes/LabelsGmail.php +++ b/workflow/engine/classes/LabelsGmail.php @@ -98,9 +98,9 @@ class labelsGmail //The Subject to search the email $subject = "[PM] " . $proName . " (" . $index . ") Case: " . $appNumber; - $pmGoogle = new PMGoogleApi(); + $pmGoogle = new PmGoogleApi(); $pmGoogle->setUser($mail); - $pmGoogle->setScope(PMGoogleApi::GMAIL_MODIFY); + $pmGoogle->setScope(PmGoogleApi::GMAIL_MODIFY); $client = $pmGoogle->serviceClient(); $service = new Google_Service_Gmail($client); $labelsIds = $this->getLabelsIds($service); @@ -148,9 +148,9 @@ class labelsGmail //The Subject to search the email $subject = "[PM] " . $proName . " (" . $index . ") Case: " . $appNumber; - $pmGoogle = new PMGoogleApi(); + $pmGoogle = new PmGoogleApi(); $pmGoogle->setUser($mail); - $pmGoogle->setScope(PMGoogleApi::GMAIL_MODIFY); + $pmGoogle->setScope(PmGoogleApi::GMAIL_MODIFY); $client = $pmGoogle->serviceClient(); $service = new Google_Service_Gmail($client); $labelsIds = $this->getLabelsIds($service); @@ -202,11 +202,11 @@ class labelsGmail //The Subject to search the email $subject = "[PM] " . $proName . " (" . $index . ") Case: " . $appNumber; - $pmGoogle = new PMGoogleApi(); + $pmGoogle = new PmGoogleApi(); $pmGoogle->setUser($mail); - $pmGoogle->setScope(PMGoogleApi::GMAIL_MODIFY); + $pmGoogle->setScope(PmGoogleApi::GMAIL_MODIFY); $client = $pmGoogle->serviceClient(); $service = new Google_Service_Gmail($client); @@ -281,9 +281,9 @@ class labelsGmail //The Subject to search the email $subject = "[PM] " . $proName . " (" . $index . ") Case: " . $appNumber; - $pmGoogle = new PMGoogleApi(); + $pmGoogle = new PmGoogleApi(); $pmGoogle->setUser($mail); - $pmGoogle->setScope(PMGoogleApi::GMAIL_MODIFY); + $pmGoogle->setScope(PmGoogleApi::GMAIL_MODIFY); $client = $pmGoogle->serviceClient(); $service = new Google_Service_Gmail($client); $labelsIds = $this->getLabelsIds($service); @@ -329,11 +329,11 @@ class labelsGmail */ public function deletePMGmailLabels($mail) { - $pmGoogle = new PMGoogleApi(); + $pmGoogle = new PmGoogleApi(); $pmGoogle->setUser($mail); - $pmGoogle->setScope(PMGoogleApi::GMAIL_MODIFY); + $pmGoogle->setScope(PmGoogleApi::GMAIL_MODIFY); $client = $pmGoogle->serviceClient(); $service = new Google_Service_Gmail($client); diff --git a/workflow/engine/classes/ObjectDocument.php b/workflow/engine/classes/ObjectDocument.php index 2723bcab2..f8f746429 100644 --- a/workflow/engine/classes/ObjectDocument.php +++ b/workflow/engine/classes/ObjectDocument.php @@ -1,29 +1,4 @@ . - * - * For more information, contact Colosa Inc, 2566 Le Jeune Rd., - * Coral Gables, FL, 33134, USA, or email info@colosa.com. - */ - /** * Object Document class diff --git a/workflow/engine/classes/P11835.php b/workflow/engine/classes/P11835.php index d4a8dad1a..5564c6297 100644 --- a/workflow/engine/classes/P11835.php +++ b/workflow/engine/classes/P11835.php @@ -1,13 +1,6 @@ dashletInstance = $this->loadDashletInstance( $dasInsUid ); - - if (! isset( $this->dashletInstance['DAS_CLASS'] )) { - throw new Exception( G::LoadTranslation( 'ID_ERROR_OBJECT_NOT_EXISTS' ) . ' - Probably the plugin related is disabled' ); - } - $className = $this->dashletInstance['DAS_CLASS']; - - if (! class_exists( $className )) { - self::setIncludePath(); - require_once 'classes' . PATH_SEP . 'class.' . $className . '.php'; - } - $this->dashletObject = new $className(); - $this->dashletObject->setup( $this->dashletInstance ); - } catch (Exception $error) { - throw $error; - } - } - - public function render ($width = 300) - { - try { - if (is_null( $this->dashletObject )) { - throw new Exception( 'Please call to the function "setup" before call the function "render".' ); - } - $this->dashletObject->render( $width ); - } catch (Exception $error) { - throw $error; - } - } - - // Getter and Setters - - - public function getDashletInstance () - { - return $this->dashletInstance; - } - - public function getDashletObject () - { - return $this->dashletObject; - } - - // Own functions - - - public function getDashletsInstances ($start = null, $limit = null) - { - try { - $dashletsInstances = array (); - $criteria = new Criteria( 'workflow' ); - $criteria->addSelectColumn( '*' ); - $criteria->addJoin( DashletInstancePeer::DAS_UID, DashletPeer::DAS_UID, Criteria::INNER_JOIN ); - if (! is_null( $start )) { - $criteria->setOffset( $start ); - } - if (! is_null( $limit )) { - $criteria->setLimit( $limit ); - } - $dataset = DashletInstancePeer::doSelectRS( $criteria ); - $dataset->setFetchmode( ResultSet::FETCHMODE_ASSOC ); - $dataset->next(); - while ($row = $dataset->getRow()) { - $arrayField = unserialize( $row["DAS_INS_ADDITIONAL_PROPERTIES"] ); - - if (strstr($row['DAS_TITLE'], '*')) { - $row['DAS_TITLE'] = G::LoadTranslationPlugin('advancedDashboards', str_replace("*","",$row['DAS_TITLE'])); - } - $row['DAS_INS_STATUS_LABEL'] = ($row['DAS_INS_STATUS'] == '1' ? G::LoadTranslation( 'ID_ACTIVE' ) : G::LoadTranslation( 'ID_INACTIVE' )); - $row['DAS_INS_TITLE'] = (isset( $arrayField['DAS_INS_TITLE'] ) && ! empty( $arrayField['DAS_INS_TITLE'] )) ? $arrayField['DAS_INS_TITLE'] : ''; - if (! class_exists( $row['DAS_CLASS'] )) { - self::setIncludePath(); - @include 'classes' . PATH_SEP . 'class.' . $row['DAS_CLASS'] . '.php'; - if (! class_exists( $row['DAS_CLASS'] )) { - $dataset->next(); - continue; - } - } - eval( "\$row['DAS_VERSION'] = defined('" . $row['DAS_CLASS'] . "::version') ? " . $row['DAS_CLASS'] . "::version : \$row['DAS_VERSION'];" ); - - switch ($row['DAS_INS_OWNER_TYPE']) { - case 'EVERYBODY': - $row['DAS_INS_OWNER_TITLE'] = G::LoadTranslation( 'ID_ALL_USERS' ); - break; - case 'USER': - require_once 'classes/model/Users.php'; - $userInstance = new Users(); - try { - $user = $userInstance->load( $row['DAS_INS_OWNER_UID'] ); - $row['DAS_INS_OWNER_TITLE'] = $user['USR_FIRSTNAME'] . ' ' . $user['USR_LASTNAME']; - } catch (Exception $error) { - $this->remove( $row['DAS_INS_UID'] ); - $row['DAS_INS_UID'] = ''; - } - break; - case 'DEPARTMENT': - require_once 'classes/model/Department.php'; - $departmentInstance = new Department(); - try { - $department = $departmentInstance->load( $row['DAS_INS_OWNER_UID'] ); - $row['DAS_INS_OWNER_TITLE'] = $department['DEP_TITLE']; - } catch (Exception $error) { - $this->remove( $row['DAS_INS_UID'] ); - $row['DAS_INS_UID'] = ''; - } - break; - case 'GROUP': - require_once 'classes/model/Groupwf.php'; - $groupInstance = new Groupwf(); - try { - $group = $groupInstance->load( $row['DAS_INS_OWNER_UID'] ); - $row['DAS_INS_OWNER_TITLE'] = $group['GRP_TITLE']; - } catch (Exception $error) { - $this->remove( $row['DAS_INS_UID'] ); - $row['DAS_INS_UID'] = ''; - } - break; - default: - $row['DAS_INS_OWNER_TITLE'] = $row['DAS_INS_OWNER_TYPE']; - break; - } - if ($row['DAS_INS_UID'] != '') { - $dashletsInstances[] = $row; - } - $dataset->next(); - } - - return $dashletsInstances; - } catch (Exception $error) { - throw $error; - } - } - - public function loadDashletInstance ($dasInsUid) - { - try { - $dashletInstance = $this->load( $dasInsUid ); - //Load data from the serialized field - $dashlet = new Dashlet(); - $dashletFields = $dashlet->load( $dashletInstance['DAS_UID'] ); - if (is_null( $dashletFields )) { - $dashletFields = array (); - } - return array_merge( $dashletFields, $dashletInstance ); - } catch (Exception $error) { - throw $error; - } - } - - public function saveDashletInstance ($data) - { - try { - $this->createOrUpdate( $data ); - } catch (Exception $error) { - throw $error; - } - } - - public function deleteDashletInstance ($dasInsUid) - { - try { - $this->remove( $dasInsUid ); - } catch (Exception $error) { - throw $error; - } - } - - public function getDashletsInstancesForUser ($userUid) - { - try { - $dashletsInstances = array (); - // Include required classes - require_once 'classes/model/Department.php'; - require_once 'classes/model/Users.php'; - // Check for "public" dashlets - $criteria = new Criteria( 'workflow' ); - $criteria->addSelectColumn( DashletInstancePeer::DAS_INS_UID ); - $criteria->addSelectColumn( DashletInstancePeer::DAS_INS_ADDITIONAL_PROPERTIES ); - $criteria->addSelectColumn( DashletPeer::DAS_CLASS ); - $criteria->addSelectColumn( DashletPeer::DAS_TITLE ); - $criteria->add( DashletInstancePeer::DAS_INS_STATUS, '1' ); - $criteria->addJoin( DashletInstancePeer::DAS_UID, DashletPeer::DAS_UID, Criteria::INNER_JOIN ); - $criteria->add( DashletInstancePeer::DAS_INS_OWNER_TYPE, 'EVERYBODY' ); - $dataset = DashletInstancePeer::doSelectRS( $criteria ); - $dataset->setFetchmode( ResultSet::FETCHMODE_ASSOC ); - $dataset->next(); - while ($row = $dataset->getRow()) { - if (! isset( $dashletsInstances[$row['DAS_INS_UID']] )) { - $arrayField = unserialize( $row["DAS_INS_ADDITIONAL_PROPERTIES"] ); - - if (self::verifyPluginDashlet($row['DAS_CLASS'])) { - $row['DAS_XTEMPLATE'] = $this->getXTemplate( $row['DAS_CLASS'] ); - $row["DAS_TITLE"] = (isset( $arrayField["DAS_INS_TITLE"] ) && ! empty( $arrayField["DAS_INS_TITLE"] )) ? $arrayField["DAS_INS_TITLE"] : $row["DAS_TITLE"]; - $row["DAS_TITLE"] = $row["DAS_TITLE"] . ((isset( $arrayField["DAS_INS_SUBTITLE"] ) && ! empty( $arrayField["DAS_INS_SUBTITLE"] )) ? str_replace( "@@USR_USERNAME", $_SESSION["USR_USERNAME"], $arrayField["DAS_INS_SUBTITLE"] ) : null); - - $dashletsInstances[$row['DAS_INS_UID']] = $row; - } - } - $dataset->next(); - } - // Check for the direct assignments - $usersInstance = new Users(); - $criteria = new Criteria( 'workflow' ); - $criteria->addSelectColumn( DashletInstancePeer::DAS_INS_UID ); - $criteria->addSelectColumn( DashletInstancePeer::DAS_INS_ADDITIONAL_PROPERTIES ); - $criteria->addSelectColumn( DashletPeer::DAS_CLASS ); - $criteria->addSelectColumn( DashletPeer::DAS_TITLE ); - $criteria->addJoin( DashletInstancePeer::DAS_UID, DashletPeer::DAS_UID, Criteria::INNER_JOIN ); - $criteria->add( DashletInstancePeer::DAS_INS_STATUS, '1' ); - $criteria->add( DashletInstancePeer::DAS_INS_OWNER_TYPE, 'USER' ); - $criteria->add( DashletInstancePeer::DAS_INS_OWNER_UID, $userUid ); - $dataset = DashletInstancePeer::doSelectRS( $criteria ); - $dataset->setFetchmode( ResultSet::FETCHMODE_ASSOC ); - $dataset->next(); - while ($row = $dataset->getRow()) { - if (! isset( $dashletsInstances[$row['DAS_INS_UID']] )) { - $arrayField = unserialize( $row["DAS_INS_ADDITIONAL_PROPERTIES"] ); - - if (self::verifyPluginDashlet($row['DAS_CLASS'])) { - $row['DAS_XTEMPLATE'] = $this->getXTemplate( $row['DAS_CLASS'] ); - $row["DAS_TITLE"] = (isset( $arrayField["DAS_INS_TITLE"] ) && ! empty( $arrayField["DAS_INS_TITLE"] )) ? $arrayField["DAS_INS_TITLE"] : $row["DAS_TITLE"]; - $row["DAS_TITLE"] = $row["DAS_TITLE"] . ((isset( $arrayField["DAS_INS_SUBTITLE"] ) && ! empty( $arrayField["DAS_INS_SUBTITLE"] )) ? str_replace( "@@USR_USERNAME", $_SESSION["USR_USERNAME"], $arrayField["DAS_INS_SUBTITLE"] ) : null); - - $dashletsInstances[$row['DAS_INS_UID']] = $row; - } - } - $dataset->next(); - } - // Check for department assigments - $departmentInstance = new Department(); - $departments = $departmentInstance->getDepartmentsForUser( $userUid ); - foreach ($departments as $depUid => $department) { - $criteria = new Criteria( 'workflow' ); - $criteria->addSelectColumn( DashletInstancePeer::DAS_INS_UID ); - $criteria->addSelectColumn( DashletInstancePeer::DAS_INS_ADDITIONAL_PROPERTIES ); - $criteria->addSelectColumn( DashletPeer::DAS_CLASS ); - $criteria->addSelectColumn( DashletPeer::DAS_TITLE ); - $criteria->addJoin( DashletInstancePeer::DAS_UID, DashletPeer::DAS_UID, Criteria::INNER_JOIN ); - $criteria->add( DashletInstancePeer::DAS_INS_STATUS, '1' ); - $criteria->add( DashletInstancePeer::DAS_INS_OWNER_TYPE, 'DEPARTMENT' ); - $criteria->add( DashletInstancePeer::DAS_INS_OWNER_UID, $depUid ); - $dataset = DashletInstancePeer::doSelectRS( $criteria ); - $dataset->setFetchmode( ResultSet::FETCHMODE_ASSOC ); - $dataset->next(); - while ($row = $dataset->getRow()) { - if (! isset( $dashletsInstances[$row['DAS_INS_UID']] )) { - $arrayField = unserialize( $row["DAS_INS_ADDITIONAL_PROPERTIES"] ); - - if (self::verifyPluginDashlet($row["DAS_CLASS"])) { - $row['DAS_XTEMPLATE'] = $this->getXTemplate( $row['DAS_CLASS'] ); - $row["DAS_TITLE"] = (isset( $arrayField["DAS_INS_TITLE"] ) && ! empty( $arrayField["DAS_INS_TITLE"] )) ? $arrayField["DAS_INS_TITLE"] : $row["DAS_TITLE"]; - $row["DAS_TITLE"] = $row["DAS_TITLE"] . ((isset( $arrayField["DAS_INS_SUBTITLE"] ) && ! empty( $arrayField["DAS_INS_SUBTITLE"] )) ? str_replace( "@@USR_USERNAME", $_SESSION["USR_USERNAME"], $arrayField["DAS_INS_SUBTITLE"] ) : null); - - $dashletsInstances[$row['DAS_INS_UID']] = $row; - } - } - $dataset->next(); - } - } - // Check for group assignments - $groupsInstance = new Groups(); - $groups = $groupsInstance->getGroupsForUser( $userUid ); - foreach ($groups as $grpUid => $group) { - $criteria = new Criteria( 'workflow' ); - $criteria->addSelectColumn( DashletInstancePeer::DAS_INS_UID ); - $criteria->addSelectColumn( DashletInstancePeer::DAS_INS_ADDITIONAL_PROPERTIES ); - $criteria->addSelectColumn( DashletPeer::DAS_CLASS ); - $criteria->addSelectColumn( DashletPeer::DAS_TITLE ); - $criteria->addJoin( DashletInstancePeer::DAS_UID, DashletPeer::DAS_UID, Criteria::INNER_JOIN ); - $criteria->add( DashletInstancePeer::DAS_INS_STATUS, '1' ); - $criteria->add( DashletInstancePeer::DAS_INS_OWNER_TYPE, 'GROUP' ); - $criteria->add( DashletInstancePeer::DAS_INS_OWNER_UID, $grpUid ); - $dataset = DashletInstancePeer::doSelectRS( $criteria ); - $dataset->setFetchmode( ResultSet::FETCHMODE_ASSOC ); - $dataset->next(); - while ($row = $dataset->getRow()) { - if (! isset( $dashletsInstances[$row['DAS_INS_UID']] )) { - $arrayField = unserialize( $row["DAS_INS_ADDITIONAL_PROPERTIES"] ); - - if (self::verifyPluginDashlet($row["DAS_CLASS"])) { - $row['DAS_XTEMPLATE'] = $this->getXTemplate( $row['DAS_CLASS'] ); - $row["DAS_TITLE"] = (isset( $arrayField["DAS_INS_TITLE"] ) && ! empty( $arrayField["DAS_INS_TITLE"] )) ? $arrayField["DAS_INS_TITLE"] : $row["DAS_TITLE"]; - $row["DAS_TITLE"] = $row["DAS_TITLE"] . ((isset( $arrayField["DAS_INS_SUBTITLE"] ) && ! empty( $arrayField["DAS_INS_SUBTITLE"] )) ? str_replace( "@@USR_USERNAME", $_SESSION["USR_USERNAME"], $arrayField["DAS_INS_SUBTITLE"] ) : null); - - $dashletsInstances[$row['DAS_INS_UID']] = $row; - } - } - $dataset->next(); - } - } - foreach ($dashletsInstances as $key => $field) { - $dashletsInstances[$key]['DAS_TITLE'] = htmlentities($field['DAS_TITLE'], ENT_QUOTES, 'UTF-8') . ''; - } - // Check for role assigments - // ToDo: Next release - // Check for permission assigments - // ToDo: Next release - return array_values( $dashletsInstances ); - } catch (Exception $error) { - throw $error; - } - } - - public static function getXTemplate ($className) - { - try { - if (! class_exists( $className )) { - self::setIncludePath(); - require_once 'classes' . PATH_SEP . 'class.' . $className . '.php'; - } - - eval( "\$additionalFields = $className::getXTemplate(\$className);" ); - return $additionalFields; - } catch (Exception $error) { - throw $error; - } - } - - public static function verifyPluginDashlet ($className) - { - // 1-- if name class is in core - $fileExist = PATH_CORE . 'classes' . PATH_SEP . 'class.' . $className . '.php'; - if (file_exists($fileExist)) { - return true; - } - - // 2-- if name class is in plugin - - //---- verify the name plugin of the class - $pluginName = ''; - $oPluginRegistry = PluginRegistry::loadSingleton(); - $pluginsDashlets = $oPluginRegistry->getDashlets(); - - foreach ($pluginsDashlets as $pluginDashlet) { - $fileExist = PATH_PLUGINS . $pluginDashlet . PATH_SEP . 'classes' . PATH_SEP . 'class.' . $className . '.php'; - if (file_exists($fileExist)) { - $pluginName = $pluginDashlet; - break; - } - } - - //---- verify if the plugin is active - if ($pluginName == '') { - return false; - } else { - if ($handle = opendir( PATH_PLUGINS )) { - while (false !== ($file = readdir( $handle ))) { - if (strpos( $file, '.php', 1 ) && is_file( PATH_PLUGINS . $file )) { - include_once (PATH_PLUGINS . $file); - $pluginDetail = $oPluginRegistry->getPluginDetails( $file ); - if ($pluginDetail->getNamespace() == $pluginName) { - return $pluginDetail->isEnabled(); - } - } - } - closedir( $handle ); - } - return true; - } - } - - private static function setIncludePath () - { - $oPluginRegistry = PluginRegistry::loadSingleton(); - $pluginsDashlets = $oPluginRegistry->getDashlets(); - foreach ($pluginsDashlets as $pluginDashlet) { - set_include_path( get_include_path() . PATH_SEPARATOR . PATH_PLUGINS . $pluginDashlet . PATH_SEP ); - } - } -} \ No newline at end of file diff --git a/workflow/engine/classes/PMDrive.php b/workflow/engine/classes/PMDrive.php deleted file mode 100644 index 8ba11cd1e..000000000 --- a/workflow/engine/classes/PMDrive.php +++ /dev/null @@ -1,271 +0,0 @@ -folderIdPMDrive != '') { - return; - } - - $user = new Users(); - $dataUser = $user->load($usrUid); - - if (!empty($dataUser['USR_EMAIL'])) { - $this->setDriveUser($dataUser['USR_EMAIL']); - } - $this->folderIdPMDrive = empty($dataUser['USR_PMDRIVE_FOLDER_UID']) ? '' : $dataUser['USR_PMDRIVE_FOLDER_UID']; - - $conf = $this->getConfigGmail(); - $this->folderNamePMDrive = empty($conf->aConfig['folderNamePMDrive']) ? 'PMDrive (' . SYS_SYS . ')' : $conf->aConfig['folderNamePMDrive']; - - if ($this->folderIdPMDrive == '') { - $folderid = $this->createFolder($this->folderNamePMDrive); - - $this->folderIdPMDrive = $folderid->id; - $dataUser['USR_PMDRIVE_FOLDER_UID'] = $folderid->id; - $user->update($dataUser); - } - } - - public function getFolderIdPMDrive($usrUid) - { - $this->validateFolderPMDrive($usrUid); - return $this->folderIdPMDrive; - } - - /** - * Set account user - * - * @param $user email user - */ - public function setFolderNamePMDrive($name) - { - $conf = $this->getConfigGmail(); - $conf->aConfig['folderNamePMDrive'] = $name; - $conf->saveConfig('GOOGLE_API_SETTINGS', '', '', ''); - - $this->folderNamePMDrive = $name; - } - - /** - * Set account user - * - * @param $user email user - */ - public function setDriveUser($user) - { - $this->setUser($user); - } - - /** - * Instance google service Drive - * - * @return Google_Service_Drive $service Drive API service instance. - */ - private function serviceDrive() - { - $client = $this->serviceClient(); - $service = new Google_Service_Drive($client); - return $service; - } - - /** - * Retrieve a list of File resources. - * - * @param string $fileId uid file - * @return Array List of Google_Service_Drive_DriveFile resources. - */ - public function listFolder($fileId) - { - $this->setScope(static::DRIVE); - $this->setScope(static::DRIVE_FILE); - $this->setScope(static::DRIVE_READONLY); - $this->setScope(static::DRIVE_METADATA); - $this->setScope(static::DRIVE_METADATA_READONLY); - $this->setScope(static::DRIVE_APPDATA); - - $service = $this->serviceDrive(); - - try { - $rows = array(); - $parameters['q'] = "'" . $fileId . "' in parents and trashed = false"; - $parents = $service->files->listFiles($parameters); - - foreach ($parents->getItems() as $parent) { - $rows = $parent; - } - - } catch (Exception $e) { - error_log( G::LoadTranslation("ID_MSG_AJAX_FAILURE") . $e->getMessage()); - } - return $rows; - } - - /** - * Retrieve a list of File resources. - * - * @param string $name Title of the file to insert, including the extension. - * @param string $parentId Parent folder's ID. - * @return Google_Service_Drive_DriveFile The file that was inserted. NULL is returned if an API error occurred. - */ - public function createFolder($name, $parentId = null) - { - $this->setScope(static::DRIVE_FILE); - - $service = $this->serviceDrive(); - - $file = new Google_Service_Drive_DriveFile(); - $file->setMimeType("application/vnd.google-apps.folder"); - $file->setTitle($name); - - if ($parentId != null) { - $parent = new Google_Service_Drive_ParentReference(); - $parent->setId($parentId); - $file->setParents(array($parent)); - } - - try { - $createdFolder = $service->files->insert($file); - } catch (Exception $e) { - $createdFolder = null; - error_log ( G::LoadTranslation("ID_MSG_AJAX_FAILURE") . $e->getMessage()); - } - return $createdFolder; - } - - /** - * upload new file - * - * @param string $mime MIME type of the file to insert. - * @param string $src location of the file to insert. - * @param string $name Title of the file to insert, including the extension. - * @return Google_Service_Drive_DriveFile The file that was inserted. NULL is returned if an API error occurred. - */ - public function uploadFile($mime, $src, $name, $parentId = null) - { - $this->setScope(static::DRIVE_FILE); - - $service = $this->serviceDrive(); - - $file = new Google_Service_Drive_DriveFile(); - $file->setMimeType($mime); - $file->setTitle($name); - - // Set the parent folder. - if ($parentId != null) { - $parent = new Google_Service_Drive_ParentReference(); - $parent->setId($parentId); - $file->setParents(array($parent)); - } - - $data = file_get_contents($src); - - try { - $createdFile = $service->files->insert( - $file, - array( - 'data' => $data, - 'mimeType' => $mime, - 'uploadType' => 'media' - ) - ); - - } catch (Exception $e) { - error_log( G::LoadTranslation("ID_MSG_AJAX_FAILURE") . $e->getMessage()); - } - return $createdFile; - } - - /** - * Download a file's content. - * - * @param string $fileId id file. - * @return String The file's content if successful, null otherwise - */ - public function downloadFile($fileId) - { - $this->setScope(static::DRIVE); - $this->setScope(static::DRIVE_APPDATA); - $this->setScope(static::DRIVE_APPS_READONLY); - $this->setScope(static::DRIVE_FILE); - $this->setScope(static::DRIVE_METADATA); - $this->setScope(static::DRIVE_METADATA_READONLY); - $this->setScope(static::DRIVE_READONLY); - $service = $this->serviceDrive(); - $response = null; - - try { - $file = $service->files->get($fileId); - $downloadUrl = $file->getDownloadUrl(); - if ($downloadUrl) { - $request = new Google_Http_Request($downloadUrl, 'GET', null, null); - $httpRequest = $service->getClient()->getAuth()->authenticatedRequest($request); - if ($httpRequest->getResponseHttpCode() == 200) { - $response = $httpRequest->getResponseBody(); - } else { - error_log(G::LoadTranslation("ID_MSG_AJAX_FAILURE")); - } - } else { - error_log(G::LoadTranslation("ID_PMDRIVE_NO_CONTENT_IN_FILE")); - } - } catch (Exception $e) { - error_log( G::LoadTranslation("ID_MSG_AJAX_FAILURE") . $e->getMessage()); - } - return $response; - } - - /** - * Insert a new permission. - * - * @param String $fileId ID of the file to insert permission for. - * @param String $value User or group e-mail address, domain name or NULL for "default" type. - * @param String $type The value "user", "group", "domain" or "default". - * @param String $role The value "owner", "writer" or "reader". - * @return Google_Servie_Drive_Permission The inserted permission. NULL is returned if an API error occurred. - */ - public function setPermission($fileId, $value, $type = 'user', $role = 'reader', $sendNotification = false) - { - $this->setScope(static::DRIVE); - $this->setScope(static::DRIVE_FILE); - - $service = $this->serviceDrive(); - $permission = null; - - $newPermission = new Google_Service_Drive_Permission(); - $newPermission->setValue($value); - $newPermission->setType($type); - $newPermission->setRole($role); - - try { - $permission = $service->permissions->insert( - $fileId, - $newPermission, - array( - 'sendNotificationEmails' => $sendNotification - ) - ); - - } catch (Exception $e) { - error_log(G::LoadTranslation("ID_MSG_AJAX_FAILURE") . $e->getMessage()); - } - return $permission; - } -} diff --git a/workflow/engine/classes/PMGoogleApi.php b/workflow/engine/classes/PMGoogleApi.php deleted file mode 100644 index cdbce6861..000000000 --- a/workflow/engine/classes/PMGoogleApi.php +++ /dev/null @@ -1,245 +0,0 @@ -verifyfeature('7qhYmF1eDJWcEdwcUZpT0k4S0xTRStvdz09') || $licensedFeatures->verifyfeature('AhKNjBEVXZlWUFpWE8wVTREQ0FObmo0aTdhVzhvalFic1M='))) { - G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels'); - G::header('location: ../login/login'); - die; - } - $this->loadSettings(); - } - - public function setScope($scope) - { - $this->scope[] = $scope; - } - - public function getScope() - { - return $this->scope; - } - - public function setUser($user) - { - $this->user = $user; - } - - public function getUser() - { - return $this->user; - } - - public function getConfigGmail() - { - $this->configuration = new Configurations(); - $this->configuration->loadConfig($gmail, 'GOOGLE_API_SETTINGS', ''); - } - - public function setConfigGmail ($id, $value) - { - $this->configuration->aConfig[$id] = $value; - $this->configuration->saveConfig('GOOGLE_API_SETTINGS', '', '', ''); - } - - public function setServiceAccountEmail($serviceAccountEmail) - { - $this->setConfigGmail('serviceAccountEmail', $serviceAccountEmail); - $this->serviceAccountEmail = $serviceAccountEmail; - } - - public function getServiceAccountEmail() - { - return $this->serviceAccountEmail; - } - - public function setServiceAccountCertificate ($serviceAccountCertificate) - { - $this->setConfigGmail('serviceAccountCertificate', $serviceAccountCertificate); - $this->serviceAccountCertificate = $serviceAccountCertificate; - } - - public function getServiceAccountCertificate() - { - return $this->serviceAccountCertificate; - } - - public function setServiceGmailStatus($status) - { - $licensedFeatures = &PMLicensedFeatures::getSingleton(); - if (!$licensedFeatures->verifyfeature('7qhYmF1eDJWcEdwcUZpT0k4S0xTRStvdz09')) { - $status = false; - } - $this->setConfigGmail('serviceGmailStatus', $status); - $this->serviceGmailStatus = $status; - } - - public function getServiceGmailStatus() - { - return $this->serviceGmailStatus; - } - - public function setServiceDriveStatus($status) - { - $licensedFeatures = &PMLicensedFeatures::getSingleton(); - if (!$licensedFeatures->verifyfeature('AhKNjBEVXZlWUFpWE8wVTREQ0FObmo0aTdhVzhvalFic1M=')) { - $status = false; - } - $this->setConfigGmail('serviceDriveStatus', $status); - $this->serviceDriveStatus = $status; - } - - public function getServiceDriveStatus() - { - return $this->serviceDriveStatus; - } - - /** - * load configuration gmail service account - * - */ - public function loadSettings() - { - $this->getConfigGmail(); - - $serviceAccountCertificate = empty($this->configuration->aConfig['serviceAccountCertificate']) ? '' : $this->configuration->aConfig['serviceAccountCertificate']; - $serviceAccountEmail = empty($this->configuration->aConfig['serviceAccountEmail']) ? '' : $this->configuration->aConfig['serviceAccountEmail']; - $serviceGmailStatus = empty($this->configuration->aConfig['serviceGmailStatus']) ? false : $this->configuration->aConfig['serviceGmailStatus']; - $serviceDriveStatus = empty($this->configuration->aConfig['serviceDriveStatus']) ? false : $this->configuration->aConfig['serviceDriveStatus']; - - $this->scope = array(); - - $this->serviceAccountEmail = $serviceAccountEmail; - $this->serviceAccountCertificate = $serviceAccountCertificate; - $this->serviceGmailStatus = $serviceGmailStatus; - $this->serviceDriveStatus = $serviceDriveStatus; - } - - /** - * New service client - Authentication google Api - * - * @return Google_Service_Client $service API service instance. - */ - public function serviceClient() - { - $client = null; - if (file_exists(PATH_DATA_SITE . $this->serviceAccountCertificate)) { - $key = file_get_contents(PATH_DATA_SITE . $this->serviceAccountCertificate); - } else { - throw new Exception(G::LoadTranslation('ID_GOOGLE_CERTIFICATE_ERROR')); - } - - $data = json_decode($key); - $assertionCredentials = new Google_Auth_AssertionCredentials( - $this->serviceAccountEmail, - $this->scope, - $data->private_key - ); - - $assertionCredentials->sub = $this->user; - - $client = new Google_Client(); - $client->setApplicationName("PMDrive"); - $client->setAssertionCredentials($assertionCredentials); - - - return $client; - } - - /** - * New service client - Authentication google Api - * - * @param $credentials - * @throws \Exception - * @return \StdClass response. - */ - public function testService($credentials) - { - - $scope = array( - static::DRIVE, - static::DRIVE_FILE, - static::DRIVE_READONLY, - static::DRIVE_METADATA, - static::DRIVE_METADATA_READONLY, - static::DRIVE_APPDATA, - static::DRIVE_PHOTOS_READONLY - ); - - if (file_exists($credentials->pathServiceAccountCertificate)) { - $key = file_get_contents($credentials->pathServiceAccountCertificate); - } else { - throw new Exception(G::LoadTranslation('ID_GOOGLE_CERTIFICATE_ERROR')); - } - $data = json_decode($key); - $assertionCredentials = new Google_Auth_AssertionCredentials( - $credentials->emailServiceAccount, - $scope, - $data->private_key - ); - $assertionCredentials->sub = $this->user; - - $client = new Google_Client(); - $client->setApplicationName("PMDrive"); - $client->setAssertionCredentials($assertionCredentials); - - $service = new Google_Service_Drive($client); - - $result = new StdClass(); - $result->success = true; - - $result->currentUserName = G::LoadTranslation('ID_SERVER_COMMUNICATION_ERROR'); - $result->rootFolderId = G::LoadTranslation('ID_SERVER_COMMUNICATION_ERROR'); - $result->quotaType = G::LoadTranslation('ID_SERVER_COMMUNICATION_ERROR'); - $result->quotaBytesTotal = G::LoadTranslation('ID_SERVER_COMMUNICATION_ERROR'); - $result->quotaBytesUsed = G::LoadTranslation('ID_SERVER_COMMUNICATION_ERROR'); - - try { - $about = $service->about->get(); - - $result->currentUserName = $about->getName(); - $result->rootFolderId = $about->getRootFolderId(); - $result->quotaType = $about->getQuotaType(); - $result->quotaBytesTotal = $about->getQuotaBytesTotal(); - $result->quotaBytesUsed = $about->getQuotaBytesUsed(); - $result->responseGmailTest = G::LoadTranslation('ID_SUCCESSFUL_CONNECTION'); - } catch (Exception $e) { - $result->success = false; - $result->responseGmailTest = G::LoadTranslation('ID_SERVER_COMMUNICATION_ERROR'); - } - - return $result; - } -} diff --git a/workflow/engine/classes/WorkspaceTools.php b/workflow/engine/classes/WorkspaceTools.php index 70fdc221e..56d78d9a0 100644 --- a/workflow/engine/classes/WorkspaceTools.php +++ b/workflow/engine/classes/WorkspaceTools.php @@ -868,8 +868,8 @@ use ProcessMaker\Plugins\Adapters\PluginAdapter; public function upgradeDatabase($onedb = false, $checkOnly = false) { $this->initPropel(true); - p11835::$dbAdapter = $this->dbAdapter; - p11835::isApplicable(); + P11835::$dbAdapter = $this->dbAdapter; + P11835::isApplicable(); $systemSchema = PmSystem::getSystemSchema($this->dbAdapter); $systemSchemaRbac = PmSystem::getSystemSchemaRbac($this->dbAdapter);// get the Rbac Schema $this->registerSystemTables(array_merge($systemSchema, $systemSchemaRbac)); @@ -943,7 +943,7 @@ use ProcessMaker\Plugins\Adapters\PluginAdapter; } } - p11835::execute(); + P11835::execute(); return true; } diff --git a/workflow/engine/classes/model/AppDelegation.php b/workflow/engine/classes/model/AppDelegation.php index 46229d861..39ca78921 100644 --- a/workflow/engine/classes/model/AppDelegation.php +++ b/workflow/engine/classes/model/AppDelegation.php @@ -281,7 +281,7 @@ class AppDelegation extends BaseAppDelegation $licensedFeatures = &PMLicensedFeatures::getSingleton (); if ($licensedFeatures->verifyfeature ( '7qhYmF1eDJWcEdwcUZpT0k4S0xTRStvdz09' )) { try{ - $pmGoogle = new PMGoogleApi (); + $pmGoogle = new PmGoogleApi (); if ($pmGoogle->getServiceGmailStatus()) { $Pmgmail = new \ProcessMaker\BusinessModel\Pmgmail(); $Pmgmail->gmailsForRouting($sUsrUid, $sTasUid, $sAppUid, $delIndex, $isSubprocess); diff --git a/workflow/engine/controllers/dashboard.php b/workflow/engine/controllers/dashboard.php index 1bb2f8e6f..84c0101fc 100644 --- a/workflow/engine/controllers/dashboard.php +++ b/workflow/engine/controllers/dashboard.php @@ -22,7 +22,7 @@ class Dashboard extends Controller G::header( 'location: login/login' ); exit(0); } - $this->pmDashlet = new PMDashlet(); + $this->pmDashlet = new PmDashlet(); } // Functions for the dashboards users module - Start @@ -244,14 +244,14 @@ class Dashboard extends Controller if ($data->DAS_INS_UID != '') { $this->pmDashlet->setup( $data->DAS_INS_UID ); $this->setJSVar( 'dashletInstance', $this->pmDashlet->getDashletInstance() ); - $this->setJSVar( 'additionalFields', PMDashlet::getAdditionalFields( get_class( $this->pmDashlet->getDashletObject() ) ) ); + $this->setJSVar( 'additionalFields', PmDashlet::getAdditionalFields( get_class( $this->pmDashlet->getDashletObject() ) ) ); } else { $dashletInstance = new stdclass(); $dashletInstance->DAS_UID = $dashlets[0][0]; $dashlet = new Dashlet(); $dashletFields = $dashlet->load( $dashletInstance->DAS_UID ); $this->setJSVar( 'dashletInstance', $dashletInstance ); - $this->setJSVar( 'additionalFields', PMDashlet::getAdditionalFields( $dashletFields['DAS_CLASS'] ) ); + $this->setJSVar( 'additionalFields', PmDashlet::getAdditionalFields( $dashletFields['DAS_CLASS'] ) ); } G::RenderPage( 'publish', 'extJs' ); return null; @@ -305,7 +305,7 @@ class Dashboard extends Controller $dashlet = new Dashlet(); $dashletFields = $dashlet->load( $data->DAS_UID ); if (! is_null( $dashletFields )) { - $result->additionalFields = PMDashlet::getAdditionalFields( $dashletFields['DAS_CLASS'] ); + $result->additionalFields = PmDashlet::getAdditionalFields( $dashletFields['DAS_CLASS'] ); } else { throw new Exception( 'Dashlet "' . $data->DAS_UID . '" does not exist.' ); } diff --git a/workflow/engine/controllers/pmGmail.php b/workflow/engine/controllers/pmGmail.php index 6eea33ad7..49c4c3bfa 100644 --- a/workflow/engine/controllers/pmGmail.php +++ b/workflow/engine/controllers/pmGmail.php @@ -10,7 +10,7 @@ class pmGmail extends Controller { public function saveConfigPmGmail($httpData) { - $pmGoogle = new PMGoogleApi(); + $pmGoogle = new PmGoogleApi(); $result = new StdClass(); $result->success = true; @@ -62,7 +62,7 @@ class pmGmail extends Controller $this->setJSVar('__PMGMAIL_ERROR__', $_SESSION['__PMGMAIL_ERROR__']); unset($_SESSION['__PMGMAIL_ERROR__']); } - $pmGoogle = new PMGoogleApi(); + $pmGoogle = new PmGoogleApi(); $accountEmail = $pmGoogle->getServiceAccountEmail(); $googleCertificate = $pmGoogle->getServiceAccountCertificate(); $statusGmail = $pmGoogle->getServiceGmailStatus(); @@ -98,7 +98,7 @@ class pmGmail extends Controller */ public function testConfigPmGmail($httpData) { - $pmGoogle = new PMGoogleApi(); + $pmGoogle = new PmGoogleApi(); $result = new stdClass(); diff --git a/workflow/engine/methods/cases/casesListExtJsRedirector.php b/workflow/engine/methods/cases/casesListExtJsRedirector.php index 8465db24c..51d5b30a1 100644 --- a/workflow/engine/methods/cases/casesListExtJsRedirector.php +++ b/workflow/engine/methods/cases/casesListExtJsRedirector.php @@ -7,7 +7,7 @@ $statusPMGmail = false; $licensedFeatures = &PMLicensedFeatures::getSingleton(); if ($licensedFeatures->verifyfeature('7qhYmF1eDJWcEdwcUZpT0k4S0xTRStvdz09')) { - $pmGoogle = new PMGoogleApi(); + $pmGoogle = new PmGoogleApi(); $statusPMGmail = $pmGoogle->getServiceGmailStatus(); } /*----------------------------------********---------------------------------*/ diff --git a/workflow/engine/methods/cases/cases_CatchExecute.php b/workflow/engine/methods/cases/cases_CatchExecute.php index e554c1512..5d1438597 100644 --- a/workflow/engine/methods/cases/cases_CatchExecute.php +++ b/workflow/engine/methods/cases/cases_CatchExecute.php @@ -64,7 +64,7 @@ if ($aDelegation['USR_UID'] == "") { $licensedFeatures = &PMLicensedFeatures::getSingleton(); if ($licensedFeatures->verifyfeature('7qhYmF1eDJWcEdwcUZpT0k4S0xTRStvdz09')) { require_once (PATH_HOME . "engine" . PATH_SEP . "classes" . PATH_SEP . "class.labelsGmail.php"); - $pmGoogle = new PMGoogleApi(); + $pmGoogle = new PmGoogleApi(); if($pmGoogle->getServiceGmailStatus()) { $labGmail = new labelsGmail(); $labGmail->addRelabelingToQueue($sAppUid, $iDelIndex, -1, true); diff --git a/workflow/engine/methods/cases/cases_Derivate.php b/workflow/engine/methods/cases/cases_Derivate.php index 166d08fc4..ae6fbff44 100644 --- a/workflow/engine/methods/cases/cases_Derivate.php +++ b/workflow/engine/methods/cases/cases_Derivate.php @@ -190,7 +190,7 @@ try { /*----------------------------------********---------------------------------*/ $licensedFeatures = &PMLicensedFeatures::getSingleton (); if ($licensedFeatures->verifyfeature ( '7qhYmF1eDJWcEdwcUZpT0k4S0xTRStvdz09' )) { - $pmGoogle = new PMGoogleApi (); + $pmGoogle = new PmGoogleApi (); if ($pmGoogle->getServiceGmailStatus ()) { $flagGmail = true; diff --git a/workflow/engine/methods/cases/derivatedGmail.php b/workflow/engine/methods/cases/derivatedGmail.php index 60729ed6f..43c6f571c 100644 --- a/workflow/engine/methods/cases/derivatedGmail.php +++ b/workflow/engine/methods/cases/derivatedGmail.php @@ -21,7 +21,7 @@ require_once (PATH_HOME . "engine" . PATH_SEP . "classes" . PATH_SEP . "class.la $oLabels = new labelsGmail(); $oLabels->addRelabelingToQueue($caseId, $actualIndex, $actualLastIndex, false); -$pmGoogle = new PMGoogleApi(); +$pmGoogle = new PmGoogleApi(); if(array_key_exists('gmail', $_SESSION) && $_SESSION['gmail'] == 1 && $pmGoogle->getServiceGmailStatus() ){ $_SESSION['gmail'] = 0; unset($_SESSION['gmail']); //cleaning session diff --git a/workflow/engine/methods/cases/open.php b/workflow/engine/methods/cases/open.php index 3913ffdb2..ab2b7259c 100644 --- a/workflow/engine/methods/cases/open.php +++ b/workflow/engine/methods/cases/open.php @@ -72,7 +72,7 @@ $urlToRedirectAfterPause = 'casesListExtJs'; /*----------------------------------********---------------------------------*/ $licensedFeatures = &PMLicensedFeatures::getSingleton(); if ($licensedFeatures->verifyfeature('7qhYmF1eDJWcEdwcUZpT0k4S0xTRStvdz09')) { - $pmGoogle = new PMGoogleApi(); + $pmGoogle = new PmGoogleApi(); if (array_key_exists('gmail', $_SESSION) && $_SESSION['gmail'] == 1 && $pmGoogle->getServiceGmailStatus()) { $_SESSION['gmail'] = 0; $urlToRedirectAfterPause = '/sys'. $_SESSION['WORKSPACE'] .'/en/neoclassic/cases/cases_Open?APP_UID='.$_SESSION['APPLICATION'].'&DEL_INDEX='.$_SESSION['INDEX'].'&action=sent'; From 9a381f58411e0cad7ecce61c23756bb1cfa767af Mon Sep 17 00:00:00 2001 From: dante Date: Fri, 11 Aug 2017 13:47:10 -0400 Subject: [PATCH 3/5] Missed files --- .../engine/classes/DashletOpenVsCompleted.php | 294 +++++++++++++ workflow/engine/classes/PmDashlet.php | 402 ++++++++++++++++++ workflow/engine/classes/PmDrive.php | 268 ++++++++++++ workflow/engine/classes/PmGoogleApi.php | 245 +++++++++++ 4 files changed, 1209 insertions(+) create mode 100644 workflow/engine/classes/DashletOpenVsCompleted.php create mode 100644 workflow/engine/classes/PmDashlet.php create mode 100644 workflow/engine/classes/PmDrive.php create mode 100644 workflow/engine/classes/PmGoogleApi.php diff --git a/workflow/engine/classes/DashletOpenVsCompleted.php b/workflow/engine/classes/DashletOpenVsCompleted.php new file mode 100644 index 000000000..8194416a6 --- /dev/null +++ b/workflow/engine/classes/DashletOpenVsCompleted.php @@ -0,0 +1,294 @@ +xtype = 'arraystore'; + $contextTimeStore->fields = array ('id','value' + ); + $contextTimeStore->data = array (array ('TODAY', G::LoadTranslation('ID_TODAY') + ),array ('YESTERDAY', G::LoadTranslation('ID_YESTERDAY') + ),array ('THIS_WEEK', G::LoadTranslation('ID_THIS_WEEK') + ),array ('PREVIOUS_WEEK', G::LoadTranslation('ID_PREVIOUS_WEEK') + ),array ('THIS_MONTH', G::LoadTranslation('ID_THIS_MONTH') + ),array ('PREVIOUS_MONTH', G::LoadTranslation('ID_PREVIOUS_MONTH') + ),array ('THIS_YEAR', G::LoadTranslation('ID_THIS_YEAR') + ),array ('PREVIOUS_YEAR', G::LoadTranslation('ID_PREVIOUS_YEAR') + ) + ); + + $contextTime = new stdclass(); + $contextTime->xtype = 'combo'; + $contextTime->name = 'DAS_INS_CONTEXT_TIME'; + $contextTime->fieldLabel = G::LoadTranslation( 'ID_PERIOD' ); + $contextTime->editable = false; + $contextTime->width = 320; + $contextTime->store = $contextTimeStore; + $contextTime->mode = 'local'; + $contextTime->triggerAction = 'all'; + $contextTime->valueField = 'id'; + $contextTime->displayField = 'value'; + $contextTime->value = 'TODAY'; + $additionalFields[] = $contextTime; + + $redFrom = new stdclass(); + $redFrom->xtype = 'numberfield'; + $redFrom->name = 'DAS_RED_FROM'; + $redFrom->fieldLabel = G::LoadTranslation( 'ID_RED_STARTS_IN' ); + $redFrom->width = 50; + $redFrom->maxLength = 3; + $redFrom->maxValue = 100; + $redFrom->minValue = 0; + $redFrom->allowBlank = false; + $redFrom->value = 0; + $additionalFields[] = $redFrom; + + $redTo = new stdclass(); + $redTo->xtype = 'numberfield'; + $redTo->name = 'DAS_RED_TO'; + $redTo->fieldLabel = G::LoadTranslation( 'ID_RED_ENDS_IN' ); + $redTo->width = 50; + $redTo->maxLength = 3; + $redTo->maxValue = 100; + $redTo->minValue = 0; + $redTo->allowBlank = false; + $redTo->value = 30; + $additionalFields[] = $redTo; + + $yellowFrom = new stdclass(); + $yellowFrom->xtype = 'numberfield'; + $yellowFrom->name = 'DAS_YELLOW_FROM'; + $yellowFrom->fieldLabel = G::LoadTranslation( 'ID_YELLOW_STARTS_IN' ); + $yellowFrom->width = 50; + $yellowFrom->maxLength = 3; + $yellowFrom->maxValue = 100; + $yellowFrom->minValue = 0; + $yellowFrom->allowBlank = false; + $yellowFrom->value = 30; + $additionalFields[] = $yellowFrom; + + $yellowTo = new stdclass(); + $yellowTo->xtype = 'numberfield'; + $yellowTo->name = 'DAS_YELLOW_TO'; + $yellowTo->fieldLabel = G::LoadTranslation( 'ID_YELLOW_ENDS_IN' ); + $yellowTo->width = 50; + $yellowTo->maxLength = 3; + $yellowTo->maxValue = 100; + $yellowTo->minValue = 0; + $yellowTo->allowBlank = false; + $yellowTo->value = 50; + $additionalFields[] = $yellowTo; + + $greenFrom = new stdclass(); + $greenFrom->xtype = 'numberfield'; + $greenFrom->name = 'DAS_GREEN_FROM'; + $greenFrom->fieldLabel = G::LoadTranslation( 'ID_GREEN_STARTS_IN' ); + $greenFrom->width = 50; + $greenFrom->maxLength = 3; + $greenFrom->maxValue = 100; + $greenFrom->minValue = 0; + $greenFrom->allowBlank = false; + $greenFrom->value = 50; + $additionalFields[] = $greenFrom; + + $greenTo = new stdclass(); + $greenTo->xtype = 'numberfield'; + $greenTo->name = 'DAS_GREEN_TO'; + $greenTo->fieldLabel = G::LoadTranslation( 'ID_GREEN_ENDS_IN' ); + $greenTo->width = 50; + $greenTo->maxLength = 3; + $greenTo->maxValue = 100; + $greenTo->minValue = 0; + $greenTo->allowBlank = false; + $greenTo->value = 100; + $additionalFields[] = $greenTo; + + return $additionalFields; + } + + public static function getXTemplate ($className) + { + return ""; + } + + public function setup ($config) + { + $this->redFrom = isset( $config['DAS_RED_FROM'] ) ? (int) $config['DAS_RED_FROM'] : 0; + $this->redTo = isset( $config['DAS_RED_TO'] ) ? (int) $config['DAS_RED_TO'] : 30; + $this->yellowFrom = isset( $config['DAS_YELLOW_FROM'] ) ? (int) $config['DAS_YELLOW_FROM'] : 30; + $this->yellowTo = isset( $config['DAS_YELLOW_TO'] ) ? (int) $config['DAS_YELLOW_TO'] : 50; + $this->greenFrom = isset( $config['DAS_GREEN_FROM'] ) ? (int) $config['DAS_GREEN_FROM'] : 50; + $this->greenTo = isset( $config['DAS_GREEN_TO'] ) ? (int) $config['DAS_GREEN_TO'] : 100; + + $thisYear = date( 'Y' ); + $lastYear = $thisYear - 1; + $thisMonth = date( 'M' ); + $lastMonth = date( 'M', strtotime( "31 days ago" ) ); + + $todayIni = date( 'Y-m-d H:i:s', strtotime( "today 00:00:00" ) ); + $todayEnd = date( 'Y-m-d H:i:s', strtotime( "today 23:59:59" ) ); + $yesterdayIni = date( 'Y-m-d H:i:s', strtotime( "yesterday 00:00:00" ) ); + $yesterdayEnd = date( 'Y-m-d H:i:s', strtotime( "yesterday 23:59:59" ) ); + $thisWeekIni = date( 'Y-m-d H:i:s', strtotime( "monday 00:00:00" ) ); + $thisWeekEnd = date( 'Y-m-d H:i:s', strtotime( "sunday 23:59:59" ) ); + $previousWeekIni = date( 'Y-m-d H:i:s', strtotime( "last monday 00:00:00" ) ); + $previousWeekEnd = date( 'Y-m-d H:i:s', strtotime( "last sunday 23:59:59" ) ); + + $thisMonthIni = date( 'Y-m-d H:i:s', strtotime( "$thisMonth 1st 00:00:00" ) ); + $thisMonthEnd = date( 'Y-m-d H:i:s', strtotime( "$thisMonth last day 23:59:59" ) ); + + $previousMonthIni = date( 'Y-m-d H:i:s', strtotime( "$lastMonth 1st 00:00:00" ) ); + $previousMonthEnd = date( 'Y-m-d H:i:s', strtotime( "$lastMonth last day 23:59:59" ) ); + + $thisYearIni = date( 'Y-m-d H:i:s', strtotime( "jan $thisYear 00:00:00" ) ); + $thisYearEnd = date( 'Y-m-d H:i:s', strtotime( "Dec 31 $thisYear 23:59:59" ) ); + $previousYearIni = date( 'Y-m-d H:i:s', strtotime( "jan $lastYear 00:00:00" ) ); + $previousYearEnd = date( 'Y-m-d H:i:s', strtotime( "Dec 31 $lastYear 23:59:59" ) ); + + if (! isset( $config['DAS_INS_CONTEXT_TIME'] )) { + $config['DAS_INS_CONTEXT_TIME'] = 'TODAY'; + } + + switch ($config['DAS_INS_CONTEXT_TIME']) { + case 'TODAY': + $dateIni = $todayIni; + $dateEnd = $todayEnd; + break; + case 'YESTERDAY': + $dateIni = $yesterdayIni; + $dateEnd = $yesterdayEnd; + break; + case 'THIS_WEEK': + $dateIni = $thisWeekIni; + $dateEnd = $thisWeekEnd; + break; + case 'PREVIOUS_WEEK': + $dateIni = $previousWeekIni; + $dateEnd = $previousWeekEnd; + break; + case 'THIS_MONTH': + $dateIni = $todayIni; + $dateEnd = $todayEnd; + break; + case 'PREVIOUS_MONTH': + $dateIni = $todayIni; + $dateEnd = $todayEnd; + break; + case 'THIS_QUARTER': + $dateIni = $todayIni; + $dateEnd = $todayEnd; + break; + case 'PREVIOUS_QUARTER': + $dateIni = $todayIni; + $dateEnd = $todayEnd; + break; + case 'THIS_YEAR': + $dateIni = $thisYearIni; + $dateEnd = $thisYearEnd; + break; + case 'PREVIOUS_YEAR': + $dateIni = $previousYearIni; + $dateEnd = $previousYearEnd; + break; + } + + $con = Propel::getConnection( "workflow" ); + $stmt = $con->createStatement(); + $sql = "select count(*) as CANT from APPLICATION where APP_STATUS in ( 'DRAFT', 'TO_DO' ) "; + $sql .= "and APP_CREATE_DATE > '$dateIni' and APP_CREATE_DATE <= '$dateEnd' "; + $rs = $stmt->executeQuery( $sql, ResultSet::FETCHMODE_ASSOC ); + $rs->next(); + $row = $rs->getRow(); + $casesTodo = $row['CANT']; + + $stmt = $con->createStatement(); + $sql = "select count(*) as CANT from APPLICATION where APP_STATUS = 'COMPLETED' "; + $sql .= "and APP_CREATE_DATE > '$dateIni' and APP_CREATE_DATE <= '$dateEnd' "; + $rs = $stmt->executeQuery( $sql, ResultSet::FETCHMODE_ASSOC ); + $rs->next(); + $row = $rs->getRow(); + $casesCompleted = $row['CANT']; + if ($casesCompleted + $casesTodo != 0) { + $this->value = $casesCompleted / ($casesCompleted + $casesTodo) * 100; + } else { + $this->value = 0; + } + $this->open = $casesCompleted; + $this->completed = $casesCompleted + $casesTodo; + switch ($config['DAS_INS_CONTEXT_TIME']) { + case 'TODAY': + $this->centerLabel = G::LoadTranslation('ID_TODAY'); + break; + case 'YESTERDAY': + $this->centerLabel = G::LoadTranslation('ID_YESTERDAY'); + break; + case 'THIS_WEEK': + $this->centerLabel = G::LoadTranslation('ID_THIS_WEEK'); + break; + case 'PREVIOUS_WEEK': + $this->centerLabel = G::LoadTranslation('ID_PREVIOUS_WEEK'); + break; + case 'THIS_MONTH': + $this->centerLabel = G::LoadTranslation('ID_THIS_MONTH'); + break; + case 'PREVIOUS_MONTH': + $this->centerLabel = G::LoadTranslation('ID_PREVIOUS_MONTH'); + break; + case 'THIS_QUARTER': + $this->centerLabel = G::LoadTranslation('ID_THIS_QUARTER'); + break; + case 'PREVIOUS_QUARTER': + $this->centerLabel = G::LoadTranslation('ID_PREVIOUS_QUARTER'); + break; + case 'THIS_YEAR': + $this->centerLabel = G::LoadTranslation('ID_THIS_YEAR'); + break; + case 'PREVIOUS_YEAR': + $this->centerLabel = G::LoadTranslation('ID_PREVIOUS_YEAR'); + break; + default: + $this->centerLabel = ''; + break; + } + return true; + } + + public function render ($width = 300) + { + $g = new pmGauge(); + $g->w = $width; + $g->value = $this->value; + + $g->redFrom = $this->redFrom; + $g->redTo = $this->redTo; + $g->yellowFrom = $this->yellowFrom; + $g->yellowTo = $this->yellowTo; + $g->greenFrom = $this->greenFrom; + $g->greenTo = $this->greenTo; + + $g->centerLabel = $this->centerLabel; + $g->open = $this->open; + $g->completed = $this->completed; + $g->render(); + } + +} \ No newline at end of file diff --git a/workflow/engine/classes/PmDashlet.php b/workflow/engine/classes/PmDashlet.php new file mode 100644 index 000000000..13a75cc35 --- /dev/null +++ b/workflow/engine/classes/PmDashlet.php @@ -0,0 +1,402 @@ +dashletInstance = $this->loadDashletInstance( $dasInsUid ); + + if (! isset( $this->dashletInstance['DAS_CLASS'] )) { + throw new Exception( G::LoadTranslation( 'ID_ERROR_OBJECT_NOT_EXISTS' ) . ' - Probably the plugin related is disabled' ); + } + $className = $this->dashletInstance['DAS_CLASS']; + + if (! class_exists( $className )) { + self::setIncludePath(); + require_once 'classes' . PATH_SEP . 'class.' . $className . '.php'; + } + $this->dashletObject = new $className(); + $this->dashletObject->setup( $this->dashletInstance ); + } catch (Exception $error) { + throw $error; + } + } + + public function render ($width = 300) + { + try { + if (is_null( $this->dashletObject )) { + throw new Exception( 'Please call to the function "setup" before call the function "render".' ); + } + $this->dashletObject->render( $width ); + } catch (Exception $error) { + throw $error; + } + } + + // Getter and Setters + + + public function getDashletInstance () + { + return $this->dashletInstance; + } + + public function getDashletObject () + { + return $this->dashletObject; + } + + // Own functions + + + public function getDashletsInstances ($start = null, $limit = null) + { + try { + $dashletsInstances = array (); + $criteria = new Criteria( 'workflow' ); + $criteria->addSelectColumn( '*' ); + $criteria->addJoin( DashletInstancePeer::DAS_UID, DashletPeer::DAS_UID, Criteria::INNER_JOIN ); + if (! is_null( $start )) { + $criteria->setOffset( $start ); + } + if (! is_null( $limit )) { + $criteria->setLimit( $limit ); + } + $dataset = DashletInstancePeer::doSelectRS( $criteria ); + $dataset->setFetchmode( ResultSet::FETCHMODE_ASSOC ); + $dataset->next(); + while ($row = $dataset->getRow()) { + $arrayField = unserialize( $row["DAS_INS_ADDITIONAL_PROPERTIES"] ); + + if (strstr($row['DAS_TITLE'], '*')) { + $row['DAS_TITLE'] = G::LoadTranslationPlugin('advancedDashboards', str_replace("*","",$row['DAS_TITLE'])); + } + $row['DAS_INS_STATUS_LABEL'] = ($row['DAS_INS_STATUS'] == '1' ? G::LoadTranslation( 'ID_ACTIVE' ) : G::LoadTranslation( 'ID_INACTIVE' )); + $row['DAS_INS_TITLE'] = (isset( $arrayField['DAS_INS_TITLE'] ) && ! empty( $arrayField['DAS_INS_TITLE'] )) ? $arrayField['DAS_INS_TITLE'] : ''; + if (! class_exists( $row['DAS_CLASS'] )) { + self::setIncludePath(); + @include 'classes' . PATH_SEP . 'class.' . $row['DAS_CLASS'] . '.php'; + if (! class_exists( $row['DAS_CLASS'] )) { + $dataset->next(); + continue; + } + } + eval( "\$row['DAS_VERSION'] = defined('" . $row['DAS_CLASS'] . "::version') ? " . $row['DAS_CLASS'] . "::version : \$row['DAS_VERSION'];" ); + + switch ($row['DAS_INS_OWNER_TYPE']) { + case 'EVERYBODY': + $row['DAS_INS_OWNER_TITLE'] = G::LoadTranslation( 'ID_ALL_USERS' ); + break; + case 'USER': + require_once 'classes/model/Users.php'; + $userInstance = new Users(); + try { + $user = $userInstance->load( $row['DAS_INS_OWNER_UID'] ); + $row['DAS_INS_OWNER_TITLE'] = $user['USR_FIRSTNAME'] . ' ' . $user['USR_LASTNAME']; + } catch (Exception $error) { + $this->remove( $row['DAS_INS_UID'] ); + $row['DAS_INS_UID'] = ''; + } + break; + case 'DEPARTMENT': + require_once 'classes/model/Department.php'; + $departmentInstance = new Department(); + try { + $department = $departmentInstance->load( $row['DAS_INS_OWNER_UID'] ); + $row['DAS_INS_OWNER_TITLE'] = $department['DEP_TITLE']; + } catch (Exception $error) { + $this->remove( $row['DAS_INS_UID'] ); + $row['DAS_INS_UID'] = ''; + } + break; + case 'GROUP': + require_once 'classes/model/Groupwf.php'; + $groupInstance = new Groupwf(); + try { + $group = $groupInstance->load( $row['DAS_INS_OWNER_UID'] ); + $row['DAS_INS_OWNER_TITLE'] = $group['GRP_TITLE']; + } catch (Exception $error) { + $this->remove( $row['DAS_INS_UID'] ); + $row['DAS_INS_UID'] = ''; + } + break; + default: + $row['DAS_INS_OWNER_TITLE'] = $row['DAS_INS_OWNER_TYPE']; + break; + } + if ($row['DAS_INS_UID'] != '') { + $dashletsInstances[] = $row; + } + $dataset->next(); + } + + return $dashletsInstances; + } catch (Exception $error) { + throw $error; + } + } + + public function loadDashletInstance ($dasInsUid) + { + try { + $dashletInstance = $this->load( $dasInsUid ); + //Load data from the serialized field + $dashlet = new Dashlet(); + $dashletFields = $dashlet->load( $dashletInstance['DAS_UID'] ); + if (is_null( $dashletFields )) { + $dashletFields = array (); + } + return array_merge( $dashletFields, $dashletInstance ); + } catch (Exception $error) { + throw $error; + } + } + + public function saveDashletInstance ($data) + { + try { + $this->createOrUpdate( $data ); + } catch (Exception $error) { + throw $error; + } + } + + public function deleteDashletInstance ($dasInsUid) + { + try { + $this->remove( $dasInsUid ); + } catch (Exception $error) { + throw $error; + } + } + + public function getDashletsInstancesForUser ($userUid) + { + try { + $dashletsInstances = array (); + // Include required classes + require_once 'classes/model/Department.php'; + require_once 'classes/model/Users.php'; + // Check for "public" dashlets + $criteria = new Criteria( 'workflow' ); + $criteria->addSelectColumn( DashletInstancePeer::DAS_INS_UID ); + $criteria->addSelectColumn( DashletInstancePeer::DAS_INS_ADDITIONAL_PROPERTIES ); + $criteria->addSelectColumn( DashletPeer::DAS_CLASS ); + $criteria->addSelectColumn( DashletPeer::DAS_TITLE ); + $criteria->add( DashletInstancePeer::DAS_INS_STATUS, '1' ); + $criteria->addJoin( DashletInstancePeer::DAS_UID, DashletPeer::DAS_UID, Criteria::INNER_JOIN ); + $criteria->add( DashletInstancePeer::DAS_INS_OWNER_TYPE, 'EVERYBODY' ); + $dataset = DashletInstancePeer::doSelectRS( $criteria ); + $dataset->setFetchmode( ResultSet::FETCHMODE_ASSOC ); + $dataset->next(); + while ($row = $dataset->getRow()) { + if (! isset( $dashletsInstances[$row['DAS_INS_UID']] )) { + $arrayField = unserialize( $row["DAS_INS_ADDITIONAL_PROPERTIES"] ); + + if (self::verifyPluginDashlet($row['DAS_CLASS'])) { + $row['DAS_XTEMPLATE'] = $this->getXTemplate( $row['DAS_CLASS'] ); + $row["DAS_TITLE"] = (isset( $arrayField["DAS_INS_TITLE"] ) && ! empty( $arrayField["DAS_INS_TITLE"] )) ? $arrayField["DAS_INS_TITLE"] : $row["DAS_TITLE"]; + $row["DAS_TITLE"] = $row["DAS_TITLE"] . ((isset( $arrayField["DAS_INS_SUBTITLE"] ) && ! empty( $arrayField["DAS_INS_SUBTITLE"] )) ? str_replace( "@@USR_USERNAME", $_SESSION["USR_USERNAME"], $arrayField["DAS_INS_SUBTITLE"] ) : null); + + $dashletsInstances[$row['DAS_INS_UID']] = $row; + } + } + $dataset->next(); + } + // Check for the direct assignments + $usersInstance = new Users(); + $criteria = new Criteria( 'workflow' ); + $criteria->addSelectColumn( DashletInstancePeer::DAS_INS_UID ); + $criteria->addSelectColumn( DashletInstancePeer::DAS_INS_ADDITIONAL_PROPERTIES ); + $criteria->addSelectColumn( DashletPeer::DAS_CLASS ); + $criteria->addSelectColumn( DashletPeer::DAS_TITLE ); + $criteria->addJoin( DashletInstancePeer::DAS_UID, DashletPeer::DAS_UID, Criteria::INNER_JOIN ); + $criteria->add( DashletInstancePeer::DAS_INS_STATUS, '1' ); + $criteria->add( DashletInstancePeer::DAS_INS_OWNER_TYPE, 'USER' ); + $criteria->add( DashletInstancePeer::DAS_INS_OWNER_UID, $userUid ); + $dataset = DashletInstancePeer::doSelectRS( $criteria ); + $dataset->setFetchmode( ResultSet::FETCHMODE_ASSOC ); + $dataset->next(); + while ($row = $dataset->getRow()) { + if (! isset( $dashletsInstances[$row['DAS_INS_UID']] )) { + $arrayField = unserialize( $row["DAS_INS_ADDITIONAL_PROPERTIES"] ); + + if (self::verifyPluginDashlet($row['DAS_CLASS'])) { + $row['DAS_XTEMPLATE'] = $this->getXTemplate( $row['DAS_CLASS'] ); + $row["DAS_TITLE"] = (isset( $arrayField["DAS_INS_TITLE"] ) && ! empty( $arrayField["DAS_INS_TITLE"] )) ? $arrayField["DAS_INS_TITLE"] : $row["DAS_TITLE"]; + $row["DAS_TITLE"] = $row["DAS_TITLE"] . ((isset( $arrayField["DAS_INS_SUBTITLE"] ) && ! empty( $arrayField["DAS_INS_SUBTITLE"] )) ? str_replace( "@@USR_USERNAME", $_SESSION["USR_USERNAME"], $arrayField["DAS_INS_SUBTITLE"] ) : null); + + $dashletsInstances[$row['DAS_INS_UID']] = $row; + } + } + $dataset->next(); + } + // Check for department assigments + $departmentInstance = new Department(); + $departments = $departmentInstance->getDepartmentsForUser( $userUid ); + foreach ($departments as $depUid => $department) { + $criteria = new Criteria( 'workflow' ); + $criteria->addSelectColumn( DashletInstancePeer::DAS_INS_UID ); + $criteria->addSelectColumn( DashletInstancePeer::DAS_INS_ADDITIONAL_PROPERTIES ); + $criteria->addSelectColumn( DashletPeer::DAS_CLASS ); + $criteria->addSelectColumn( DashletPeer::DAS_TITLE ); + $criteria->addJoin( DashletInstancePeer::DAS_UID, DashletPeer::DAS_UID, Criteria::INNER_JOIN ); + $criteria->add( DashletInstancePeer::DAS_INS_STATUS, '1' ); + $criteria->add( DashletInstancePeer::DAS_INS_OWNER_TYPE, 'DEPARTMENT' ); + $criteria->add( DashletInstancePeer::DAS_INS_OWNER_UID, $depUid ); + $dataset = DashletInstancePeer::doSelectRS( $criteria ); + $dataset->setFetchmode( ResultSet::FETCHMODE_ASSOC ); + $dataset->next(); + while ($row = $dataset->getRow()) { + if (! isset( $dashletsInstances[$row['DAS_INS_UID']] )) { + $arrayField = unserialize( $row["DAS_INS_ADDITIONAL_PROPERTIES"] ); + + if (self::verifyPluginDashlet($row["DAS_CLASS"])) { + $row['DAS_XTEMPLATE'] = $this->getXTemplate( $row['DAS_CLASS'] ); + $row["DAS_TITLE"] = (isset( $arrayField["DAS_INS_TITLE"] ) && ! empty( $arrayField["DAS_INS_TITLE"] )) ? $arrayField["DAS_INS_TITLE"] : $row["DAS_TITLE"]; + $row["DAS_TITLE"] = $row["DAS_TITLE"] . ((isset( $arrayField["DAS_INS_SUBTITLE"] ) && ! empty( $arrayField["DAS_INS_SUBTITLE"] )) ? str_replace( "@@USR_USERNAME", $_SESSION["USR_USERNAME"], $arrayField["DAS_INS_SUBTITLE"] ) : null); + + $dashletsInstances[$row['DAS_INS_UID']] = $row; + } + } + $dataset->next(); + } + } + // Check for group assignments + $groupsInstance = new Groups(); + $groups = $groupsInstance->getGroupsForUser( $userUid ); + foreach ($groups as $grpUid => $group) { + $criteria = new Criteria( 'workflow' ); + $criteria->addSelectColumn( DashletInstancePeer::DAS_INS_UID ); + $criteria->addSelectColumn( DashletInstancePeer::DAS_INS_ADDITIONAL_PROPERTIES ); + $criteria->addSelectColumn( DashletPeer::DAS_CLASS ); + $criteria->addSelectColumn( DashletPeer::DAS_TITLE ); + $criteria->addJoin( DashletInstancePeer::DAS_UID, DashletPeer::DAS_UID, Criteria::INNER_JOIN ); + $criteria->add( DashletInstancePeer::DAS_INS_STATUS, '1' ); + $criteria->add( DashletInstancePeer::DAS_INS_OWNER_TYPE, 'GROUP' ); + $criteria->add( DashletInstancePeer::DAS_INS_OWNER_UID, $grpUid ); + $dataset = DashletInstancePeer::doSelectRS( $criteria ); + $dataset->setFetchmode( ResultSet::FETCHMODE_ASSOC ); + $dataset->next(); + while ($row = $dataset->getRow()) { + if (! isset( $dashletsInstances[$row['DAS_INS_UID']] )) { + $arrayField = unserialize( $row["DAS_INS_ADDITIONAL_PROPERTIES"] ); + + if (self::verifyPluginDashlet($row["DAS_CLASS"])) { + $row['DAS_XTEMPLATE'] = $this->getXTemplate( $row['DAS_CLASS'] ); + $row["DAS_TITLE"] = (isset( $arrayField["DAS_INS_TITLE"] ) && ! empty( $arrayField["DAS_INS_TITLE"] )) ? $arrayField["DAS_INS_TITLE"] : $row["DAS_TITLE"]; + $row["DAS_TITLE"] = $row["DAS_TITLE"] . ((isset( $arrayField["DAS_INS_SUBTITLE"] ) && ! empty( $arrayField["DAS_INS_SUBTITLE"] )) ? str_replace( "@@USR_USERNAME", $_SESSION["USR_USERNAME"], $arrayField["DAS_INS_SUBTITLE"] ) : null); + + $dashletsInstances[$row['DAS_INS_UID']] = $row; + } + } + $dataset->next(); + } + } + foreach ($dashletsInstances as $key => $field) { + $dashletsInstances[$key]['DAS_TITLE'] = htmlentities($field['DAS_TITLE'], ENT_QUOTES, 'UTF-8') . ''; + } + // Check for role assigments + // ToDo: Next release + // Check for permission assigments + // ToDo: Next release + return array_values( $dashletsInstances ); + } catch (Exception $error) { + throw $error; + } + } + + public static function getXTemplate ($className) + { + try { + if (! class_exists( $className )) { + self::setIncludePath(); + require_once 'classes' . PATH_SEP . 'class.' . $className . '.php'; + } + + eval( "\$additionalFields = $className::getXTemplate(\$className);" ); + return $additionalFields; + } catch (Exception $error) { + throw $error; + } + } + + public static function verifyPluginDashlet ($className) + { + // 1-- if name class is in core + $fileExist = PATH_CORE . 'classes' . PATH_SEP . 'class.' . $className . '.php'; + if (file_exists($fileExist)) { + return true; + } + + // 2-- if name class is in plugin + + //---- verify the name plugin of the class + $pluginName = ''; + $oPluginRegistry = PluginRegistry::loadSingleton(); + $pluginsDashlets = $oPluginRegistry->getDashlets(); + + foreach ($pluginsDashlets as $pluginDashlet) { + $fileExist = PATH_PLUGINS . $pluginDashlet . PATH_SEP . 'classes' . PATH_SEP . 'class.' . $className . '.php'; + if (file_exists($fileExist)) { + $pluginName = $pluginDashlet; + break; + } + } + + //---- verify if the plugin is active + if ($pluginName == '') { + return false; + } else { + if ($handle = opendir( PATH_PLUGINS )) { + while (false !== ($file = readdir( $handle ))) { + if (strpos( $file, '.php', 1 ) && is_file( PATH_PLUGINS . $file )) { + include_once (PATH_PLUGINS . $file); + $pluginDetail = $oPluginRegistry->getPluginDetails( $file ); + if ($pluginDetail->getNamespace() == $pluginName) { + return $pluginDetail->isEnabled(); + } + } + } + closedir( $handle ); + } + return true; + } + } + + private static function setIncludePath () + { + $oPluginRegistry = PluginRegistry::loadSingleton(); + $pluginsDashlets = $oPluginRegistry->getDashlets(); + foreach ($pluginsDashlets as $pluginDashlet) { + set_include_path( get_include_path() . PATH_SEPARATOR . PATH_PLUGINS . $pluginDashlet . PATH_SEP ); + } + } +} \ No newline at end of file diff --git a/workflow/engine/classes/PmDrive.php b/workflow/engine/classes/PmDrive.php new file mode 100644 index 000000000..20cc3d455 --- /dev/null +++ b/workflow/engine/classes/PmDrive.php @@ -0,0 +1,268 @@ +folderIdPMDrive != '') { + return; + } + + $user = new Users(); + $dataUser = $user->load($usrUid); + + if (!empty($dataUser['USR_EMAIL'])) { + $this->setDriveUser($dataUser['USR_EMAIL']); + } + $this->folderIdPMDrive = empty($dataUser['USR_PMDRIVE_FOLDER_UID']) ? '' : $dataUser['USR_PMDRIVE_FOLDER_UID']; + + $conf = $this->getConfigGmail(); + $this->folderNamePMDrive = empty($conf->aConfig['folderNamePMDrive']) ? 'PMDrive (' . SYS_SYS . ')' : $conf->aConfig['folderNamePMDrive']; + + if ($this->folderIdPMDrive == '') { + $folderid = $this->createFolder($this->folderNamePMDrive); + + $this->folderIdPMDrive = $folderid->id; + $dataUser['USR_PMDRIVE_FOLDER_UID'] = $folderid->id; + $user->update($dataUser); + } + } + + public function getFolderIdPMDrive($usrUid) + { + $this->validateFolderPMDrive($usrUid); + return $this->folderIdPMDrive; + } + + /** + * Set account user + * + * @param $user email user + */ + public function setFolderNamePMDrive($name) + { + $conf = $this->getConfigGmail(); + $conf->aConfig['folderNamePMDrive'] = $name; + $conf->saveConfig('GOOGLE_API_SETTINGS', '', '', ''); + + $this->folderNamePMDrive = $name; + } + + /** + * Set account user + * + * @param $user email user + */ + public function setDriveUser($user) + { + $this->setUser($user); + } + + /** + * Instance google service Drive + * + * @return Google_Service_Drive $service Drive API service instance. + */ + private function serviceDrive() + { + $client = $this->serviceClient(); + $service = new Google_Service_Drive($client); + return $service; + } + + /** + * Retrieve a list of File resources. + * + * @param string $fileId uid file + * @return Array List of Google_Service_Drive_DriveFile resources. + */ + public function listFolder($fileId) + { + $this->setScope(static::DRIVE); + $this->setScope(static::DRIVE_FILE); + $this->setScope(static::DRIVE_READONLY); + $this->setScope(static::DRIVE_METADATA); + $this->setScope(static::DRIVE_METADATA_READONLY); + $this->setScope(static::DRIVE_APPDATA); + + $service = $this->serviceDrive(); + + try { + $rows = array(); + $parameters['q'] = "'" . $fileId . "' in parents and trashed = false"; + $parents = $service->files->listFiles($parameters); + + foreach ($parents->getItems() as $parent) { + $rows = $parent; + } + + } catch (Exception $e) { + error_log( G::LoadTranslation("ID_MSG_AJAX_FAILURE") . $e->getMessage()); + } + return $rows; + } + + /** + * Retrieve a list of File resources. + * + * @param string $name Title of the file to insert, including the extension. + * @param string $parentId Parent folder's ID. + * @return Google_Service_Drive_DriveFile The file that was inserted. NULL is returned if an API error occurred. + */ + public function createFolder($name, $parentId = null) + { + $this->setScope(static::DRIVE_FILE); + + $service = $this->serviceDrive(); + + $file = new Google_Service_Drive_DriveFile(); + $file->setMimeType("application/vnd.google-apps.folder"); + $file->setTitle($name); + + if ($parentId != null) { + $parent = new Google_Service_Drive_ParentReference(); + $parent->setId($parentId); + $file->setParents(array($parent)); + } + + try { + $createdFolder = $service->files->insert($file); + } catch (Exception $e) { + $createdFolder = null; + error_log ( G::LoadTranslation("ID_MSG_AJAX_FAILURE") . $e->getMessage()); + } + return $createdFolder; + } + + /** + * upload new file + * + * @param string $mime MIME type of the file to insert. + * @param string $src location of the file to insert. + * @param string $name Title of the file to insert, including the extension. + * @return Google_Service_Drive_DriveFile The file that was inserted. NULL is returned if an API error occurred. + */ + public function uploadFile($mime, $src, $name, $parentId = null) + { + $this->setScope(static::DRIVE_FILE); + + $service = $this->serviceDrive(); + + $file = new Google_Service_Drive_DriveFile(); + $file->setMimeType($mime); + $file->setTitle($name); + + // Set the parent folder. + if ($parentId != null) { + $parent = new Google_Service_Drive_ParentReference(); + $parent->setId($parentId); + $file->setParents(array($parent)); + } + + $data = file_get_contents($src); + + try { + $createdFile = $service->files->insert( + $file, + array( + 'data' => $data, + 'mimeType' => $mime, + 'uploadType' => 'media' + ) + ); + + } catch (Exception $e) { + error_log( G::LoadTranslation("ID_MSG_AJAX_FAILURE") . $e->getMessage()); + } + return $createdFile; + } + + /** + * Download a file's content. + * + * @param string $fileId id file. + * @return String The file's content if successful, null otherwise + */ + public function downloadFile($fileId) + { + $this->setScope(static::DRIVE); + $this->setScope(static::DRIVE_APPDATA); + $this->setScope(static::DRIVE_APPS_READONLY); + $this->setScope(static::DRIVE_FILE); + $this->setScope(static::DRIVE_METADATA); + $this->setScope(static::DRIVE_METADATA_READONLY); + $this->setScope(static::DRIVE_READONLY); + $service = $this->serviceDrive(); + $response = null; + + try { + $file = $service->files->get($fileId); + $downloadUrl = $file->getDownloadUrl(); + if ($downloadUrl) { + $request = new Google_Http_Request($downloadUrl, 'GET', null, null); + $httpRequest = $service->getClient()->getAuth()->authenticatedRequest($request); + if ($httpRequest->getResponseHttpCode() == 200) { + $response = $httpRequest->getResponseBody(); + } else { + error_log(G::LoadTranslation("ID_MSG_AJAX_FAILURE")); + } + } else { + error_log(G::LoadTranslation("ID_PMDRIVE_NO_CONTENT_IN_FILE")); + } + } catch (Exception $e) { + error_log( G::LoadTranslation("ID_MSG_AJAX_FAILURE") . $e->getMessage()); + } + return $response; + } + + /** + * Insert a new permission. + * + * @param String $fileId ID of the file to insert permission for. + * @param String $value User or group e-mail address, domain name or NULL for "default" type. + * @param String $type The value "user", "group", "domain" or "default". + * @param String $role The value "owner", "writer" or "reader". + * @return Google_Servie_Drive_Permission The inserted permission. NULL is returned if an API error occurred. + */ + public function setPermission($fileId, $value, $type = 'user', $role = 'reader', $sendNotification = false) + { + $this->setScope(static::DRIVE); + $this->setScope(static::DRIVE_FILE); + + $service = $this->serviceDrive(); + $permission = null; + + $newPermission = new Google_Service_Drive_Permission(); + $newPermission->setValue($value); + $newPermission->setType($type); + $newPermission->setRole($role); + + try { + $permission = $service->permissions->insert( + $fileId, + $newPermission, + array( + 'sendNotificationEmails' => $sendNotification + ) + ); + + } catch (Exception $e) { + error_log(G::LoadTranslation("ID_MSG_AJAX_FAILURE") . $e->getMessage()); + } + return $permission; + } +} diff --git a/workflow/engine/classes/PmGoogleApi.php b/workflow/engine/classes/PmGoogleApi.php new file mode 100644 index 000000000..e8e16433d --- /dev/null +++ b/workflow/engine/classes/PmGoogleApi.php @@ -0,0 +1,245 @@ +verifyfeature('7qhYmF1eDJWcEdwcUZpT0k4S0xTRStvdz09') || $licensedFeatures->verifyfeature('AhKNjBEVXZlWUFpWE8wVTREQ0FObmo0aTdhVzhvalFic1M='))) { + G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels'); + G::header('location: ../login/login'); + die; + } + $this->loadSettings(); + } + + public function setScope($scope) + { + $this->scope[] = $scope; + } + + public function getScope() + { + return $this->scope; + } + + public function setUser($user) + { + $this->user = $user; + } + + public function getUser() + { + return $this->user; + } + + public function getConfigGmail() + { + $this->configuration = new Configurations(); + $this->configuration->loadConfig($gmail, 'GOOGLE_API_SETTINGS', ''); + } + + public function setConfigGmail ($id, $value) + { + $this->configuration->aConfig[$id] = $value; + $this->configuration->saveConfig('GOOGLE_API_SETTINGS', '', '', ''); + } + + public function setServiceAccountEmail($serviceAccountEmail) + { + $this->setConfigGmail('serviceAccountEmail', $serviceAccountEmail); + $this->serviceAccountEmail = $serviceAccountEmail; + } + + public function getServiceAccountEmail() + { + return $this->serviceAccountEmail; + } + + public function setServiceAccountCertificate ($serviceAccountCertificate) + { + $this->setConfigGmail('serviceAccountCertificate', $serviceAccountCertificate); + $this->serviceAccountCertificate = $serviceAccountCertificate; + } + + public function getServiceAccountCertificate() + { + return $this->serviceAccountCertificate; + } + + public function setServiceGmailStatus($status) + { + $licensedFeatures = &PMLicensedFeatures::getSingleton(); + if (!$licensedFeatures->verifyfeature('7qhYmF1eDJWcEdwcUZpT0k4S0xTRStvdz09')) { + $status = false; + } + $this->setConfigGmail('serviceGmailStatus', $status); + $this->serviceGmailStatus = $status; + } + + public function getServiceGmailStatus() + { + return $this->serviceGmailStatus; + } + + public function setServiceDriveStatus($status) + { + $licensedFeatures = &PMLicensedFeatures::getSingleton(); + if (!$licensedFeatures->verifyfeature('AhKNjBEVXZlWUFpWE8wVTREQ0FObmo0aTdhVzhvalFic1M=')) { + $status = false; + } + $this->setConfigGmail('serviceDriveStatus', $status); + $this->serviceDriveStatus = $status; + } + + public function getServiceDriveStatus() + { + return $this->serviceDriveStatus; + } + + /** + * load configuration gmail service account + * + */ + public function loadSettings() + { + $this->getConfigGmail(); + + $serviceAccountCertificate = empty($this->configuration->aConfig['serviceAccountCertificate']) ? '' : $this->configuration->aConfig['serviceAccountCertificate']; + $serviceAccountEmail = empty($this->configuration->aConfig['serviceAccountEmail']) ? '' : $this->configuration->aConfig['serviceAccountEmail']; + $serviceGmailStatus = empty($this->configuration->aConfig['serviceGmailStatus']) ? false : $this->configuration->aConfig['serviceGmailStatus']; + $serviceDriveStatus = empty($this->configuration->aConfig['serviceDriveStatus']) ? false : $this->configuration->aConfig['serviceDriveStatus']; + + $this->scope = array(); + + $this->serviceAccountEmail = $serviceAccountEmail; + $this->serviceAccountCertificate = $serviceAccountCertificate; + $this->serviceGmailStatus = $serviceGmailStatus; + $this->serviceDriveStatus = $serviceDriveStatus; + } + + /** + * New service client - Authentication google Api + * + * @return Google_Service_Client $service API service instance. + */ + public function serviceClient() + { + $client = null; + if (file_exists(PATH_DATA_SITE . $this->serviceAccountCertificate)) { + $key = file_get_contents(PATH_DATA_SITE . $this->serviceAccountCertificate); + } else { + throw new Exception(G::LoadTranslation('ID_GOOGLE_CERTIFICATE_ERROR')); + } + + $data = json_decode($key); + $assertionCredentials = new Google_Auth_AssertionCredentials( + $this->serviceAccountEmail, + $this->scope, + $data->private_key + ); + + $assertionCredentials->sub = $this->user; + + $client = new Google_Client(); + $client->setApplicationName("PMDrive"); + $client->setAssertionCredentials($assertionCredentials); + + + return $client; + } + + /** + * New service client - Authentication google Api + * + * @param $credentials + * @throws \Exception + * @return \StdClass response. + */ + public function testService($credentials) + { + + $scope = array( + static::DRIVE, + static::DRIVE_FILE, + static::DRIVE_READONLY, + static::DRIVE_METADATA, + static::DRIVE_METADATA_READONLY, + static::DRIVE_APPDATA, + static::DRIVE_PHOTOS_READONLY + ); + + if (file_exists($credentials->pathServiceAccountCertificate)) { + $key = file_get_contents($credentials->pathServiceAccountCertificate); + } else { + throw new Exception(G::LoadTranslation('ID_GOOGLE_CERTIFICATE_ERROR')); + } + $data = json_decode($key); + $assertionCredentials = new Google_Auth_AssertionCredentials( + $credentials->emailServiceAccount, + $scope, + $data->private_key + ); + $assertionCredentials->sub = $this->user; + + $client = new Google_Client(); + $client->setApplicationName("PMDrive"); + $client->setAssertionCredentials($assertionCredentials); + + $service = new Google_Service_Drive($client); + + $result = new StdClass(); + $result->success = true; + + $result->currentUserName = G::LoadTranslation('ID_SERVER_COMMUNICATION_ERROR'); + $result->rootFolderId = G::LoadTranslation('ID_SERVER_COMMUNICATION_ERROR'); + $result->quotaType = G::LoadTranslation('ID_SERVER_COMMUNICATION_ERROR'); + $result->quotaBytesTotal = G::LoadTranslation('ID_SERVER_COMMUNICATION_ERROR'); + $result->quotaBytesUsed = G::LoadTranslation('ID_SERVER_COMMUNICATION_ERROR'); + + try { + $about = $service->about->get(); + + $result->currentUserName = $about->getName(); + $result->rootFolderId = $about->getRootFolderId(); + $result->quotaType = $about->getQuotaType(); + $result->quotaBytesTotal = $about->getQuotaBytesTotal(); + $result->quotaBytesUsed = $about->getQuotaBytesUsed(); + $result->responseGmailTest = G::LoadTranslation('ID_SUCCESSFUL_CONNECTION'); + } catch (Exception $e) { + $result->success = false; + $result->responseGmailTest = G::LoadTranslation('ID_SERVER_COMMUNICATION_ERROR'); + } + + return $result; + } +} From 9ecfbe0c84cea49eb485a019c5234669f9ced3ea Mon Sep 17 00:00:00 2001 From: dante Date: Fri, 11 Aug 2017 14:10:44 -0400 Subject: [PATCH 4/5] Changes 3 and 4 of the google sheet --- gulliver/system/class.codeScanner.php | 2 +- workflow/engine/bin/tasks/cliAddons.php | 4 +- workflow/engine/bin/tasks/cliCommon.php | 2 +- workflow/engine/bin/tasks/cliHotfix.php | 2 +- workflow/engine/bin/tasks/cliListIds.php | 2 +- workflow/engine/bin/tasks/cliUpgrade.php | 4 +- workflow/engine/bin/tasks/cliWorkspaces.php | 22 ++--- .../classes/ActionsByEmailCoreClass.php | 2 +- .../engine/classes/IndicatorsCalculator.php | 2 +- .../engine/classes/MultipleFilesBackup.php | 8 +- workflow/engine/classes/PmSystem.php | 2 +- workflow/engine/classes/Upgrade.php | 41 +++++---- workflow/engine/classes/WorkspaceTools.php | 25 +++-- workflow/engine/classes/WsBase.php | 46 ++-------- .../classes/WsCreateDepartmentResponse.php | 33 +------ .../engine/classes/WsCreateGroupResponse.php | 34 +------ workflow/engine/classes/class.pmFunctions.php | 44 ++++----- .../engine/classes/model/AddonsManager.php | 1 - workflow/engine/classes/model/Content.php | 2 +- workflow/engine/controllers/pmTablesProxy.php | 2 +- .../methods/services/ActionsByEmail.php | 2 +- .../services/ActionsByEmailDataFormPost.php | 2 +- workflow/engine/methods/services/soap2.php | 92 +++++++++---------- .../engine/methods/setup/languages_Import.php | 2 +- .../src/ProcessMaker/BusinessModel/Cases.php | 16 ++-- .../BusinessModel/Cases/InputDocument.php | 2 +- .../BusinessModel/Consolidated.php | 2 +- .../src/ProcessMaker/BusinessModel/Light.php | 2 +- .../BusinessModel/MessageApplication.php | 2 +- .../ProcessMaker/BusinessModel/Pmgmail.php | 2 +- .../ProcessMaker/BusinessModel/TimerEvent.php | 2 +- 31 files changed, 158 insertions(+), 248 deletions(-) diff --git a/gulliver/system/class.codeScanner.php b/gulliver/system/class.codeScanner.php index 51b4a40ea..889f371be 100644 --- a/gulliver/system/class.codeScanner.php +++ b/gulliver/system/class.codeScanner.php @@ -26,7 +26,7 @@ class CodeScanner if (!is_null($option)) { switch (gettype($option)) { case 'string': - $workspace = new workspaceTools($option); + $workspace = new WorkspaceTools($option); if ($workspace->workspaceExists()) { $arraySystemConfiguration = PmSystem::getSystemConfiguration('', '', $workspace->name); diff --git a/workflow/engine/bin/tasks/cliAddons.php b/workflow/engine/bin/tasks/cliAddons.php index 3929af511..52a6fdafe 100644 --- a/workflow/engine/bin/tasks/cliAddons.php +++ b/workflow/engine/bin/tasks/cliAddons.php @@ -57,7 +57,7 @@ function run_addon_core_install($args) } /////// - $ws = new workspaceTools($workspace); + $ws = new WorkspaceTools($workspace); $ws->initPropel(false); require_once PATH_CORE . 'methods' . PATH_SEP . 'enterprise' . PATH_SEP . 'enterprise.php'; @@ -73,7 +73,7 @@ function run_addon_core_install($args) $addon->install(); if ($addon->isCore()) { - $ws = new workspaceTools($workspace); + $ws = new WorkspaceTools($workspace); $ws->initPropel(false); $addon->setState("install-finish"); } else { diff --git a/workflow/engine/bin/tasks/cliCommon.php b/workflow/engine/bin/tasks/cliCommon.php index c902dcf9d..8bb00d4bc 100644 --- a/workflow/engine/bin/tasks/cliCommon.php +++ b/workflow/engine/bin/tasks/cliCommon.php @@ -44,7 +44,7 @@ if(sizeof($output) == 3 && isset($output[2]) && isset($output[2][0])) { function get_workspaces_from_args($args, $includeAll = true) { $workspaces = array(); foreach ($args as $arg) { - $workspaces[] = new workspaceTools($arg); + $workspaces[] = new WorkspaceTools($arg); } if (empty($workspaces) && $includeAll) { $workspaces = PmSystem::listWorkspaces(); diff --git a/workflow/engine/bin/tasks/cliHotfix.php b/workflow/engine/bin/tasks/cliHotfix.php index 2835e646d..f02ae5f73 100644 --- a/workflow/engine/bin/tasks/cliHotfix.php +++ b/workflow/engine/bin/tasks/cliHotfix.php @@ -22,7 +22,7 @@ function runHotfixInstall($command, $args) foreach ($arrayFile as $value) { $f = $value; - $result = workspaceTools::hotfixInstall($f); + $result = WorkspaceTools::hotfixInstall($f); CLI::logging($result["message"] . "\n"); } diff --git a/workflow/engine/bin/tasks/cliListIds.php b/workflow/engine/bin/tasks/cliListIds.php index 01e66e3c3..6bc7fa0c8 100644 --- a/workflow/engine/bin/tasks/cliListIds.php +++ b/workflow/engine/bin/tasks/cliListIds.php @@ -20,7 +20,7 @@ function cliListIds($command, $args) $workspace->dbInfo['DB_USER'], $workspace->dbInfo['DB_PASS'] ); - foreach (workspaceTools::$populateIdsQueries as $query) { + foreach (WorkspaceTools::$populateIdsQueries as $query) { echo "."; $dbh->query($query); } diff --git a/workflow/engine/bin/tasks/cliUpgrade.php b/workflow/engine/bin/tasks/cliUpgrade.php index 934c0ff56..276871557 100644 --- a/workflow/engine/bin/tasks/cliUpgrade.php +++ b/workflow/engine/bin/tasks/cliUpgrade.php @@ -219,10 +219,10 @@ function run_unify_database($args) if (sizeof($args) > 2) { $filename = array_pop($args); foreach ($args as $arg) { - $workspaces[] = new workspaceTools($arg); + $workspaces[] = new WorkspaceTools($arg); } } else if (sizeof($args) > 0) { - $workspace = new workspaceTools($args[0]); + $workspace = new WorkspaceTools($args[0]); $workspaces[] = $workspace; } diff --git a/workflow/engine/bin/tasks/cliWorkspaces.php b/workflow/engine/bin/tasks/cliWorkspaces.php index 9f6725af0..c54eb927e 100644 --- a/workflow/engine/bin/tasks/cliWorkspaces.php +++ b/workflow/engine/bin/tasks/cliWorkspaces.php @@ -364,7 +364,7 @@ CLI::taskRun("regenerate_pmtable_classes"); */ function run_info($args, $opts) { $workspaces = get_workspaces_from_args($args); - workspaceTools::printSysInfo(); + WorkspaceTools::printSysInfo(); foreach ($workspaces as $workspace) { echo "\n"; $workspace->printMetadata(false); @@ -490,7 +490,7 @@ function run_plugins_database_upgrade($args, $opts) { function run_database_export($args, $opts) { if (count($args) < 2) throw new Exception ("Please provide a workspace name and a directory for export"); - $workspace = new workspaceTools($args[0]); + $workspace = new WorkspaceTools($args[0]); $workspace->exportDatabase($args[1]); } @@ -670,10 +670,10 @@ function run_workspace_backup($args, $opts) { if (sizeof($args) > 2) { $filename = array_pop($args); foreach ($args as $arg) { - $workspaces[] = new workspaceTools($arg); + $workspaces[] = new WorkspaceTools($arg); } } else if (sizeof($args) > 0) { - $workspace = new workspaceTools($args[0]); + $workspace = new WorkspaceTools($args[0]); $workspaces[] = $workspace; if (sizeof($args) == 2) { $filename = $args[1]; @@ -712,14 +712,14 @@ function run_workspace_backup($args, $opts) { $multipleBackup->letsBackup(); } else { //ansient method to backup into one large file - $backup = workspaceTools::createBackup($filename); + $backup = WorkspaceTools::createBackup($filename); foreach ($workspaces as $workspace) { $workspace->backup($backup); } } CLI::logging("\n"); - workspaceTools::printSysInfo(); + WorkspaceTools::printSysInfo(); foreach ($workspaces as $workspace) { CLI::logging("\n"); $workspace->printMetadata(false); @@ -747,7 +747,7 @@ function run_workspace_restore($args, $opts) { $lang = array_key_exists("lang", $opts) ? $opts['lang'] : 'en'; $port = array_key_exists("port", $opts) ? $opts['port'] : ''; if ($info) { - workspaceTools::getBackupInfo($filename); + WorkspaceTools::getBackupInfo($filename); } else { CLI::logging("Restoring from $filename\n"); $workspace = array_key_exists("workspace", $opts) ? $opts['workspace'] : NULL; @@ -773,7 +773,7 @@ function run_workspace_restore($args, $opts) { CLI::error("Please, you should use -m parameter to restore them.\n"); return; } - workspaceTools::restore($filename, $workspace, $dstWorkspace, $overwrite, $lang, $port ); + WorkspaceTools::restore($filename, $workspace, $dstWorkspace, $overwrite, $lang, $port ); } } } else { @@ -890,7 +890,7 @@ function run_migrate_itee_to_dummytask($args, $opts){ $arrayWorkspace = get_workspaces_from_args($args); foreach ($arrayWorkspace as $workspace) { try { - $ws = new workspaceTools($workspace->name); + $ws = new WorkspaceTools($workspace->name); $res = $ws->migrateIteeToDummytask($workspace->name); } catch (Exception $e) { G::outRes( "> Error: ".CLI::error($e->getMessage()) . "\n" ); @@ -1114,7 +1114,7 @@ function run_migrate_indexing_acv($args, $opts) { function run_migrate_plugin($args, $opts) { $workspaces = get_workspaces_from_args($args); //Check if the command is executed by a specific workspace - /** @var workspaceTools $workspace */ + /** @var WorkspaceTools $workspace */ if (count($workspaces) === 1) { $workspace = array_shift($workspaces); CLI::logging('Regenerating Singleton in: ' . pakeColor::colorize($workspace->name, 'INFO') . "\n"); @@ -1148,7 +1148,7 @@ function regenerate_pmtable_classes($args, $opts) CLI::logging("> Updating generated class files for PM Tables...\n"); Bootstrap::setConstantsRelatedWs($args[0]); - $workspaceTools = new workspaceTools($args[0]); + $workspaceTools = new WorkspaceTools($args[0]); $workspaceTools->fixReferencePathFiles(PATH_DATA_SITE . "classes", PATH_DATA); $stop = microtime(true); diff --git a/workflow/engine/classes/ActionsByEmailCoreClass.php b/workflow/engine/classes/ActionsByEmailCoreClass.php index 2ec036fc6..0c9b0996c 100644 --- a/workflow/engine/classes/ActionsByEmailCoreClass.php +++ b/workflow/engine/classes/ActionsByEmailCoreClass.php @@ -291,7 +291,7 @@ class actionsByEmailCoreClass extends PMPlugin } } - $wsBaseInstance = new wsBase(); + $wsBaseInstance = new WsBase(); $result = $wsBaseInstance->sendMessage( $data->APP_UID, $emailFrom, diff --git a/workflow/engine/classes/IndicatorsCalculator.php b/workflow/engine/classes/IndicatorsCalculator.php index 832e07a15..2d877a52a 100644 --- a/workflow/engine/classes/IndicatorsCalculator.php +++ b/workflow/engine/classes/IndicatorsCalculator.php @@ -651,7 +651,7 @@ class IndicatorsCalculator private function pdoConnection() { $currentWS = defined('SYS_SYS') ? SYS_SYS : 'Wokspace Undefined'; - $workSpace = new workspaceTools($currentWS); + $workSpace = new WorkspaceTools($currentWS); $arrayHost = explode(':', $workSpace->dbHost); $host = "host=".$arrayHost[0]; $port = count($arrayHost) > 1 ? ";port=".$arrayHost[1] : ""; diff --git a/workflow/engine/classes/MultipleFilesBackup.php b/workflow/engine/classes/MultipleFilesBackup.php index 6f32655fd..4aabcf517 100644 --- a/workflow/engine/classes/MultipleFilesBackup.php +++ b/workflow/engine/classes/MultipleFilesBackup.php @@ -6,7 +6,7 @@ * * Exports the database and copies the files to an tar archive o several if the max filesize is reached. */ - + /** * Class MultipleFilesBackup * create a backup of this workspace @@ -135,7 +135,7 @@ if (empty( $metaFiles )) { $metaFiles = glob( $tempDirectory . "/*.txt" ); if (! empty( $metaFiles )) { - return workspaceTools::restoreLegacy( $tempDirectory ); + return WorkspaceTools::restoreLegacy( $tempDirectory ); } else { throw new Exception( "No metadata found in backup" ); } @@ -170,7 +170,7 @@ } else { CLI::logging( "> Restoring " . CLI::info( $backupWorkspace ) . " to " . CLI::info( $workspaceName ) . "\n" ); } - $workspace = new workspaceTools( $workspaceName ); + $workspace = new WorkspaceTools( $workspaceName ); if ($workspace->workspaceExists()) { if ($overwrite) { CLI::logging( CLI::warning( "> Workspace $workspaceName already exist, overwriting!" ) . "\n" ); @@ -194,7 +194,7 @@ CLI::logging( "> Changing file permissions\n" ); $shared_stat = stat( PATH_DATA ); if ($shared_stat !== false) { - workspaceTools::dirPerms( $workspace->path, $shared_stat['uid'], $shared_stat['gid'], $shared_stat['mode'] ); + WorkspaceTools::dirPerms( $workspace->path, $shared_stat['uid'], $shared_stat['gid'], $shared_stat['mode'] ); } else { CLI::logging( CLI::error( "Could not get the shared folder permissions, not changing workspace permissions" ) . "\n" ); } diff --git a/workflow/engine/classes/PmSystem.php b/workflow/engine/classes/PmSystem.php index 509d40e4e..f7b5bde73 100644 --- a/workflow/engine/classes/PmSystem.php +++ b/workflow/engine/classes/PmSystem.php @@ -93,7 +93,7 @@ class PmSystem $aWorkspaces = array (); foreach (glob( PATH_DB . "*" ) as $filename) { if (is_dir( $filename ) && file_exists( $filename . "/db.php" )) { - $aWorkspaces[] = new workspaceTools( basename( $filename ) ); + $aWorkspaces[] = new WorkspaceTools( basename( $filename ) ); } } return $aWorkspaces; diff --git a/workflow/engine/classes/Upgrade.php b/workflow/engine/classes/Upgrade.php index 8fa458057..80dda90a3 100644 --- a/workflow/engine/classes/Upgrade.php +++ b/workflow/engine/classes/Upgrade.php @@ -1,24 +1,5 @@ ls_dir($extractDir); //printf("Time to list files: %f\n", microtime(1) - $time); echo "Updating ProcessMaker files...\n"; $time = microtime(1); @@ -142,4 +123,24 @@ class Upgrade } //printf("Time to install: %f\n", microtime(1) - $start); } + + private function ls_dir($dir, $basename = null) + { + $files = array(); + //if (substr($dir, -1) != "/") + // $dir .= "/"; + if ($basename == null) { + $basename = $dir; + } + foreach (glob("$dir/*") as $filename) { + //var_dump(substr($filename, strlen($basename) + 1)); + if (is_dir($filename)) { + $files = array_merge($files, $this->ls_dir($filename, $basename)); + } else { + $files[] = substr($filename, strlen($basename) + 1); + } + } + return $files; + } + } diff --git a/workflow/engine/classes/WorkspaceTools.php b/workflow/engine/classes/WorkspaceTools.php index 56d78d9a0..564f80850 100644 --- a/workflow/engine/classes/WorkspaceTools.php +++ b/workflow/engine/classes/WorkspaceTools.php @@ -3,15 +3,14 @@ use ProcessMaker\Util\FixReferencePath; use ProcessMaker\Plugins\Adapters\PluginAdapter; -/** - * /** * class workspaceTools. * * Utility functions to manage a workspace. * * @package workflow.engine.classes - */class workspaceTools + */ +class WorkspaceTools { public $name = null; public $path = null; @@ -1236,11 +1235,11 @@ use ProcessMaker\Plugins\Adapters\PluginAdapter; public function printMetadata($printSysInfo = true) { if ($printSysInfo) { - workspaceTools::printSysInfo(); + WorkspaceTools::printSysInfo(); CLI::logging("\n"); } - workspaceTools::printInfo($this->getMetadata()); + WorkspaceTools::printInfo($this->getMetadata()); } /** @@ -1576,7 +1575,7 @@ use ProcessMaker\Plugins\Adapters\PluginAdapter; $data = file_get_contents($metafile); $workspaceData = G::json_decode($data); CLI::logging("\n"); - workspaceTools::printInfo((array)$workspaceData); + WorkspaceTools::printInfo((array)$workspaceData); } G::rm_dir($tempDirectory); @@ -1600,7 +1599,7 @@ use ProcessMaker\Plugins\Adapters\PluginAdapter; if (basename($item) == "." || basename($item) == "..") { continue; } - workspaceTools::dirPerms($item, $owner, $group, $perms); + WorkspaceTools::dirPerms($item, $owner, $group, $perms); } } } @@ -1639,7 +1638,7 @@ use ProcessMaker\Plugins\Adapters\PluginAdapter; if (empty($metaFiles)) { $metaFiles = glob($tempDirectory . "/*.txt"); if (!empty($metaFiles)) { - return workspaceTools::restoreLegacy($tempDirectory); + return WorkspaceTools::restoreLegacy($tempDirectory); } else { throw new Exception("No metadata found in backup"); } @@ -1694,7 +1693,7 @@ use ProcessMaker\Plugins\Adapters\PluginAdapter; } else { CLI::logging("> Restoring " . CLI::info($backupWorkspace) . " to " . CLI::info($workspaceName) . "\n"); } - $workspace = new workspaceTools($workspaceName); + $workspace = new WorkspaceTools($workspaceName); if (PmInstaller::isset_site($workspaceName)) { if ($overwrite) { @@ -1727,7 +1726,7 @@ use ProcessMaker\Plugins\Adapters\PluginAdapter; $shared_stat = stat(PATH_DATA); if ($shared_stat !== false) { - workspaceTools::dirPerms($workspace->path, $shared_stat['uid'], $shared_stat['gid'], $shared_stat['mode']); + WorkspaceTools::dirPerms($workspace->path, $shared_stat['uid'], $shared_stat['gid'], $shared_stat['mode']); } else { CLI::logging(CLI::error("Could not get the shared folder permissions, not changing workspace permissions") . "\n"); } @@ -2019,7 +2018,7 @@ use ProcessMaker\Plugins\Adapters\PluginAdapter; CLI::logging(" Copying Enterprise Directory to $pathNewFile...\n"); if ($shared_stat !== false) { - workspaceTools::dirPerms($pathDirectoryEnterprise, $shared_stat['uid'], $shared_stat['gid'], $shared_stat['mode']); + WorkspaceTools::dirPerms($pathDirectoryEnterprise, $shared_stat['uid'], $shared_stat['gid'], $shared_stat['mode']); } else { CLI::logging(CLI::error("Could not get shared folder permissions, workspace permissions couldn't be changed") . "\n"); } @@ -2036,7 +2035,7 @@ use ProcessMaker\Plugins\Adapters\PluginAdapter; if (file_exists($pathFileEnterprise)) { CLI::logging(" Copying Enterprise.php file to $pathNewFile...\n"); if ($shared_stat !== false) { - workspaceTools::dirPerms($pathFileEnterprise, $shared_stat['uid'], $shared_stat['gid'], $shared_stat['mode']); + WorkspaceTools::dirPerms($pathFileEnterprise, $shared_stat['uid'], $shared_stat['gid'], $shared_stat['mode']); } else { CLI::logging(CLI::error("Could not get shared folder permissions, workspace permissions couldn't be changed") . "\n"); } @@ -3771,7 +3770,7 @@ use ProcessMaker\Plugins\Adapters\PluginAdapter; CLI::logging("-> Populating PRO_ID, USR_ID at LIST_* \n"); $con->begin(); $stmt = $con->createStatement(); - foreach (workspaceTools::$populateIdsQueries as $query) { + foreach (WorkspaceTools::$populateIdsQueries as $query) { $stmt->executeQuery($query); } $con->commit(); diff --git a/workflow/engine/classes/WsBase.php b/workflow/engine/classes/WsBase.php index 74b0bdebb..85fdb8da8 100644 --- a/workflow/engine/classes/WsBase.php +++ b/workflow/engine/classes/WsBase.php @@ -1,38 +1,7 @@ . - * - * For more information, contact Colosa Inc, 2566 Le Jeune Rd., - * Coral Gables, FL, 33134, USA, or email info@colosa.com. - */ //It works with the table CONFIGURATION in a WF dataBase - -/** - * Copyright (C) 2009 COLOSA - * License: LGPL, see LICENSE - * Last Modify: 26.06.2008 10:05:00 - * Last modify by: Erik Amaru Ortiz - * Last Modify comment(26.06.2008): the session expired verification was removed from here to soap /** * Copyright (C) 2009 COLOSA * License: LGPL, see LICENSE @@ -41,7 +10,8 @@ * Last Modify comment(26.06.2008): the session expired verification was removed from here to soap class * * @package workflow.engine.classes - */class wsBase + */ +class WsBase { public $stored_system_variables; //boolean public $wsSessionId; //web service session id, if the wsbase function is used from a WS request @@ -1488,7 +1458,7 @@ { try { if (trim( $groupName ) == '') { - $result = new wsCreateGroupResponse( 25, G::loadTranslation( 'ID_GROUP_NAME_REQUIRED' ), '' ); + $result = new WsCreateGroupResponse( 25, G::loadTranslation( 'ID_GROUP_NAME_REQUIRED' ), '' ); return $result; } @@ -1498,7 +1468,7 @@ $data['GROUP_NAME'] = $groupName; - $result = new wsCreateGroupResponse( 0, G::loadTranslation( 'ID_GROUP_CREATED_SUCCESSFULLY', SYS_LANG, $data ), $groupId ); + $result = new WsCreateGroupResponse( 0, G::loadTranslation( 'ID_GROUP_CREATED_SUCCESSFULLY', SYS_LANG, $data ), $groupId ); return $result; } catch (Exception $e) { @@ -1519,7 +1489,7 @@ { try { if (trim( $departmentName ) == '') { - $result = new wsCreateDepartmentResponse( 25, G::loadTranslation( 'ID_DEPARTMENT_NAME_REQUIRED' ), '' ); + $result = new WsCreateDepartmentResponse( 25, G::loadTranslation( 'ID_DEPARTMENT_NAME_REQUIRED' ), '' ); return $result; } @@ -1527,13 +1497,13 @@ $department = new Department(); if (($parentUID != '') && ! ($department->existsDepartment( $parentUID ))) { - $result = new wsCreateDepartmentResponse( 26, G::loadTranslation( 'ID_PARENT_DEPARTMENT_NOT_EXIST' ), $parentUID ); + $result = new WsCreateDepartmentResponse( 26, G::loadTranslation( 'ID_PARENT_DEPARTMENT_NOT_EXIST' ), $parentUID ); return $result; } if ($department->checkDepartmentName( $departmentName, $parentUID )) { - $result = new wsCreateDepartmentResponse( 27, G::loadTranslation( 'ID_DEPARTMENT_EXISTS' ), '' ); + $result = new WsCreateDepartmentResponse( 27, G::loadTranslation( 'ID_DEPARTMENT_EXISTS' ), '' ); return $result; } @@ -1547,7 +1517,7 @@ $data['PARENT_UID'] = $parentUID; $data['DEPARTMENT_NAME'] = $departmentName; - $result = new wsCreateDepartmentResponse( 0, G::loadTranslation( 'ID_DEPARTMENT_CREATED_SUCCESSFULLY', SYS_LANG, $data ), $departmentId ); + $result = new WsCreateDepartmentResponse( 0, G::loadTranslation( 'ID_DEPARTMENT_CREATED_SUCCESSFULLY', SYS_LANG, $data ), $departmentId ); return $result; } catch (Exception $e) { diff --git a/workflow/engine/classes/WsCreateDepartmentResponse.php b/workflow/engine/classes/WsCreateDepartmentResponse.php index d43e8cea0..2af4099d8 100644 --- a/workflow/engine/classes/WsCreateDepartmentResponse.php +++ b/workflow/engine/classes/WsCreateDepartmentResponse.php @@ -1,41 +1,12 @@ . - * - * For more information, contact Colosa Inc, 2566 Le Jeune Rd., - * Coral Gables, FL, 33134, USA, or email info@colosa.com. - */ - -/** - * - * @package workflow.engine.classes - */ - /** * Class wsCreateDepartmentResponse * * @package workflow.engine.classes - */class wsCreateDepartmentResponse + */ +class WsCreateDepartmentResponse { public $status_code = 0; public $message = ''; diff --git a/workflow/engine/classes/WsCreateGroupResponse.php b/workflow/engine/classes/WsCreateGroupResponse.php index 20dafc4d5..82d012692 100644 --- a/workflow/engine/classes/WsCreateGroupResponse.php +++ b/workflow/engine/classes/WsCreateGroupResponse.php @@ -1,41 +1,11 @@ . - * - * For more information, contact Colosa Inc, 2566 Le Jeune Rd., - * Coral Gables, FL, 33134, USA, or email info@colosa.com. - */ - -/** - * - * @package workflow.engine.classes - */ - - /** * Class wsCreateGroupResponse * * @package workflow.engine.classes - */class wsCreateGroupResponse + */ +class WsCreateGroupResponse { public $status_code = 0; public $message = ''; diff --git a/workflow/engine/classes/class.pmFunctions.php b/workflow/engine/classes/class.pmFunctions.php index 84ddbd6b0..bc3ce5f7d 100644 --- a/workflow/engine/classes/class.pmFunctions.php +++ b/workflow/engine/classes/class.pmFunctions.php @@ -960,7 +960,7 @@ function PMFSendMessage( } } - $ws = new wsBase(); + $ws = new WsBase(); $result = $ws->sendMessage( $caseId, $sFrom, @@ -1558,7 +1558,7 @@ function WSAddCaseNote($caseUid, $processUid, $taskUid, $userUid, $note, $sendMa */ function PMFTaskCase ($caseId) //its test was successfull { - $ws = new wsBase(); + $ws = new WsBase(); $result = $ws->taskCase( $caseId ); $rows = Array (); $i = 1; @@ -1586,7 +1586,7 @@ function PMFTaskCase ($caseId) //its test was successfull */ function PMFTaskList ($userId) //its test was successfull { - $ws = new wsBase(); + $ws = new WsBase(); $result = $ws->taskList( $userId ); $rows = Array (); $i = 1; @@ -1613,7 +1613,7 @@ function PMFTaskList ($userId) //its test was successfull */ function PMFUserList () //its test was successfull { - $ws = new wsBase(); + $ws = new WsBase(); $result = $ws->userList(); $rows = Array (); $i = 1; @@ -1920,7 +1920,7 @@ function PMFGenerateOutputDocument ($outputID, $sApplication = null, $index = nu */ function PMFGroupList ($regex = null, $start = null, $limit = null) //its test was successfull { - $ws = new wsBase(); + $ws = new WsBase(); $result = $ws->groupList($regex, $start, $limit); $rows = array(); if ($result) { @@ -1944,7 +1944,7 @@ function PMFGroupList ($regex = null, $start = null, $limit = null) //its test w */ function PMFRoleList () //its test was successfull { - $ws = new wsBase(); + $ws = new WsBase(); $result = $ws->roleList(); $rows = Array (); $i = 1; @@ -1972,7 +1972,7 @@ function PMFRoleList () //its test was successfull */ function PMFCaseList ($userId) //its test was successfull { - $ws = new wsBase(); + $ws = new WsBase(); $result = $ws->caseList( $userId ); $rows = Array (); $i = 1; @@ -1999,7 +1999,7 @@ function PMFCaseList ($userId) //its test was successfull */ function PMFProcessList () //its test was successfull { - $ws = new wsBase(); + $ws = new WsBase(); $result = $ws->processList(); $rows = Array (); $i = 1; @@ -2028,7 +2028,7 @@ function PMFProcessList () //its test was successfull */ function PMFSendVariables ($caseId, $variables) { - $ws = new wsBase(); + $ws = new WsBase(); $result = $ws->sendVariables( $caseId, $variables ); if ($result->status_code == 0) { @@ -2071,7 +2071,7 @@ function PMFDerivateCase ($caseId, $delIndex, $bExecuteTriggersBeforeAssignment $sUserLogged = $_SESSION['USER_LOGGED']; } - $ws = new wsBase(); + $ws = new WsBase(); $result = $ws->derivateCase( $sUserLogged, $caseId, $delIndex, $bExecuteTriggersBeforeAssignment ); if (is_array($result)) { $result = (object)$result; @@ -2103,7 +2103,7 @@ function PMFDerivateCase ($caseId, $delIndex, $bExecuteTriggersBeforeAssignment */ function PMFNewCaseImpersonate ($processId, $userId, $variables, $taskId = '') { - $ws = new wsBase(); + $ws = new WsBase(); $result = $ws->newCaseImpersonate( $processId, $userId, $variables, $taskId); if ($result->status_code == 0) { @@ -2133,7 +2133,7 @@ function PMFNewCaseImpersonate ($processId, $userId, $variables, $taskId = '') */ function PMFNewCase ($processId, $userId, $taskId, $variables, $status = null) { - $ws = new wsBase(); + $ws = new WsBase(); $result = $ws->newCase($processId, $userId, $taskId, $variables, 0, $status); @@ -2163,7 +2163,7 @@ function PMFNewCase ($processId, $userId, $taskId, $variables, $status = null) */ function PMFAssignUserToGroup ($userId, $groupId) { - $ws = new wsBase(); + $ws = new WsBase(); $result = $ws->assignUserToGroup( $userId, $groupId ); if ($result->status_code == 0) { @@ -2196,7 +2196,7 @@ function PMFAssignUserToGroup ($userId, $groupId) */ function PMFCreateUser ($userId, $password, $firstname, $lastname, $email, $role, $dueDate = null, $status = null) { - $ws = new wsBase(); + $ws = new WsBase(); $result = $ws->createUser( $userId, $firstname, $lastname, $email, $role, $password, $dueDate, $status ); //When the user is created the $result parameter is an array, in other case is a object exception @@ -2235,7 +2235,7 @@ function PMFCreateUser ($userId, $password, $firstname, $lastname, $email, $role */ function PMFUpdateUser ($userUid, $userName, $firstName = null, $lastName = null, $email = null, $dueDate = null, $status = null, $role = null, $password = null) { - $ws = new wsBase(); + $ws = new WsBase(); $result = $ws->updateUser( $userUid, $userName, $firstName, $lastName, $email, $dueDate, $status, $role, $password ); if ($result->status_code == 0) { @@ -2261,7 +2261,7 @@ function PMFUpdateUser ($userUid, $userName, $firstName = null, $lastName = null */ function PMFInformationUser($userUid) { - $ws = new wsBase(); + $ws = new WsBase(); $result = $ws->informationUser($userUid); $info = array(); @@ -2735,7 +2735,7 @@ function PMFGetCaseNotes ($applicationID, $type = 'array', $userUid = '') */ function PMFDeleteCase ($caseUid) { - $ws = new wsBase(); + $ws = new WsBase(); $result = $ws->deleteCase( $caseUid ); if ($result->status_code == 0) { @@ -2763,7 +2763,7 @@ function PMFDeleteCase ($caseUid) */ function PMFCancelCase ($caseUid, $delIndex, $userUid) { - $ws = new wsBase(); + $ws = new WsBase(); $result = $ws->cancelCase( $caseUid, $delIndex, $userUid ); if ($result->status_code == 0) { @@ -2802,7 +2802,7 @@ function PMFCancelCase ($caseUid, $delIndex, $userUid) */ function PMFPauseCase ($caseUid, $delIndex, $userUid, $unpauseDate = null) { - $ws = new wsBase(); + $ws = new WsBase(); $result = $ws->pauseCase($caseUid, $delIndex, $userUid, $unpauseDate); if ($result->status_code == 0) { @@ -2840,7 +2840,7 @@ function PMFPauseCase ($caseUid, $delIndex, $userUid, $unpauseDate = null) */ function PMFUnpauseCase ($caseUid, $delIndex, $userUid) { - $ws = new wsBase(); + $ws = new WsBase(); $result = $ws->unpauseCase( $caseUid, $delIndex, $userUid ); if ($result->status_code == 0) { @@ -2871,7 +2871,7 @@ function PMFUnpauseCase ($caseUid, $delIndex, $userUid) */ function PMFAddCaseNote($caseUid, $processUid, $taskUid, $userUid, $note, $sendMail = 1) { - $ws = new wsBase(); + $ws = new WsBase(); $result = $ws->addCaseNote($caseUid, $processUid, $taskUid, $userUid, $note, $sendMail); if ($result->status_code == 0) { @@ -2970,7 +2970,7 @@ function PMFSaveCurrentData () $response = 0; if (isset($_SESSION['APPLICATION']) && isset($oPMScript->aFields)) { - $ws = new wsBase(); + $ws = new WsBase(); $result = $ws->sendVariables($_SESSION['APPLICATION'], $oPMScript->aFields); $response = $result->status_code == 0 ? 1 : 0; } diff --git a/workflow/engine/classes/model/AddonsManager.php b/workflow/engine/classes/model/AddonsManager.php index e38302501..271699cfe 100644 --- a/workflow/engine/classes/model/AddonsManager.php +++ b/workflow/engine/classes/model/AddonsManager.php @@ -387,7 +387,6 @@ class AddonsManager extends BaseAddonsManager $this->setState(); } else { if ($this->getAddonType() == "core") { - require_once PATH_CORE . 'classes' . PATH_SEP . 'class.Upgrade.php'; $upgrade = new Upgrade($this); $upgrade->install(); diff --git a/workflow/engine/classes/model/Content.php b/workflow/engine/classes/model/Content.php index 9d7e07c19..900b12d6d 100644 --- a/workflow/engine/classes/model/Content.php +++ b/workflow/engine/classes/model/Content.php @@ -361,7 +361,7 @@ class Content extends BaseContent FROM CONTENT ORDER BY CON_ID, CON_CATEGORY, CON_PARENT, CON_LANG"; - $workSpace = new workspaceTools( $workSpace ); + $workSpace = new WorkspaceTools( $workSpace ); $workSpace->getDBInfo(); $link = @mysql_pconnect( $workSpace->dbHost, $workSpace->dbUser, $workSpace->dbPass) or die( "Could not connect" ); diff --git a/workflow/engine/controllers/pmTablesProxy.php b/workflow/engine/controllers/pmTablesProxy.php index 14f802cd8..90f5e2786 100644 --- a/workflow/engine/controllers/pmTablesProxy.php +++ b/workflow/engine/controllers/pmTablesProxy.php @@ -114,7 +114,7 @@ class pmTablesProxy extends HttpProxyController $dbConn = new DbConnections(); $dbConnections = $dbConn->getConnectionsProUid( $proUid, array('mysql') ); - $workSpace = new workspaceTools(SYS_SYS); + $workSpace = new WorkspaceTools(SYS_SYS); $workspaceDB = $workSpace->getDBInfo(); if ($workspaceDB['DB_NAME'] == $workspaceDB['DB_RBAC_NAME']) { diff --git a/workflow/engine/methods/services/ActionsByEmail.php b/workflow/engine/methods/services/ActionsByEmail.php index 7a250f3da..5ef64e439 100644 --- a/workflow/engine/methods/services/ActionsByEmail.php +++ b/workflow/engine/methods/services/ActionsByEmail.php @@ -64,7 +64,7 @@ if (isset($_GET['BROWSER_TIME_ZONE_OFFSET'])) { $case->updateCase($_REQUEST['APP_UID'], $caseFieldsABE); - $ws = new wsBase(); + $ws = new WsBase(); $result = $ws->derivateCase( $caseFieldsABE['CURRENT_USER_UID'], $_REQUEST['APP_UID'], $_REQUEST['DEL_INDEX'], true diff --git a/workflow/engine/methods/services/ActionsByEmailDataFormPost.php b/workflow/engine/methods/services/ActionsByEmailDataFormPost.php index 5013ad775..0d5234973 100644 --- a/workflow/engine/methods/services/ActionsByEmailDataFormPost.php +++ b/workflow/engine/methods/services/ActionsByEmailDataFormPost.php @@ -101,7 +101,7 @@ if (PMLicensedFeatures //Update case info $case->updateCase($appUid, $casesFields); - $wsBaseInstance = new wsBase(); + $wsBaseInstance = new WsBase(); $result = $wsBaseInstance->derivateCase($casesFields['CURRENT_USER_UID'], $appUid, $delIndex, true); $code = (is_array($result) ? $result['status_code'] : $result->status_code); diff --git a/workflow/engine/methods/services/soap2.php b/workflow/engine/methods/services/soap2.php index 603ebf596..d2fee0830 100644 --- a/workflow/engine/methods/services/soap2.php +++ b/workflow/engine/methods/services/soap2.php @@ -10,7 +10,7 @@ $wsdl = PATH_METHODS . "services" . PATH_SEP . "pmos2.wsdl"; function login ($params) { - $ws = new wsBase(); + $ws = new WsBase(); $res = $ws->login( $params->userid, $params->password ); return array ('status_code' => $res->status_code,'message' => $res->message,'version' => WEB_SERVICE_VERSION,'timestamp' => $res->timestamp @@ -30,7 +30,7 @@ function ProcessList ($params) } if (ifPermission( $params->sessionId, 'PM_CASES' ) != 0) { - $ws = new wsBase(); + $ws = new WsBase(); $res = $ws->processList(); return array ("processes" => $res @@ -54,14 +54,14 @@ function ProcessList ($params) $session = $oSessions->getSessionUser( $params->sessionId ); $userId = $session['USR_UID']; - $ws = new wsBase(); + $ws = new WsBase(); $res = $ws->processListVerified( $userId ); return array ("processes" => $res ); } - $ws = new wsBase(); + $ws = new WsBase(); $res = $ws->processList(); return array ("processes" => $res @@ -88,7 +88,7 @@ function RoleList ($params) ); } - $ws = new wsBase(); + $ws = new WsBase(); $res = $ws->roleList(); return array ("roles" => $res @@ -115,7 +115,7 @@ function GroupList ($params) ); } - $ws = new wsBase(); + $ws = new WsBase(); $res = $ws->groupList(); return array ("groups" => $res @@ -142,7 +142,7 @@ function DepartmentList ($params) ); } - $ws = new wsBase(); + $ws = new WsBase(); $res = $ws->departmentList(); return array ("departments" => $res @@ -179,7 +179,7 @@ function CaseList ($params) $session = $oSessions->getSessionUser( $params->sessionId ); $userId = $session['USR_UID']; - $ws = new wsBase(); + $ws = new WsBase(); $res = $ws->caseList( $userId ); return array ("cases" => $res @@ -211,7 +211,7 @@ function UnassignedCaseList ($params) $session = $oSessions->getSessionUser( $params->sessionId ); $userId = $session['USR_UID']; - $ws = new wsBase(); + $ws = new WsBase(); $res = $ws->unassignedCaseList( $userId ); return array ("cases" => $res @@ -238,7 +238,7 @@ function UserList ($params) ); } - $ws = new wsBase(); + $ws = new WsBase(); $res = $ws->userList(); return array ("users" => $res @@ -267,7 +267,7 @@ function triggerList ($params) ); } - $ws = new wsBase(); + $ws = new WsBase(); $res = $ws->triggerList(); return array ("triggers" => $res @@ -312,7 +312,7 @@ function outputDocumentList ($params) $session = $oSessions->getSessionUser( $params->sessionId ); $userId = $session['USR_UID']; - $ws = new wsBase(); + $ws = new WsBase(); $res = $ws->outputDocumentList( $params->caseId, $userId ); return array ("documents" => $res @@ -357,7 +357,7 @@ function inputDocumentList ($params) $session = $oSessions->getSessionUser( $params->sessionId ); $userId = $session['USR_UID']; - $ws = new wsBase(); + $ws = new WsBase(); $res = $ws->inputDocumentList( $params->caseId, $userId ); return array ("documents" => $res @@ -386,7 +386,7 @@ function inputDocumentProcessList ($params) ); } - $ws = new wsBase(); + $ws = new WsBase(); $res = $ws->inputDocumentProcessList( $params->processId ); return array ("documents" => $res @@ -407,7 +407,7 @@ function removeDocument ($params) return $result; } - $ws = new wsBase(); + $ws = new WsBase(); $res = $ws->removeDocument( $params->appDocUid ); return $res; @@ -427,7 +427,7 @@ function SendMessage ($params) return $result->getPayloadArray(); } - $ws = new wsBase(); + $ws = new WsBase(); $res = $ws->sendMessage( $params->caseId, $params->from, $params->to, $params->cc, $params->bcc, $params->subject, $params->template ); return $res->getPayloadArray(); @@ -447,7 +447,7 @@ function getCaseInfo ($params) return $result; } - $ws = new wsBase(); + $ws = new WsBase(); $res = $ws->getCaseInfo( $params->caseId, $params->delIndex ); return $res; @@ -467,7 +467,7 @@ function SendVariables ($params) return $result; } - $ws = new wsBase(); + $ws = new WsBase(); $variables = $params->variables; $Fields = array (); @@ -506,7 +506,7 @@ function GetVariables ($params) return $result; } - $ws = new wsBase(); + $ws = new WsBase(); $res = $ws->getVariables( $params->caseId, $params->variables ); @@ -528,7 +528,7 @@ function GetVariablesNames ($params) return $result; } - $ws = new wsBase(); + $ws = new WsBase(); $res = $ws->getVariablesNames( $params->caseId ); @@ -556,7 +556,7 @@ function DerivateCase ($params) $oStd->stored_system_variables = true; $oStd->wsSessionId = $params->sessionId; - $ws = new wsBase( $oStd ); + $ws = new WsBase( $oStd ); $res = $ws->derivateCase($user["USR_UID"], $params->caseId, $params->delIndex, true); return $res; @@ -584,7 +584,7 @@ function RouteCase ($params) $oStd->stored_system_variables = true; $oStd->wsSessionId = $params->sessionId; - $ws = new wsBase( $oStd ); + $ws = new WsBase( $oStd ); $res = $ws->derivateCase($user["USR_UID"], $params->caseId, $params->delIndex, true); return $res; @@ -608,7 +608,7 @@ function executeTrigger ($params) $oSession = new Sessions(); $user = $oSession->getSessionUser( $params->sessionId ); - $ws = new wsBase(); + $ws = new WsBase(); $delIndex = (isset( $params->delIndex )) ? $params->delIndex : 1; $res = $ws->executeTrigger( $user['USR_UID'], $params->caseId, $params->triggerIndex, $delIndex ); @@ -649,7 +649,7 @@ function NewCaseImpersonate ($params) $params->variables = $field; /////// - $ws = new wsBase(); + $ws = new WsBase(); $res = $ws->newCaseImpersonate($params->processId, $params->userId, $params->variables, $params->taskId); return $res; @@ -712,7 +712,7 @@ function NewCase($params) $params->variables = $field; - $ws = new wsBase(); + $ws = new WsBase(); $res = $ws->newCase($params->processId, $userId, $params->taskId, $params->variables, (isset($params->executeTriggers)) ? (int) ($params->executeTriggers) : 0); @@ -743,7 +743,7 @@ function AssignUserToGroup ($params) return new wsResponse( 3, 'User not registered in the system' ); } - $ws = new wsBase(); + $ws = new WsBase(); $res = $ws->assignUserToGroup( $params->userId, $params->groupId ); return $res->getPayloadArray(); @@ -770,7 +770,7 @@ function AssignUserToDepartment ($params) return new wsResponse( 3, G::LoadTranslation('ID_USER_NOT_REGISTERED_SYSTEM') ); } - $ws = new wsBase(); + $ws = new WsBase(); $res = $ws->AssignUserToDepartment( $params->userId, $params->departmentId, $params->manager ); return $res->getPayloadArray(); @@ -790,7 +790,7 @@ function CreateUser ($params) return $result; } - $ws = new wsBase(); + $ws = new WsBase(); try { $res = $ws->createUser( $params->userId, $params->firstname, $params->lastname, $params->email, $params->role, $params->password, ((isset( $params->dueDate )) ? $params->dueDate : null), ((isset( $params->status )) ? $params->status : null) ); @@ -815,7 +815,7 @@ function updateUser ($params) return $result; } - $ws = new wsBase(); + $ws = new WsBase(); $result = $ws->updateUser( $params->userUid, $params->userName, ((isset( $params->firstName )) ? $params->firstName : null), ((isset( $params->lastName )) ? $params->lastName : null), ((isset( $params->email )) ? $params->email : null), ((isset( $params->dueDate )) ? $params->dueDate : null), ((isset( $params->status )) ? $params->status : null), ((isset( $params->role )) ? $params->role : null), ((isset( $params->password )) ? $params->password : null) ); @@ -836,7 +836,7 @@ function informationUser($params) return $result; } - $ws = new wsBase(); + $ws = new WsBase(); $result = $ws->informationUser($params->userUid); return $result; @@ -847,18 +847,18 @@ function CreateGroup ($params) $vsResult = isValidSession( $params->sessionId ); if ($vsResult->status_code !== 0) { - $result = new wsCreateGroupResponse( $vsResult->status_code, $vsResult->message, '' ); + $result = new WsCreateGroupResponse( $vsResult->status_code, $vsResult->message, '' ); return $result; } if (ifPermission( $params->sessionId, 'PM_USERS' ) == 0) { - $result = new wsCreateGroupResponse( 2, G::LoadTranslation('ID_NOT_PRIVILEGES'), '' ); + $result = new WsCreateGroupResponse( 2, G::LoadTranslation('ID_NOT_PRIVILEGES'), '' ); return $result; } - $ws = new wsBase(); + $ws = new WsBase(); $res = $ws->createGroup( $params->name ); return $res; @@ -878,7 +878,7 @@ function CreateDepartment ($params) return $result; } - $ws = new wsBase(); + $ws = new WsBase(); $res = $ws->CreateDepartment( $params->name, $params->parentUID ); return $res; @@ -904,7 +904,7 @@ function TaskList ($params) ); } - $ws = new wsBase(); + $ws = new WsBase(); $oSessions = new Sessions(); $session = $oSessions->getSessionUser( $params->sessionId ); $userId = $session['USR_UID']; @@ -934,7 +934,7 @@ function TaskCase ($params) ); } - $ws = new wsBase(); + $ws = new WsBase(); $res = $ws->taskCase( $params->caseId ); return array ("taskCases" => $res @@ -948,7 +948,7 @@ function ReassignCase ($params) return $vsResult; } - $ws = new wsBase(); + $ws = new WsBase(); $res = $ws->reassignCase( $params->sessionId, $params->caseId, $params->delIndex, $params->userIdSource, $params->userIdTarget ); return $res; @@ -962,7 +962,7 @@ function systemInformation ($params) return $vsResult; } - $ws = new wsBase(); + $ws = new WsBase(); $res = $ws->systemInformation(); return $res; @@ -976,7 +976,7 @@ function getCaseNotes ($params) return $vsResult; } - $ws = new wsBase(); + $ws = new WsBase(); $res = $ws->getCaseNotes( $params->applicationID, $params->userUid ); return $res; @@ -1008,7 +1008,7 @@ function removeUserFromGroup ($params) return $vsResult; } - $ws = new wsBase(); + $ws = new WsBase(); $res = $ws->removeUserFromGroup( $params->userId, $params->groupId ); return $res; @@ -1052,7 +1052,7 @@ function deleteCase ($params) return $result; } - $ws = new wsBase(); + $ws = new WsBase(); $result = $ws->deleteCase( $params->caseUid ); return $result; @@ -1072,7 +1072,7 @@ function cancelCase ($params) return $result; } - $ws = new wsBase(); + $ws = new WsBase(); $result = $ws->cancelCase( $params->caseUid, $params->delIndex, $params->userUid ); return $result; @@ -1092,7 +1092,7 @@ function pauseCase ($params) return $result; } - $ws = new wsBase(); + $ws = new WsBase(); $result = $ws->pauseCase( $params->caseUid, $params->delIndex, $params->userUid, ((isset( $params->unpauseDate )) ? $params->unpauseDate : null) ); @@ -1113,7 +1113,7 @@ function unpauseCase ($params) return $result; } - $ws = new wsBase(); + $ws = new WsBase(); $result = $ws->unpauseCase( $params->caseUid, $params->delIndex, $params->userUid ); return $result; @@ -1133,7 +1133,7 @@ function addCaseNote($params) return $result; } - $ws = new wsBase(); + $ws = new WsBase(); $result = $ws->addCaseNote( $params->caseUid, $params->processUid, @@ -1162,7 +1162,7 @@ function claimCase($params) $oSessions = new Sessions(); $session = $oSessions->getSessionUser($params->sessionId); - $ws = new wsBase(); + $ws = new WsBase(); $res = $ws->claimCase($session['USR_UID'], $params->guid, $params->delIndex); return $res; diff --git a/workflow/engine/methods/setup/languages_Import.php b/workflow/engine/methods/setup/languages_Import.php index 2a8afb84d..fdda4812b 100644 --- a/workflow/engine/methods/setup/languages_Import.php +++ b/workflow/engine/methods/setup/languages_Import.php @@ -78,7 +78,7 @@ try { $configuration = new Configurations(); $importResults = $language->import( $languageFile ); - $renegerateContent = new workspaceTools( SYS_SYS ); + $renegerateContent = new WorkspaceTools( SYS_SYS ); $messs = $renegerateContent->upgradeContent(); $result->msg = G::LoadTranslation( 'IMPORT_LANGUAGE_SUCCESS' ) . "\n"; diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/Cases.php b/workflow/engine/src/ProcessMaker/BusinessModel/Cases.php index 9b1bd7efc..298cf391b 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/Cases.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/Cases.php @@ -7,7 +7,7 @@ use CasesPeer; use AppDelegation; use ProcessMaker\Plugins\PluginRegistry; use Exception; -use wsBase; +use WsBase; use RBAC; /** @@ -466,7 +466,7 @@ class Cases if (!isset($row)) { continue; } - $ws = new wsBase(); + $ws = new WsBase(); $fields = $ws->getCaseInfo($applicationUid, $row["DEL_INDEX"]); $array = json_decode(json_encode($fields), true); if ($array ["status_code"] != 0) { @@ -533,7 +533,7 @@ class Cases throw (new Exception($arrayData)); } } else { - $ws = new wsBase(); + $ws = new WsBase(); $fields = $ws->getCaseInfo($applicationUid, 0); $array = json_decode(json_encode($fields), true); @@ -679,7 +679,7 @@ class Cases { try { - $ws = new wsBase(); + $ws = new WsBase(); if ($variables) { $variables = array_shift($variables); } @@ -723,7 +723,7 @@ class Cases { try { - $ws = new wsBase(); + $ws = new WsBase(); if ($variables) { $variables = array_shift($variables); } elseif ($variables == null) { @@ -778,7 +778,7 @@ class Cases $delIndex = AppDelegation::getCurrentIndex($applicationUid); } - $ws = new wsBase(); + $ws = new WsBase(); $fields = $ws->reassignCase($userUid, $applicationUid, $delIndex, $userUidSource, $userUidTarget); $array = json_decode(json_encode($fields), true); if (array_key_exists("status_code", $array)) { @@ -1009,7 +1009,7 @@ class Cases $RBAC->sSystem = 'PROCESSMAKER'; } - $case = new wsBase(); + $case = new WsBase(); $result = $case->executeTrigger($userUid, $appUid, $triUid, $delIndex); if ($result->status_code != 0) { @@ -1076,7 +1076,7 @@ class Cases } } - $ws = new wsBase(); + $ws = new WsBase(); $fields = $ws->derivateCase($userUid, $applicationUid, $delIndex, $bExecuteTriggersBeforeAssignment = false); $array = json_decode(json_encode($fields), true); if ($array ["status_code"] != 0) { diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/Cases/InputDocument.php b/workflow/engine/src/ProcessMaker/BusinessModel/Cases/InputDocument.php index 7f79c3aed..8e34eb0d9 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/Cases/InputDocument.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/Cases/InputDocument.php @@ -701,7 +701,7 @@ class InputDocument throw new \Exception(\G::LoadTranslation("ID_CASES_INPUT_DOES_NOT_EXIST", array($inputDocumentUid))); } - $ws = new \wsBase(); + $ws = new \WsBase(); $ws->removeDocument($inputDocumentUid); } catch (\Exception $e) { throw $e; diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/Consolidated.php b/workflow/engine/src/ProcessMaker/BusinessModel/Consolidated.php index d626595a1..10790d076 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/Consolidated.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/Consolidated.php @@ -69,7 +69,7 @@ class Consolidated */ public function postDerivate($app_uid, $app_number, $del_index, $usr_uid, $fieldName = '', $fieldValue = '') { - $ws = new \wsBase(); + $ws = new \WsBase(); $oCase = new \Cases(); if (!isset($Fields["DEL_INIT_DATE"])) { diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/Light.php b/workflow/engine/src/ProcessMaker/BusinessModel/Light.php index 62030aac4..3fa3b303e 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/Light.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/Light.php @@ -524,7 +524,7 @@ class Light $delIndex = \AppDelegation::getCurrentIndex($applicationUid); } - $ws = new \wsBase(); + $ws = new \WsBase(); $fields = $ws->derivateCase($userUid, $applicationUid, $delIndex, $bExecuteTriggersBeforeAssignment = false, $tasks); $array = json_decode(json_encode($fields), true); $array['message'] = trim(strip_tags($array['message'])); diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/MessageApplication.php b/workflow/engine/src/ProcessMaker/BusinessModel/MessageApplication.php index 8f20fd727..de2e7614d 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/MessageApplication.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/MessageApplication.php @@ -368,7 +368,7 @@ class MessageApplication try { //Set variables - $ws = new \wsBase(); + $ws = new \WsBase(); $case = new \Cases(); $common = new \ProcessMaker\Util\Common(); $sysSys = (defined("SYS_SYS"))? SYS_SYS : "Undefined"; diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/Pmgmail.php b/workflow/engine/src/ProcessMaker/BusinessModel/Pmgmail.php index fc3007b6a..3e1d3a15d 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/Pmgmail.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/Pmgmail.php @@ -357,7 +357,7 @@ class Pmgmail { return false; } - $ws = new \wsBase(); + $ws = new \WsBase(); $resultMail = $ws->sendMessage( $application['APP_UID'], $defaultEmail, //From, diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/TimerEvent.php b/workflow/engine/src/ProcessMaker/BusinessModel/TimerEvent.php index 638db6e17..3c840a7bb 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/TimerEvent.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/TimerEvent.php @@ -1211,7 +1211,7 @@ class TimerEvent try { //Set variables - $ws = new \wsBase(); + $ws = new \WsBase(); $case = new \Cases(); $common = new \ProcessMaker\Util\Common(); $sysSys = (defined("SYS_SYS"))? SYS_SYS : "Undefined"; From 76d0806b6a1c151ab38b816fed9db2f149c0fac0 Mon Sep 17 00:00:00 2001 From: dante Date: Fri, 11 Aug 2017 15:10:16 -0400 Subject: [PATCH 5/5] remove commented code --- workflow/engine/classes/Upgrade.php | 28 ++++------------------------ 1 file changed, 4 insertions(+), 24 deletions(-) diff --git a/workflow/engine/classes/Upgrade.php b/workflow/engine/classes/Upgrade.php index 80dda90a3..46b14b0fd 100644 --- a/workflow/engine/classes/Upgrade.php +++ b/workflow/engine/classes/Upgrade.php @@ -14,13 +14,11 @@ class Upgrade { $filter = new InputFilter(); - //echo "Starting core installation...\n"; $start = microtime(1); $filename = $this->addon->getDownloadFilename(); $time = microtime(1); $archive = new Archive_Tar ($filename); - //printf("Time to open archive: %f\n", microtime(1) - $time); $time = microtime(1); $extractDir = dirname($this->addon->getDownloadFilename()) . "/extract"; $extractDir = $filter->xssFilterHard($extractDir); @@ -35,34 +33,22 @@ class Upgrade if (!is_dir($backupDir)) { mkdir($backupDir); } - //printf("Time to remove old directory: %f\n", microtime(1) - $time); + $time = microtime(1); echo "Extracting files...\n"; $archive->extractModify($extractDir, 'processmaker'); - //printf("Time to extract all files: %f\n", microtime(1) - $time); - //$time = microtime(1); - //$files = $archive->listContent(); - //printf("Time to get list of contents: %f\n", microtime(1) - $time); - /*$time = microtime(1); - foreach ($files as $fileinfo) - if (basename($fileinfo['filename']) == 'checksum.txt') { - $checksumFile = $archive->extractInString($fileinfo['filename']); - break; - } - printf("Time to get checksum.txt: %f\n", microtime(1) - $time); - */ $checksumFile = file_get_contents("$extractDir/checksum.txt"); $time = microtime(1); $checksums = array(); foreach (explode("\n", $checksumFile) as $line) { $checksums[trim(substr($line, 33))] = substr($line, 0, 32); } - //printf("Time to assemble list of checksums: %f\n", microtime(1) - $time); + $checksum = array(); $changedFiles = array(); $time = microtime(1); $files = $this->ls_dir($extractDir); - //printf("Time to list files: %f\n", microtime(1) - $time); + echo "Updating ProcessMaker files...\n"; $time = microtime(1); $checksumTime = 0; @@ -97,8 +83,7 @@ class Upgrade } } } - //printf("Time to create all checksums: %f\n", $checksumTime); - //printf("Time to copy files: %f\n", microtime(1) - $time); + printf("Updated %d files\n", count($changedFiles)); printf("Clearing cache...\n"); if (defined('PATH_C')) { @@ -118,22 +103,17 @@ class Upgrade $first = false; } catch (Exception $e) { printf("Errors upgrading workspace {$workspace->name}: {$e->getMessage()}\n"); - //$errors = true; } } - //printf("Time to install: %f\n", microtime(1) - $start); } private function ls_dir($dir, $basename = null) { $files = array(); - //if (substr($dir, -1) != "/") - // $dir .= "/"; if ($basename == null) { $basename = $dir; } foreach (glob("$dir/*") as $filename) { - //var_dump(substr($filename, strlen($basename) + 1)); if (is_dir($filename)) { $files = array_merge($files, $this->ls_dir($filename, $basename)); } else {