diff --git a/workflow/engine/bin/tasks/cliAddons.php b/workflow/engine/bin/tasks/cliAddons.php index 912296b38..2a618b8f4 100644 --- a/workflow/engine/bin/tasks/cliAddons.php +++ b/workflow/engine/bin/tasks/cliAddons.php @@ -114,31 +114,13 @@ function change_hash($command, $opts) Bootstrap::LoadClass("plugin"); foreach ($workspaces as $workspace) { CLI::logging("Checking workspace: ".pakeColor::colorize($workspace->name, "INFO")."\n"); - $path = PATH_DATA . 'sites' . PATH_SEP . $workspace->name . PATH_SEP; try { - if (file_exists($path . 'plugin.singleton')) { - define('SYS_SYS', $workspace->name); - define('PATH_DATA_SITE', $path); - - $oPluginRegistry =& PMPluginRegistry::getSingleton(); - $oPluginRegistry->setupPlugins(); - $oPluginRegistry->unSerializeInstance(file_get_contents($path . 'plugin.singleton')); - $oPluginRegistry =& PMPluginRegistry::getSingleton(); - $oPluginRegistry->unSerializeInstance(file_get_contents($path . 'plugin.singleton')); - - if ($oPluginRegistry->existsTrigger ( PM_HASH_PASSWORD )) { - $response = new stdclass(); - $response->workspace = $workspace; - $response->hash = $hash; - $workspace->changeHashPassword($workspace->name, $response); - $workspace->close(); - CLI::logging(pakeColor::colorize("Changed...", "ERROR") . "\n"); - } else { - CLI::logging(pakeColor::colorize("You can't use the \"change-password-hash-method\" option because the license has expired or your workspace doesn't have the Enteprise plugin enabled.", "ERROR") . "\n"); - } - } else { - CLI::logging(pakeColor::colorize("You can't use the \"change-password-hash-method\" option because the license has expired or your workspace doesn't have the Enteprise plugin enabled.", "INFO") . "\n"); - } + $response = new stdclass(); + $response->workspace = $workspace; + $response->hash = $hash; + $workspace->changeHashPassword($workspace->name, $response); + $workspace->close(); + CLI::logging(pakeColor::colorize("Changed...", "ERROR") . "\n"); } catch (Exception $e) { echo "> Error: ".CLI::error($e->getMessage()) . "\n"; } diff --git a/workflow/engine/classes/class.pluginRegistry.php b/workflow/engine/classes/class.pluginRegistry.php index b9311ab47..eb3fcd775 100755 --- a/workflow/engine/classes/class.pluginRegistry.php +++ b/workflow/engine/classes/class.pluginRegistry.php @@ -1162,7 +1162,7 @@ class PMPluginRegistry } else { $aux = explode( chr( 92 ), $detail->sFilename ); } - $sFilename = PATH_PLUGINS . $aux[count( $aux ) - 1]; + $sFilename = (($detail->sNamespace == 'enterprise') ? PATH_CORE. 'methods' . PATH_SEP . 'enterprise' . PATH_SEP : PATH_PLUGINS) . $aux[count( $aux ) - 1]; if (! file_exists( $sFilename )) { continue; } diff --git a/workflow/engine/classes/class.wsTools.php b/workflow/engine/classes/class.wsTools.php index 383ced814..82e481500 100755 --- a/workflow/engine/classes/class.wsTools.php +++ b/workflow/engine/classes/class.wsTools.php @@ -1624,12 +1624,11 @@ class workspaceTools } } - public function changeHashPassword ($workspace,$response) { - G::LoadClass("patch"); + public function changeHashPassword ($workspace, $response) + { $this->initPropel( true ); - - $oPluginRegistry =& PMPluginRegistry::getSingleton(); - $oPluginRegistry->executeTriggers ( PM_HASH_PASSWORD , $response ); + G::LoadClass("enterprise"); + enterpriseClass::setHashPassword($response); } } diff --git a/workflow/engine/menus/setup.php b/workflow/engine/menus/setup.php index 74db2b135..c107afcbf 100755 --- a/workflow/engine/menus/setup.php +++ b/workflow/engine/menus/setup.php @@ -27,45 +27,45 @@ global $RBAC; $partnerFlag = (defined('PARTNER_FLAG')) ? PARTNER_FLAG : false; if ($RBAC->userCanAccess('PM_SETUP') == 1 ) { - //settings options - // $G_TMP_MENU->AddIdRawOption('LOGO', 'uplogo', G::LoadTranslation('ID_LOGO'), 'icon-pmlogo.png', '', 'settings'); - $G_TMP_MENU->AddIdRawOption('LOGO', '../admin/pmLogo', G::LoadTranslation('ID_LOGO'), 'icon-pmlogo.png','', 'settings'); - $G_TMP_MENU->AddIdRawOption('EMAILS','../admin/emails', G::LoadTranslation('ID_EMAIL'), 'icon-email-settings1.png', '', 'settings'); - $G_TMP_MENU->AddIdRawOption('CALENDAR', 'calendarList', G::LoadTranslation('ID_CALENDAR'), 'icon-calendar.png', '', 'settings' ); - //if ($RBAC->userCanAccess('PM_SETUP_ADVANCE') == 1) - // $G_TMP_MENU->AddIdRawOption('CASES_LIST_SETUP', '../cases/casesListSetup', G::LoadTranslation('ID_CASES_LIST_SETUP'), "",'', 'settings'); - $G_TMP_MENU->AddIdRawOption('PROCESS_CATEGORY', '../processCategory/processCategoryList', G::LoadTranslation('ID_PROCESS_CATEGORY'), "rules.png",'', 'settings'); + //settings options + // $G_TMP_MENU->AddIdRawOption('LOGO', 'uplogo', G::LoadTranslation('ID_LOGO'), 'icon-pmlogo.png', '', 'settings'); + $G_TMP_MENU->AddIdRawOption('LOGO', '../admin/pmLogo', G::LoadTranslation('ID_LOGO'), 'icon-pmlogo.png','', 'settings'); + $G_TMP_MENU->AddIdRawOption('EMAILS','../admin/emails', G::LoadTranslation('ID_EMAIL'), 'icon-email-settings1.png', '', 'settings'); + $G_TMP_MENU->AddIdRawOption('CALENDAR', 'calendarList', G::LoadTranslation('ID_CALENDAR'), 'icon-calendar.png', '', 'settings' ); + //if ($RBAC->userCanAccess('PM_SETUP_ADVANCE') == 1) + // $G_TMP_MENU->AddIdRawOption('CASES_LIST_SETUP', '../cases/casesListSetup', G::LoadTranslation('ID_CASES_LIST_SETUP'), "",'', 'settings'); + $G_TMP_MENU->AddIdRawOption('PROCESS_CATEGORY', '../processCategory/processCategoryList', G::LoadTranslation('ID_PROCESS_CATEGORY'), "rules.png",'', 'settings'); } if ($RBAC->userCanAccess('PM_SETUP_ADVANCE') == 1) { - $G_TMP_MENU->AddIdRawOption('LANGUAGES', 'languages', G::LoadTranslation('ID_LANGUAGES'), 'icon-language.png', '', 'settings'); + $G_TMP_MENU->AddIdRawOption('LANGUAGES', 'languages', G::LoadTranslation('ID_LANGUAGES'), 'icon-language.png', '', 'settings'); } if ($RBAC->userCanAccess('PM_SETUP') == 1 ) { - $G_TMP_MENU->AddIdRawOption('SKINS', 'skinsList', G::LoadTranslation('ID_SKINS'), 'icon-skins.png', '', 'settings'); + $G_TMP_MENU->AddIdRawOption('SKINS', 'skinsList', G::LoadTranslation('ID_SKINS'), 'icon-skins.png', '', 'settings'); if (!$partnerFlag) { $G_TMP_MENU->AddIdRawOption('HEARTBEAT', 'processHeartBeatConfig', G::LoadTranslation('ID_HEARTBEAT_CONFIG'), "heartBeat.jpg",'', 'settings'); } - - $G_TMP_MENU->AddIdRawOption('ENVIRONMENT_SETTINGS', 'environmentSettings', G::LoadTranslation('ID_ENVIRONMENT_SETTINGS'), "",'', 'settings'); + + $G_TMP_MENU->AddIdRawOption('ENVIRONMENT_SETTINGS', 'environmentSettings', G::LoadTranslation('ID_ENVIRONMENT_SETTINGS'), "",'', 'settings'); } if ($RBAC->userCanAccess('PM_SETUP_ADVANCE') == 1) { - $G_TMP_MENU->AddIdRawOption('APPCACHEVIEW_SETUP', '../setup/appCacheViewConf', G::LoadTranslation('ID_APPCACHE_SETUP'), "",'', 'settings'); + $G_TMP_MENU->AddIdRawOption('APPCACHEVIEW_SETUP', '../setup/appCacheViewConf', G::LoadTranslation('ID_APPCACHE_SETUP'), "",'', 'settings'); } if ($RBAC->userCanAccess('PM_SETUP') == 1) { - $G_TMP_MENU->AddIdRawOption('CLEAR_CACHE', 'clearCompiled', G::LoadTranslation('ID_CLEAR_CACHE'), 'icon-rebuild-clean.png', "", 'settings' ); - //$G_TMP_MENU->AddIdRawOption('ADDITIONAL_TABLES', '../additionalTables/additionalTablesList', G::LoadTranslation('ID_ADDITIONAL_TABLES'), 'icon-tables.png','', 'settings'); - //$G_TMP_MENU->AddIdRawOption('REPORT_TABLES', '../reportTables/main', 'Report Tables', 'icon-tables.png','', 'settings'); + $G_TMP_MENU->AddIdRawOption('CLEAR_CACHE', 'clearCompiled', G::LoadTranslation('ID_CLEAR_CACHE'), 'icon-rebuild-clean.png', "", 'settings' ); + //$G_TMP_MENU->AddIdRawOption('ADDITIONAL_TABLES', '../additionalTables/additionalTablesList', G::LoadTranslation('ID_ADDITIONAL_TABLES'), 'icon-tables.png','', 'settings'); + //$G_TMP_MENU->AddIdRawOption('REPORT_TABLES', '../reportTables/main', 'Report Tables', 'icon-tables.png','', 'settings'); - $G_TMP_MENU->AddIdRawOption('PM_TABLES', '../pmTables', G::LoadTranslation('ID_ADDITIONAL_TABLES'), 'icon-tables.png','', 'settings'); + $G_TMP_MENU->AddIdRawOption('PM_TABLES', '../pmTables', G::LoadTranslation('ID_ADDITIONAL_TABLES'), 'icon-tables.png','', 'settings'); -if (!$partnerFlag) { - $G_TMP_MENU->AddIdRawOption('WEBSERVICES', 'webServices', G::LoadTranslation('ID_WEB_SERVICES'), 'icon-webservices.png', '', 'settings'); -} - $G_TMP_MENU->AddIdRawOption('LOGIN', 'loginSettings', G::LoadTranslation('LOGIN'), "",'', 'settings'); - $G_TMP_MENU->AddIdRawOption('DASHBOARD', '../dashboard/dashletsList', ucfirst(G::LoadTranslation('ID_DASHBOARD')), '', '', 'settings'); + if (!$partnerFlag) { + $G_TMP_MENU->AddIdRawOption('WEBSERVICES', 'webServices', G::LoadTranslation('ID_WEB_SERVICES'), 'icon-webservices.png', '', 'settings'); + } + $G_TMP_MENU->AddIdRawOption('LOGIN', 'loginSettings', G::LoadTranslation('LOGIN'), "",'', 'settings'); + $G_TMP_MENU->AddIdRawOption('DASHBOARD', '../dashboard/dashletsList', ucfirst(G::LoadTranslation('ID_DASHBOARD')), '', '', 'settings'); } //tools options if ($RBAC->userCanAccess('PM_SETUP_ADVANCE') == 1 ) { @@ -76,18 +76,18 @@ if ($RBAC->userCanAccess('PM_SETUP_ADVANCE') == 1 ) { //users options if ($RBAC->userCanAccess('PM_USERS') == 1) { - $G_TMP_MENU->AddIdRawOption('USERS', '../users/users_List', G::LoadTranslation('ID_USERS_LIST'), 'icon-webservices.png', '', 'users'); + $G_TMP_MENU->AddIdRawOption('USERS', '../users/users_List', G::LoadTranslation('ID_USERS_LIST'), 'icon-webservices.png', '', 'users'); - $G_TMP_MENU->AddIdRawOption('GROUPS', '../groups/groups', G::LoadTranslation('ID_GROUPS'), '', '', 'users'); - $G_TMP_MENU->AddIdRawOption('DEPARTAMENTS', '../departments/departments', G::LoadTranslation('ID_DEPARTMENTS_USERS'), '', '', 'users'); - $G_TMP_MENU->AddIdRawOption('ROLES', '../roles/roles_List', G::LoadTranslation('ID_ROLES'), '', '', 'users'); + $G_TMP_MENU->AddIdRawOption('GROUPS', '../groups/groups', G::LoadTranslation('ID_GROUPS'), '', '', 'users'); + $G_TMP_MENU->AddIdRawOption('DEPARTAMENTS', '../departments/departments', G::LoadTranslation('ID_DEPARTMENTS_USERS'), '', '', 'users'); + $G_TMP_MENU->AddIdRawOption('ROLES', '../roles/roles_List', G::LoadTranslation('ID_ROLES'), '', '', 'users'); } if ($RBAC->userCanAccess('PM_SETUP_ADVANCE') == 1 && $RBAC->userCanAccess('PM_USERS') == 1) { - $G_TMP_MENU->AddIdRawOption('AUTHSOURCES', '../authSources/authSources_List', G::LoadTranslation('ID_AUTH_SOURCES'), '', '', 'users'); - $G_TMP_MENU->AddIdRawOption('UX', '../admin/uxList', G::LoadTranslation('ID_USER_EXPERIENCE'), '', '', 'users'); - $G_TMP_MENU->AddIdRawOption('SYSTEM', '../admin/system', G::LoadTranslation('ID_SYSTEM'), '', '', 'settings'); - $G_TMP_MENU->AddIdRawOption('INFORMATION', '../setup/systemInfo?option=processInfo', G::LoadTranslation('ID_SYSTEM_INFO'), '', '', 'settings'); + $G_TMP_MENU->AddIdRawOption('AUTHSOURCES', '../authSources/authSources_List', G::LoadTranslation('ID_AUTH_SOURCES'), '', '', 'users'); + $G_TMP_MENU->AddIdRawOption('UX', '../admin/uxList', G::LoadTranslation('ID_USER_EXPERIENCE'), '', '', 'users'); + $G_TMP_MENU->AddIdRawOption('SYSTEM', '../admin/system', G::LoadTranslation('ID_SYSTEM'), '', '', 'settings'); + $G_TMP_MENU->AddIdRawOption('INFORMATION', '../setup/systemInfo?option=processInfo', G::LoadTranslation('ID_SYSTEM_INFO'), '', '', 'settings'); } if ($RBAC->userCanAccess('PM_SETUP') == 1) { @@ -98,20 +98,38 @@ if ($RBAC->userCanAccess('PM_SETUP') == 1) { } if ($RBAC->userCanAccess("PM_SETUP") == 1) { - $G_TMP_MENU->AddIdRawOption("PM_REQUIREMENTS", "../setup/systemInfo", G::LoadTranslation("ID_PROCESSMAKER_REQUIREMENTS_CHECK"), "", "", "settings"); - $G_TMP_MENU->AddIdRawOption("PHP_INFO", "../setup/systemInfo?option=php", G::LoadTranslation("ID_PHP_INFO"), "", "", "settings"); - //$G_TMP_MENU->AddIdRawOption("PHP_MAINTENANCE", "../admin/maintenance", 'Maintenance', "", "", "settings"); + $G_TMP_MENU->AddIdRawOption("PM_REQUIREMENTS", "../setup/systemInfo", G::LoadTranslation("ID_PROCESSMAKER_REQUIREMENTS_CHECK"), "", "", "settings"); + $G_TMP_MENU->AddIdRawOption("PHP_INFO", "../setup/systemInfo?option=php", G::LoadTranslation("ID_PHP_INFO"), "", "", "settings"); + //$G_TMP_MENU->AddIdRawOption("PHP_MAINTENANCE", "../admin/maintenance", 'Maintenance', "", "", "settings"); } - -require_once PATH_CORE . 'methods' . PATH_SEP . 'enterprise' . PATH_SEP . 'enterprise.php'; - -$enterprise = new enterprisePlugin('enterprise'); - +require_once 'classes/class.pmLicenseManager.php'; if (!file_exists(PATH_DATA_SITE . "plugin.singleton")) { - $enterprise->install(); + require_once PATH_CORE . 'methods' . PATH_SEP . 'enterprise' . PATH_SEP . 'enterprise.php'; + $enterprise = new enterprisePlugin('enterprise'); $enterprise->enable(); + $enterprise->setup(); } -$enterprise->setup(); +$pmLicenseManagerO = &pmLicenseManager::getSingleton(); +$licenseStatusInfo = $pmLicenseManagerO->getCurrentLicenseStatus(); +$licStatusMsg = null; +if ((isset($pmLicenseManagerO->plan)) && ($pmLicenseManagerO->plan != "")) { + $lines = explode(" - ", $pmLicenseManagerO->plan); + if (isset($lines[0])) { + $licStatusMsg .= "
          " . $lines[0] . ""; + } + if ((isset($lines[1])) && ($lines[1] != $lines[0])) { + $licStatusMsg .= "
          " . $lines[1] . ""; + } +} + +if ($licenseStatusInfo["message"] != "") { + $licStatusMsg = " (" . $licenseStatusInfo["message"] . ")"; +} + +if ($RBAC->userCanAccess("PM_SETUP") == 1) { + $G_TMP_MENU->AddIdRawOption("PMENTERPRISE", "../enterprise/addonsStore", G::LoadTranslation('ID_MENU_NAME') . $licStatusMsg, "", "", "plugins"); + $G_TMP_MENU->AddIdRawOption("CASES_LIST_SETUP", "../cases/casesListSetup", G::LoadTranslation('ID_CASES_LIST'), "", "", "settings"); +} diff --git a/workflow/engine/methods/enterprise/enterprise.php b/workflow/engine/methods/enterprise/enterprise.php index 75dbbef17..dcbce73c6 100644 --- a/workflow/engine/methods/enterprise/enterprise.php +++ b/workflow/engine/methods/enterprise/enterprise.php @@ -24,7 +24,7 @@ class enterprisePlugin extends PMPlugin $this->sFriendlyName = "ProcessMaker Enterprise Edition"; $this->sDescription = "ProcessMaker Enterprise Edition $VERSION"; $this->sPluginFolder = "enterprise"; - $this->sSetupPage = "../enterprise/pluginsList.php"; + $this->sSetupPage = "../enterprise/addonsStore.php"; $this->iVersion = $VERSION; $this->iPMVersion = "2.0.31"; $this->aDependences = null; @@ -119,11 +119,12 @@ class enterprisePlugin extends PMPlugin public function setup() { - $this->registerMenu("setup", "menuEnterprise.php"); - ////including the file inside the enterprise folder - require_once PATH_CORE . 'classes' . PATH_SEP . 'class.pmLicenseManager.php'; - $this->registerTrigger(PM_LOGIN, "enterpriseSystemUpdate"); - $this->registerTrigger(PM_HASH_PASSWORD, 'setHashPassword'); + if (!file_exists(PATH_DATA_SITE . "plugin.singleton")) { + $pluginRegistry = &PMPluginRegistry::getSingleton(); + $pluginDetail = $pluginRegistry->getPluginDetails("enterprise.php"); + $pluginRegistry->enablePlugin($pluginDetail->sNamespace); + file_put_contents(PATH_DATA_SITE . "plugin.singleton", $pluginRegistry->serializeInstance()); + } } public function enable() diff --git a/workflow/engine/methods/enterprise/menuEnterprise.php b/workflow/engine/methods/enterprise/menuEnterprise.php deleted file mode 100644 index 840bfcbda..000000000 --- a/workflow/engine/methods/enterprise/menuEnterprise.php +++ /dev/null @@ -1,31 +0,0 @@ -getCurrentLicenseStatus(); - $licStatusMsg = null; - - if ((isset($pmLicenseManagerO->plan)) && ($pmLicenseManagerO->plan != "")) { - $lines = explode(" - ", $pmLicenseManagerO->plan); - if (isset($lines[0])) { - $licStatusMsg .= "
          " . $lines[0] . ""; - } - if ((isset($lines[1])) && ($lines[1] != $lines[0])) { - $licStatusMsg .= "
          " . $lines[1] . ""; - } - } - - if ($licenseStatusInfo["message"] != "") { - $licStatusMsg = " (" . $licenseStatusInfo["message"] . ")"; - } - - $G_TMP_MENU->AddIdRawOption("PMENTERPRISE", "../enterprise/addonsStore", G::LoadTranslation('ID_MENU_NAME') . $licStatusMsg, "", "", "plugins"); - - if (isset($pmLicenseManagerO->result) && ($pmLicenseManagerO->result == "OK")) { - if (file_exists(PATH_HOME . "engine" . PATH_SEP . "methods" . PATH_SEP . "cases" . PATH_SEP . "casesListExtJs.php")) { - $G_TMP_MENU->AddIdRawOption("CASES_LIST_SETUP", "../cases/casesListSetup", G::LoadTranslation('ID_CASES_LIST'), "", "", "settings"); - } - } -} - diff --git a/workflow/engine/methods/login/authentication.php b/workflow/engine/methods/login/authentication.php index 7ead89e9b..2403d4d0e 100755 --- a/workflow/engine/methods/login/authentication.php +++ b/workflow/engine/methods/login/authentication.php @@ -42,12 +42,11 @@ try { require_once PATH_CORE . 'methods' . PATH_SEP . 'enterprise' . PATH_SEP . 'enterprise.php'; - $enterprise = new enterprisePlugin('enterprise'); - if (!file_exists(PATH_DATA_SITE . "plugin.singleton")) { + $enterprise = new enterprisePlugin('enterprise'); $enterprise->enable(); + $enterprise->setup(); } - $enterprise->setup(); $uid = $RBAC->VerifyLogin($usr , $pwd); $RBAC->cleanSessionFiles(72); //cleaning session files older than 72 hours @@ -161,11 +160,13 @@ try { //Execute the SSO Script from plugin $oPluginRegistry =& PMPluginRegistry::getSingleton(); + $lSession=""; + $loginInfo = new loginInfo ($usr, $pwd, $lSession ); if ($oPluginRegistry->existsTrigger ( PM_LOGIN )) { - $lSession=""; - $loginInfo = new loginInfo ($usr, $pwd, $lSession ); $oPluginRegistry->executeTriggers ( PM_LOGIN , $loginInfo ); } + G::LoadClass("enterprise"); + enterpriseClass::enterpriseSystemUpdate($loginInfo); $_SESSION['USER_LOGGED'] = $uid; $_SESSION['USR_USERNAME'] = $usr; } else {