From 41c2374a546f65f1febc8b2ad90684aeee45e6ca Mon Sep 17 00:00:00 2001 From: Clemente Raposo Date: Wed, 15 Dec 2021 16:20:24 +0000 Subject: [PATCH] Squashed 'public/legacy/' changes from bb959a145..4f401678f 4f401678f SuiteCRM 7.12.2 Release 647fd6ad5 Fix #9382 - Outbound Emails editview Unsupported operand types fatal in php8 2b116b8a8 Fix #9374 - OAuth password creation Unsupported operand types fatal in php8 97fe07b7a Allow changing text colors when composing an email eed4acacd Fix #9376 - allow workflows on import 5ca4e3e7f Fix Campaign Email settings removes Email settings 4b0dc4ffb fix #9383 - upgrade existing php code using each() function 0590b3690 Fix #8602 - Fix email view action return_action 2bf8e17cf Fix #8602 - Fix email message modal displayed buttons git-subtree-dir: public/legacy git-subtree-split: 4f401678fdb1f769ea897c82d4504ab8380ff9af --- ModuleInstall/ModuleScanner.php | 83 +++++-- README.md | 2 +- download.php | 15 +- files.md5 | 58 ++--- include/javascript/message-box.js | 2 +- .../include/javascript/message-box.js | 16 ++ modules/AOW_WorkFlow/AOW_WorkFlow.php | 13 +- modules/AOW_WorkFlow/language/en_us.lang.php | 3 +- .../AOW_WorkFlow/metadata/detailviewdefs.php | 5 + .../AOW_WorkFlow/metadata/editviewdefs.php | 5 + modules/AOW_WorkFlow/vardefs.php | 8 + modules/EmailMan/controller.php | 112 ++++----- .../include/ComposeView/EmailsComposeView.js | 16 +- modules/Emails/metadata/detailviewdefs.php | 8 +- .../metadata/nonimporteddetailviewdefs.php | 8 +- .../relationships/AbstractRelationships.php | 4 +- .../ModuleBuilder/views/view.relationship.php | 4 +- .../metadata/detailcredentialsviewdefs.php | 10 +- .../metadata/detailpasswordviewdefs.php | 8 +- .../OAuth2Clients/metadata/detailviewdefs.php | 10 +- .../metadata/editcredentialsviewdefs.php | 6 +- .../metadata/editpasswordviewdefs.php | 4 +- .../OAuth2Clients/metadata/editviewdefs.php | 8 +- .../metadata/detailviewdefs.php | 8 +- .../metadata/editviewdefs.php | 227 +++++++++--------- modules/Project/controller.php | 10 +- modules/UpgradeWizard/upload.php | 22 +- suitecrm_version.php | 4 +- 28 files changed, 389 insertions(+), 290 deletions(-) diff --git a/ModuleInstall/ModuleScanner.php b/ModuleInstall/ModuleScanner.php index 2e2f00f58..919c9fb20 100755 --- a/ModuleInstall/ModuleScanner.php +++ b/ModuleInstall/ModuleScanner.php @@ -212,6 +212,7 @@ class ModuleScanner 'call_user_func', 'call_user_func_array', 'create_function', + 'phpinfo', //mutliple files per function call @@ -575,6 +576,7 @@ class ModuleScanner // found isValidExtension($file)) { - $issues[] = translate('ML_INVALID_EXT'); + $issues[] = translate('ML_INVALID_EXT', 'Administration'); $this->issues['file'][$file] = $issues; return $issues; } if ($this->isConfigFile($file)) { - $issues[] = translate('ML_OVERRIDE_CORE_FILES'); + $issues[] = translate('ML_OVERRIDE_CORE_FILES', 'Administration'); $this->issues['file'][$file] = $issues; + return $issues; } $contents = file_get_contents($file); @@ -609,7 +612,7 @@ class ModuleScanner if (is_string($token[0])) { switch ($token[0]) { case '`': - $issues['backtick'] = translate('ML_INVALID_FUNCTION') . " '`'"; + $issues['backtick'] = translate('ML_INVALID_FUNCTION', 'Administration') . " '`'"; // no break case '(': if ($checkFunction) { @@ -625,9 +628,15 @@ class ModuleScanner case T_WHITESPACE: break; case T_EVAL: if (in_array('eval', $this->blackList) && !in_array('eval', $this->blackListExempt)) { - $issues[]= translate('ML_INVALID_FUNCTION') . ' eval()'; + $issues[]= translate('ML_INVALID_FUNCTION', 'Administration') . ' eval()'; } break; + case T_ECHO: + $issues[]= translate('ML_INVALID_FUNCTION', 'Administration') . ' echo'; + break; + case T_EXIT: + $issues[]= translate('ML_INVALID_FUNCTION', 'Administration') . ' exit / die'; + break; case T_STRING: $token[1] = strtolower($token[1]); if ($lastToken !== false && $lastToken[0] == T_NEW) { @@ -651,21 +660,20 @@ class ModuleScanner // check static blacklist for methods if (!empty($this->methodsBlackList[$token[1]])) { if ($this->methodsBlackList[$token[1]] == '*') { - $issues[]= translate('ML_INVALID_METHOD') . ' ' .$token[1]. '()'; + $issues[]= translate('ML_INVALID_METHOD', 'Administration') . ' ' .$token[1]. '()'; break; - } else { - if ($lastToken[0] == T_DOUBLE_COLON && $index > 2 && $tokens[$index-2][0] == T_STRING) { - $classname = strtolower($tokens[$index-2][1]); - if (in_array($classname, $this->methodsBlackList[$token[1]])) { - $issues[]= translate('ML_INVALID_METHOD') . ' ' .$classname . '::' . $token[1]. '()'; - break; - } + } + if ($lastToken[0] == T_DOUBLE_COLON && $index > 2 && $tokens[$index-2][0] == T_STRING) { + $classname = strtolower($tokens[$index-2][1]); + if (in_array($classname, $this->methodsBlackList[$token[1]])) { + $issues[]= translate('ML_INVALID_METHOD', 'Administration') . ' ' .$classname . '::' . $token[1]. '()'; + break; } } } //this is a method call, check the black list if (in_array($token[1], $this->methodsBlackList)) { - $issues[]= translate('ML_INVALID_METHOD') . ' ' .$token[1]. '()'; + $issues[]= translate('ML_INVALID_METHOD', 'Administration') . ' ' .$token[1]. '()'; } break; } @@ -681,7 +689,7 @@ class ModuleScanner // no break case T_VARIABLE: $checkFunction = true; - $possibleIssue = translate('ML_INVALID_FUNCTION') . ' ' . $token[1] . '()'; + $possibleIssue = translate('ML_INVALID_FUNCTION', 'Administration') . ' ' . $token[1] . '()'; break; default: @@ -866,18 +874,13 @@ class ModuleScanner /** *This function will take all issues of the current instance and print them to the screen **/ - public function displayIssues($package='Package') + public function displayIssues($package = 'Package') { - echo '

'.str_replace('{PACKAGE}', $package, translate('ML_PACKAGE_SCANNING')). '


' . translate('ML_INSTALLATION_FAILED') . '


' .str_replace('{PACKAGE}', $package, translate('ML_PACKAGE_NOT_CONFIRM')). '


' . translate('ML_SUGAR_LOADING_POLICY') . ' ' . translate('ML_SUITE_KB') . '.'. -'
' . translate('ML_AVAIL_RESTRICTION'). ' ' . translate('ML_SUITE_DZ') . '.

'; - - - foreach ($this->issues as $type=>$issues) { - echo '

'. ucfirst($type) .' ' . translate('ML_ISSUES') . '

'; + foreach ($this->issues as $type => $issues) { + echo '

' . ucfirst($type) . ' ' . translate('ML_ISSUES', 'Administration') . '

'; echo '
'; - foreach ($issues as $file=>$issue) { - $file = str_replace($this->pathToModule . '/', '', $file); + foreach ($issues as $file => $issue) { + $file = preg_replace('/.*\//', '', $file); echo '
' . $file . '
'; if (is_array($issue)) { foreach ($issue as $i) { @@ -893,6 +896,36 @@ class ModuleScanner echo "
"; } + /** + *This function will take all issues of the current instance and add them to a string + **/ + public function getIssuesLog($package = 'Package') + { + $message = ''; + + foreach ($this->issues as $type => $issues) { + $message .= '

' . ucfirst($type) . ' ' . translate('ML_ISSUES', + 'Administration') . '

'; + $message .= '
'; + foreach ($issues as $file => $issue) { + $file = preg_replace('/.*\//', '', $file); + $message .= '
' . $file . '
'; + if (is_array($issue)) { + foreach ($issue as $i) { + $message .= "$i
"; + } + } else { + $message .= "$issue
"; + } + $message .= "
"; + } + $message .= '
'; + } + + return $message; + } + + /** * Lock config settings */ @@ -912,7 +945,7 @@ class ModuleScanner { $config_hash_after = md5(serialize($GLOBALS['sugar_config'])); if ($config_hash_after != $this->config_hash) { - $this->issues['file'][$file] = array(translate('ML_CONFIG_OVERRIDE')); + $this->issues['file'][$file] = array(translate('ML_CONFIG_OVERRIDE', 'Administration')); return $this->issues; } return false; diff --git a/README.md b/README.md index dda9dd7e0..ae0ed8696 100755 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ -# SuiteCRM 8.0.0-beta-2 +# SuiteCRM 7.12.2 [![LICENSE](https://img.shields.io/github/license/suitecrm/suitecrm.svg)](https://github.com/salesagility/suitecrm/blob/hotfix/LICENSE.txt) [![contributions welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat)](https://github.com/salesagility/SuiteCRM-Core/issues) diff --git a/download.php b/download.php index 41444d085..4b2256300 100755 --- a/download.php +++ b/download.php @@ -206,7 +206,7 @@ if ((!isset($_REQUEST['isProfile']) && empty($_REQUEST['id'])) || empty($_REQUES $mime_type = 'application/octet-stream'; break; } - + if ($doQuery && isset($query)) { $rs = DBManagerFactory::getInstance()->query($query); $row = DBManagerFactory::getInstance()->fetchByAssoc($rs); @@ -261,7 +261,14 @@ if ((!isset($_REQUEST['isProfile']) && empty($_REQUEST['id'])) || empty($_REQUES } } else { header('Content-type: ' . $mime_type); - if (isset($_REQUEST['preview']) && $_REQUEST['preview'] === 'yes' && $mime_type !== 'text/html') { + + $showPreview = false; + + if (in_array($row['file_ext'], $sugar_config['allowed_preview'], true)) { + $showPreview = isset($_REQUEST['preview']) && $_REQUEST['preview'] === 'yes' && $mime_type !== 'text/html'; + } + + if ($showPreview === true) { header('Content-Disposition: inline; filename="' . $name . '";'); } else { header('Content-Disposition: attachment; filename="' . $name . '";'); @@ -281,8 +288,8 @@ if ((!isset($_REQUEST['isProfile']) && empty($_REQUEST['id'])) || empty($_REQUES ob_start(); echo clean_file_output(file_get_contents($download_location), $mime_type); - + $output = ob_get_contents(); ob_end_clean(); - + echo $output; diff --git a/files.md5 b/files.md5 index 96d9d4372..488dfc894 100755 --- a/files.md5 +++ b/files.md5 @@ -1,5 +1,5 @@ '69a1e7b3d7755a2a63499a16ddae81cf', './Api/Core/Config/slim.php' => 'b134e68765e6a1403577e2a5a06322b8', @@ -102,7 +102,7 @@ $md5_string = array ( './HandleAjaxCall.php' => '954cebdd8ea2ab1e5c03658b184322fd', './LICENSE.txt' => 'd3f150e4a5bed444763ebe8a81742a95', './ModuleInstall/ModuleInstaller.php' => '526a3e11024b84f3602f9857d69a8e47', - './ModuleInstall/ModuleScanner.php' => '7ce0aaf0c2c4b05a6e9588ea36065a7f', + './ModuleInstall/ModuleScanner.php' => '5bd029e1955c5c243ce4cc567cc99367', './ModuleInstall/PackageManager/ListViewPackages.php' => 'dd40ddc497010be809cb03c63499ac4f', './ModuleInstall/PackageManager/PackageController.php' => '03db58edbce570e532e1c55dbb657889', './ModuleInstall/PackageManager/PackageManager.php' => 'ad764627f0515370ef800ba88dfe49e8', @@ -115,7 +115,7 @@ $md5_string = array ( './ModuleInstall/PackageManager/tpls/PackageManagerLicense.tpl' => 'df5e267d1df5ce08fb9406e42d5b4816', './ModuleInstall/PackageManager/tpls/PackageManagerScripts.tpl' => '98e396c0aa57329731fda19c790fffb2', './ModuleInstall/extensions.php' => '094f4650261f6efbab1b90b119829388', - './README.md' => '907df202f6bfd978ccbff16441d12df6', + './README.md' => 'ecdc892452414ccb5cb20142ad118de4', './RoboFile.php' => '045b82c1df69553824d0e4ffcce6e03c', './SugarSecurity.php' => '47e316b2d408e8c5192c8ea4a4f921b3', './TreeData.php' => '32873e20cb5fd33f9d1cdaf18c3cac5c', @@ -522,7 +522,7 @@ $md5_string = array ( './data/SugarBean.php' => 'd8544e7bffbd4eeea20053f52c5514bd', './deprecated.php' => 'f5f507fd6314f38d29c97e2cc2c62239', './dictionary.php' => 'b7c1370fb75a2940c04db74627c4462c', - './download.php' => 'f2d366039d134ac463ff1e75634ce509', + './download.php' => '1d337efcbfc68d524faab8c4460e107a', './emailmandelivery.php' => 'e079e094dd3d4e361670a179f50b1fdd', './export.php' => '299a444bd270a6149c02ae8b7bbb3726', './ical_server.php' => '36acd0eb4bdabcdb8c70497b5cc79d16', @@ -1631,7 +1631,7 @@ $md5_string = array ( './include/javascript/jstree/test/visual/screenshots/mobile/home.png' => '446d85d3b0e0e7af49bfeaeb10a3a9a9', './include/javascript/jstree/test/visual/screenshots/mobile/mobile.png' => '4e76b00d1d4edd46e9342867b4f4e0af', './include/javascript/menu.js' => '700ccdcd392049e89935a3c3ba7ef73b', - './include/javascript/message-box.js' => '97decd270298e718d7f6742efa6eb278', + './include/javascript/message-box.js' => 'c78157615ad74518b32b6e2e26f37022', './include/javascript/moment.min.js' => '03c1d3ad0acf482f87368e3ea7af14c2', './include/javascript/mozaik/README.md' => 'de6a804f592e7e1fb3ae3f8fc2359edd', './include/javascript/mozaik/colorpicker/css/colorpicker.css' => 'e77424e5eaf875d3ed66b167db3936ed', @@ -2606,7 +2606,7 @@ $md5_string = array ( './jssource/src_files/include/javascript/jsclass_async.js' => '6d2f3226cf797a3830fb0f96a49b8b2c', './jssource/src_files/include/javascript/jsclass_base.js' => '0e99f15d99c783d457d96e3198c0cb95', './jssource/src_files/include/javascript/menu.js' => '8e8add77d513333cc56ff829c23befbe', - './jssource/src_files/include/javascript/message-box.js' => 'c4e1854f58023512499edd90d0e9172e', + './jssource/src_files/include/javascript/message-box.js' => 'd91df716ac114fa9845be820ed756b1e', './jssource/src_files/include/javascript/phpjs/get_html_translation_table.js' => '9667941dd790119d552f99b6d6b73fdf', './jssource/src_files/include/javascript/phpjs/html_entity_decode.js' => '022ed687a9c7c55a21b4a2aaa848921d', './jssource/src_files/include/javascript/phpjs/htmlentities.js' => 'a4369a51c1d8d1670f78b68c28330424', @@ -3638,17 +3638,17 @@ $md5_string = array ( './modules/AOW_Processed/metadata/subpanels/default.php' => 'a854bad4c87fee3ae01b971e88041b66', './modules/AOW_Processed/vardefs.php' => 'b8116bafbeac63b860466832c444da40', './modules/AOW_Processed/views/view.list.php' => '2f4404c998460f095e3affe63ce1958d', - './modules/AOW_WorkFlow/AOW_WorkFlow.php' => '0a4595bcd982a7c89ab566321ab0227d', + './modules/AOW_WorkFlow/AOW_WorkFlow.php' => '83b3009636ab14da43bb0e1b1f7112b6', './modules/AOW_WorkFlow/Dashlets/AOW_WorkFlowDashlet/AOW_WorkFlowDashlet.meta.php' => '307d5c5c4e36070f26fcd7019a7c3ce7', './modules/AOW_WorkFlow/Dashlets/AOW_WorkFlowDashlet/AOW_WorkFlowDashlet.php' => '9b68831e41b81207bf2e3a1a42b266b2', './modules/AOW_WorkFlow/Menu.php' => 'bda4b71d876e065f7661bce4a91bde57', './modules/AOW_WorkFlow/aow_utils.php' => '0f06117126fbfe5cc6fa498a6ddbb4b8', './modules/AOW_WorkFlow/controller.php' => '80bf5d8ed3fec47f72320c318719e630', - './modules/AOW_WorkFlow/language/en_us.lang.php' => 'd3f5d7f63df072fe0d79bc5385dadbbf', + './modules/AOW_WorkFlow/language/en_us.lang.php' => '3257fefa8880da77ef4c90c08fab9dad', './modules/AOW_WorkFlow/metadata/SearchFields.php' => '125fca8f181fd8c4fbb159fd71096bd7', './modules/AOW_WorkFlow/metadata/dashletviewdefs.php' => '113c2f1f0cd10818f564704bcca7c14c', - './modules/AOW_WorkFlow/metadata/detailviewdefs.php' => 'ccf1b5c10936884a44e2f155ab71afeb', - './modules/AOW_WorkFlow/metadata/editviewdefs.php' => 'af6bae5b500c168cee317f9f166a0a2a', + './modules/AOW_WorkFlow/metadata/detailviewdefs.php' => 'd585f5d2191dc56f4f8bf2e9e218e45d', + './modules/AOW_WorkFlow/metadata/editviewdefs.php' => '28914aa96a091ec183728f71006ae689', './modules/AOW_WorkFlow/metadata/listviewdefs.php' => '9068575782d803d94517c12954fb0a0e', './modules/AOW_WorkFlow/metadata/metafiles.php' => '7584c90c84e8a96b21d38eb28d5eeeb9', './modules/AOW_WorkFlow/metadata/popupdefs.php' => '63d9d82f9a867498d239b8774366302c', @@ -3656,7 +3656,7 @@ $md5_string = array ( './modules/AOW_WorkFlow/metadata/searchdefs.php' => 'b87c0f0ee913106deaee64b8f53dce54', './modules/AOW_WorkFlow/metadata/subpaneldefs.php' => '622ff373a39724c4555fe77dac4f4466', './modules/AOW_WorkFlow/metadata/subpanels/default.php' => 'ad81319c7fcbcf54e938a93c865e1b57', - './modules/AOW_WorkFlow/vardefs.php' => '627e2c280f00bb5350b6d275da79af70', + './modules/AOW_WorkFlow/vardefs.php' => 'c82a06b7557d68cfbc6d44461bddf86f', './modules/Accounts/Account.js' => '88bd59a0507a3d56a0836b667c9de729', './modules/Accounts/Account.php' => 'e737265dbe8552f334032c6555b0cb7f', './modules/Accounts/AccountFormBase.php' => '03eb01512d8cec01a5022a25db83be5d', @@ -4544,7 +4544,7 @@ $md5_string = array ( './modules/EmailMan/Forms.php' => 'd939f3555ef708f533a77c77b696ccd8', './modules/EmailMan/Menu.php' => '9fec01e70c034091a9fe652a61407886', './modules/EmailMan/action_view_map.php' => 'e4b8e3c021d90ed66c74caa7e1f8e4c5', - './modules/EmailMan/controller.php' => '3af2309adb15b87358d1c08b35a7d280', + './modules/EmailMan/controller.php' => '6a79f210b78331386f738a2d6e1a1c78', './modules/EmailMan/field_arrays.php' => '46faacb2ea303c961a1871ea613a455f', './modules/EmailMan/language/en_us.lang.php' => 'ba2d83e744656eeb3aae03f3dc5c0396', './modules/EmailMan/metadata/SearchFields.php' => '16ab0bf5917fd13e2bb8dd99c3444dd8', @@ -4648,7 +4648,7 @@ $md5_string = array ( './modules/Emails/include/ComposeView/ComposeView.tpl' => '1ec29fbb9803c24e5ed8a12155668e58', './modules/Emails/include/ComposeView/ComposeViewBlank.tpl' => '22365ce6727ffb560e5ad3fc187f13f2', './modules/Emails/include/ComposeView/ComposeViewToolbar.tpl' => '656b26827857375278124e4610b9ff06', - './modules/Emails/include/ComposeView/EmailsComposeView.js' => '5c836fdc4d36bb39c6b027f13f9724db', + './modules/Emails/include/ComposeView/EmailsComposeView.js' => '65624a5e5985e5f9deee1e4725533462', './modules/Emails/include/DetailView/EmailsDetailView.php' => 'f95937f398f37afe3927ecc035b8b743', './modules/Emails/include/DetailView/EmailsDraftDetailView.php' => 'baafca815e89a4c0ec3df8b6192552ea', './modules/Emails/include/DetailView/EmailsNonImportedDetailView.php' => 'ef9ecbcf65fa6f03e32f94b6a9805b2f', @@ -4695,12 +4695,12 @@ $md5_string = array ( './modules/Emails/metadata/composeviewdefs.php' => '4cc688ab31ce40c70a476304e890f5df', './modules/Emails/metadata/dashletviewdefs.php' => 'f1b4e7eed099e0302f5f9f89ca507d12', './modules/Emails/metadata/detaildraftviewdefs.php' => '49fc6d1b8885420494460fc1037bc6ea', - './modules/Emails/metadata/detailviewdefs.php' => 'dc061470876aebf0a41c2e9841d103ef', + './modules/Emails/metadata/detailviewdefs.php' => '0e6b0bc4f9e006978b6d33dc902a6779', './modules/Emails/metadata/editviewdefs.php' => 'ab93b79de12963a9ca0e112d50477958', './modules/Emails/metadata/importviewdefs.php' => '393b8a7c1f9d5b23bc75ce5d6dfdfc51', './modules/Emails/metadata/listviewdefs.php' => '6352a475112c82070f741f5f6386aff3', './modules/Emails/metadata/metafiles.php' => '9876f3a92c8fffb0b7d3aec6993c370d', - './modules/Emails/metadata/nonimporteddetailviewdefs.php' => '1ad3f9ec3a06923de996e34a92f7aae4', + './modules/Emails/metadata/nonimporteddetailviewdefs.php' => 'ae75f85d07dc926ff8a489cfad6c27a0', './modules/Emails/metadata/popupdefs.php' => 'ba85426b428b440975b08f5e9a016ece', './modules/Emails/metadata/qcmodulesdefs.php' => '478fea3bbc381ed9a686c7ccc4bc43b4', './modules/Emails/metadata/quickcreatedefs.php' => '874d3cf3d04e0514195610ede098428a', @@ -5193,7 +5193,7 @@ $md5_string = array ( './modules/ModuleBuilder/parsers/parser.modifysubpanel.php' => '27b433079ba0b51495f59defd0bb348f', './modules/ModuleBuilder/parsers/parser.searchfields.php' => 'e4fb09e49c5247ac4744a8be34e4a686', './modules/ModuleBuilder/parsers/relationships/AbstractRelationship.php' => 'b83c367fd72d1133dd393e44385c1b0c', - './modules/ModuleBuilder/parsers/relationships/AbstractRelationships.php' => 'ee74b56f73e591c5ef86a16a0c6ddd31', + './modules/ModuleBuilder/parsers/relationships/AbstractRelationships.php' => 'e4e2cf6967656d21bd42106f0bf2b83b', './modules/ModuleBuilder/parsers/relationships/ActivitiesRelationship.php' => '5cd20dd7c88ca328d9fdc43592585fc9', './modules/ModuleBuilder/parsers/relationships/DeployedRelationships.php' => 'faa507ca4856cf7bec90833b6ab04970', './modules/ModuleBuilder/parsers/relationships/ManyToManyRelationship.php' => 'bc77bfba6dbb8f53578fa4ce8f526491', @@ -5277,7 +5277,7 @@ $md5_string = array ( './modules/ModuleBuilder/views/view.package.php' => '98f14929cf217186a081488380427c5a', './modules/ModuleBuilder/views/view.popupview.php' => 'fd818423e7b49d9a39c746be70091967', './modules/ModuleBuilder/views/view.property.php' => 'af44584a8a61a1b8e11b0befa2847ad5', - './modules/ModuleBuilder/views/view.relationship.php' => '93bb9749d35157c57b63088eb59f298a', + './modules/ModuleBuilder/views/view.relationship.php' => '50ed2a210cb2d277e047b11eb41ff625', './modules/ModuleBuilder/views/view.relationships.php' => 'db321972c1dc7a533ca370b2408c1c6e', './modules/ModuleBuilder/views/view.resetmodule.php' => '59b291e348f014358a3f3b588bde2990', './modules/ModuleBuilder/views/view.searchview.php' => 'fbca76bd29e0bcdb3a4ca10e281ac57c', @@ -5322,12 +5322,12 @@ $md5_string = array ( './modules/OAuth2Clients/js/PasswordCredentialsValidation.js' => 'd20b36468c15522c07606ddfe6204c64', './modules/OAuth2Clients/language/en_us.lang.php' => '41cc684474703a8d6f1c7ba76b4a900f', './modules/OAuth2Clients/metadata/SearchFields.php' => '0c30055d8ac347f228fe8fd18891c01e', - './modules/OAuth2Clients/metadata/detailcredentialsviewdefs.php' => 'cfcc4106c19bbd7820f20b93ef92f831', - './modules/OAuth2Clients/metadata/detailpasswordviewdefs.php' => '05bad4c0938bd89a725a95219d4b7ca3', - './modules/OAuth2Clients/metadata/detailviewdefs.php' => '752ef40916c7b1da82415063ece8638b', - './modules/OAuth2Clients/metadata/editcredentialsviewdefs.php' => 'ff8140e9404e2baacd2d7328e0bd0aeb', - './modules/OAuth2Clients/metadata/editpasswordviewdefs.php' => '37d0505b27bba6fb6fe79378187f1a94', - './modules/OAuth2Clients/metadata/editviewdefs.php' => '087f5db2a82577312f2d7a384ede2ec6', + './modules/OAuth2Clients/metadata/detailcredentialsviewdefs.php' => '7b697367c75b861cc31f3908c891a424', + './modules/OAuth2Clients/metadata/detailpasswordviewdefs.php' => 'a0ff587a982ccb98c693a95083d12c37', + './modules/OAuth2Clients/metadata/detailviewdefs.php' => '06a24351d5c0c05134efb22a779562ef', + './modules/OAuth2Clients/metadata/editcredentialsviewdefs.php' => '4d247876f3ba72caea12bf2218313357', + './modules/OAuth2Clients/metadata/editpasswordviewdefs.php' => '03e345601ae7834a3db7eeeb23b50173', + './modules/OAuth2Clients/metadata/editviewdefs.php' => 'e5f20eb75f4f9c90ebed7e913cea5dca', './modules/OAuth2Clients/metadata/listviewdefs.php' => '4282034fa7a8316948346787d4641c65', './modules/OAuth2Clients/metadata/metafiles.php' => '41cd83567c02ce1a8edc8634307f5cdd', './modules/OAuth2Clients/metadata/popupdefs.php' => '7a2066ca250a032afb73d2feb5026d5a', @@ -5425,8 +5425,8 @@ $md5_string = array ( './modules/OutboundEmailAccounts/language/en_us.lang.php' => '9b9becdbac51bb11ec5009007f7aa682', './modules/OutboundEmailAccounts/metadata/SearchFields.php' => 'b1d3821e188938066156f0c85d4e37fe', './modules/OutboundEmailAccounts/metadata/dashletviewdefs.php' => '93e262245007ffc79f1ff9938e8bbac9', - './modules/OutboundEmailAccounts/metadata/detailviewdefs.php' => '464e6ae2faa0d79b72999ca462dd9fa9', - './modules/OutboundEmailAccounts/metadata/editviewdefs.php' => 'c52ee86e9832d7c210134710d98396d6', + './modules/OutboundEmailAccounts/metadata/detailviewdefs.php' => '948df4801e3d229ea4bac06e247fd643', + './modules/OutboundEmailAccounts/metadata/editviewdefs.php' => 'f28a1bf18ca13bcfe8229c1d5fa6eee4', './modules/OutboundEmailAccounts/metadata/listviewdefs.php' => 'b55ab9fcc7b7fe5dc24847570f53c5c6', './modules/OutboundEmailAccounts/metadata/metafiles.php' => 'd163cfdaa7fa3d697326f798bbcc6867', './modules/OutboundEmailAccounts/metadata/popupdefs.php' => '3464601d89e63838c93f7bfcd2142eec', @@ -5452,7 +5452,7 @@ $md5_string = array ( './modules/Project/SubPanelView.php' => 'af95a6ef52973f660100c71164dd42fe', './modules/Project/action_view_map.php' => 'bfb14b59f2e972e576ab76d3d5aceac0', './modules/Project/chart.php' => '02539a509ab925faa9a81ccf04a9c058', - './modules/Project/controller.php' => 'c901668f6b9a9c75dad1ca1cdafd39f6', + './modules/Project/controller.php' => '76888c230e8c8b12b5e43cec7dcc8ac9', './modules/Project/css/style.css' => 'f46ccefd03710380a8079bede95341ce', './modules/Project/css/style_chart.css' => '233f2a964aeed0a7a4db10aaa8397a5b', './modules/Project/delete_project_tasks.php' => '1c2dab740529a1e5a2fbc0e0ce7965d9', @@ -6002,7 +6002,7 @@ $md5_string = array ( './modules/UpgradeWizard/upgradeMetaHelper.php' => '74eb154592e08fec475b3e43908eee01', './modules/UpgradeWizard/upgradeTimeCounter.php' => '375d68c9195bec9cb46ae78ee780f854', './modules/UpgradeWizard/upgradeWizard.js' => 'f52a5ac0e7c17ab9bebdaf1149766a1c', - './modules/UpgradeWizard/upload.php' => 'b736ead70ef9bbffb622b7ff247b6e6a', + './modules/UpgradeWizard/upload.php' => 'c2a0d959177ea5dd45774299b55d4e21', './modules/UpgradeWizard/uw_ajax.php' => 'dc6dd5c6491829bdff9ad33b5f6162ee', './modules/UpgradeWizard/uw_emptyFunctions.php' => '78d1a2e170174830b7dd1522db706828', './modules/UpgradeWizard/uw_files.php' => 'c63402ed2d43b3c6477e8c30859cb32d', @@ -6328,7 +6328,7 @@ $md5_string = array ( './soap.php' => 'e28988c2e0b8e2c484587b537a710525', './sugar_version.json' => 'bdfbcefae2f9af559bef6a36367df7bb', './sugar_version.php' => 'db7b6c8d51f87879fce1e6172eedfbed', - './suitecrm_version.php' => 'e03f4bc7104206ab214f5952a78e38ea', + './suitecrm_version.php' => 'cc4bc58fefbbe53ff0744c20358fa0fa', './themes/SuiteP/css/Dawn/color-palette.scss' => 'e64677d79e1d68c069bdc2dc661c4f99', './themes/SuiteP/css/Dawn/icons.scss' => 'd59f8c5855e7a8df09542a663835a196', './themes/SuiteP/css/Dawn/select.ico' => '22393ad23f16c3f1462455bae8f20279', @@ -9252,4 +9252,4 @@ $md5_string = array ( './themes/default/less/wells.less' => '07cc7d04d7f7f344742f23886cbe5683', './vCard.php' => '3f5273501c464563e5b1247be28b69de', './vcal_server.php' => 'ce4752597ba62a99f791c467339d2500', -); \ No newline at end of file +); diff --git a/include/javascript/message-box.js b/include/javascript/message-box.js index a3f3585a5..9b8a311ae 100755 --- a/include/javascript/message-box.js +++ b/include/javascript/message-box.js @@ -37,7 +37,7 @@ * display the words "Powered by SugarCRM" and "Supercharged by SuiteCRM". */(function($){$.fn.messageBox=function(options){"use strict";var self=this;self.controls={};self.controls.modal={};if(typeof $.fn.modal==="undefined"){console.error('messageBox - Missing Dependency Required: Bootstrap model');return self;} self.modal=$.fn.modal;var opts=$.extend({},$.fn.messageBox.defaults,options);self.show=function(){"use strict";self.controls.modal.container.modal('show');return self;};self.onOk=function(){"use strict";$(self).trigger('ok');return false;};self.onCancel=function(){"use strict";$(self).trigger('cancel');return false;};self.generateID=function(){"use strict";var characters=['a','b','c','d','e','f','1','2','3','4','5','6','7','8','9'];var format='0000000-0000-0000-0000-00000000000';var z=Array.prototype.map.call(format,function($obj){var min=0;var max=characters.length-1;if($obj=='0'){var index=Math.round(Math.random()*(max-min)+min);$obj=characters[index];} -return $obj;}).toString().replace(/(,)/g,'');return z;};self.setTitle=function(content){"use strict";self.controls.modal.container.find('.modal-title').html(content);};self.getTitle=function(){"use strict";return self.controls.modal.container.find('.modal-title');};self.setBody=function(content){"use strict";self.controls.modal.container.find('.modal-body').html(content);};self.getBody=function(){"use strict";return self.controls.modal.container.find('.modal-body');};self.showHeader=function(){"use strict";return self.controls.modal.container.find('.modal-header').show();};self.hideHeader=function(){"use strict";return self.controls.modal.container.find('.modal-header').hide();};self.showFooter=function(){"use strict";return self.controls.modal.container.find('.modal-footer').show();};self.hideFooter=function(){"use strict";return self.controls.modal.container.find('.modal-footer').hide();};self.headerContent='';self.footerContent=' ';self.construct=function(constructOptions){"use strict";if(typeof self.controls.modal.container==="undefined"){if(typeof opts.onOK==="undefined"){opts.onOK=self.onOk;} +return $obj;}).toString().replace(/(,)/g,'');return z;};self.setTitle=function(content){"use strict";self.controls.modal.container.find('.modal-title').html(content);};self.getTitle=function(){"use strict";return self.controls.modal.container.find('.modal-title');};self.setBody=function(content){"use strict";self.controls.modal.container.find('.modal-body').html(content);};self.getBody=function(){"use strict";return self.controls.modal.container.find('.modal-body');};self.showHeader=function(){"use strict";return self.controls.modal.container.find('.modal-header').show();};self.hideHeader=function(){"use strict";return self.controls.modal.container.find('.modal-header').hide();};self.showFooter=function(){"use strict";return self.controls.modal.container.find('.modal-footer').show();};self.hideCancel=function(){"use strict";return self.controls.modal.container.find('.btn-cancel').hide();};self.hideOk=function(){"use strict";return self.controls.modal.container.find('.btn-ok').hide();};self.hideFooter=function(){"use strict";return self.controls.modal.container.find('.modal-footer').hide();};self.headerContent='';self.footerContent=' ';self.construct=function(constructOptions){"use strict";if(typeof self.controls.modal.container==="undefined"){if(typeof opts.onOK==="undefined"){opts.onOK=self.onOk;} if(typeof opts.onCancel==="undefined"){opts.onCancel=self.onCancel;} if(typeof opts.headerContent==="undefined"){opts.headerContent=self.headerContent;} if(typeof opts.footerContent==="undefined"){opts.footerContent=self.footerContent;} diff --git a/jssource/src_files/include/javascript/message-box.js b/jssource/src_files/include/javascript/message-box.js index 9c2e84975..28d8d4948 100644 --- a/jssource/src_files/include/javascript/message-box.js +++ b/jssource/src_files/include/javascript/message-box.js @@ -166,6 +166,22 @@ return self.controls.modal.container.find('.modal-footer').show(); }; + /** + * + */ + self.hideCancel = function() { + "use strict"; + return self.controls.modal.container.find('.btn-cancel').hide(); + }; + + /** + * + */ + self.hideOk = function() { + "use strict"; + return self.controls.modal.container.find('.btn-ok').hide(); + }; + /** * */ diff --git a/modules/AOW_WorkFlow/AOW_WorkFlow.php b/modules/AOW_WorkFlow/AOW_WorkFlow.php index 4685df1b4..0451b68ba 100755 --- a/modules/AOW_WorkFlow/AOW_WorkFlow.php +++ b/modules/AOW_WorkFlow/AOW_WorkFlow.php @@ -217,13 +217,14 @@ class AOW_WorkFlow extends Basic */ public function run_bean_flows(SugarBean $bean) { - if (!defined('SUGARCRM_IS_INSTALLING') && (!isset($_REQUEST['module']) || $_REQUEST['module'] != 'Import')) { - $query = "SELECT id FROM aow_workflow WHERE aow_workflow.flow_module = '" . $bean->module_dir . "' AND aow_workflow.status = 'Active' AND (aow_workflow.run_when = 'Always' OR aow_workflow.run_when = 'On_Save' OR aow_workflow.run_when = 'Create') AND aow_workflow.deleted = 0 "; + $query = "SELECT id FROM aow_workflow WHERE aow_workflow.flow_module = '" . $bean->module_dir . "' AND aow_workflow.status = 'Active' AND (aow_workflow.run_when = 'Always' OR aow_workflow.run_when = 'On_Save' OR aow_workflow.run_when = 'Create') AND aow_workflow.deleted = 0 "; - $result = $this->db->query($query, false); - $flow = BeanFactory::newBean('AOW_WorkFlow'); - while (($row = $bean->db->fetchByAssoc($result)) != null) { - $flow->retrieve($row['id']); + $result = $this->db->query($query, false); + $flow = BeanFactory::newBean('AOW_WorkFlow'); + while (($row = $bean->db->fetchByAssoc($result)) != null) { + $flow->retrieve($row['id']); + + if ((!defined('SUGARCRM_IS_INSTALLING') && (!isset($_REQUEST['module'])) || $_REQUEST['module'] != 'Import') || $flow->run_on_import) { if ($flow->check_valid_bean($bean)) { $flow->run_actions($bean, true); } diff --git a/modules/AOW_WorkFlow/language/en_us.lang.php b/modules/AOW_WorkFlow/language/en_us.lang.php index 632f1ac33..399c16ffb 100755 --- a/modules/AOW_WorkFlow/language/en_us.lang.php +++ b/modules/AOW_WorkFlow/language/en_us.lang.php @@ -76,5 +76,6 @@ $mod_strings = array( 'LBL_ACTION_LINES' => 'Actions', 'LBL_ADD_ACTION' => 'Add Action', 'LBL_MULTIPLE_RUNS' => 'Repeated Runs', - 'LBL_RUN_WHEN' => 'Run' + 'LBL_RUN_WHEN' => 'Run', + 'LBL_RUN_ON_IMPORT' => 'Run on Import' ); diff --git a/modules/AOW_WorkFlow/metadata/detailviewdefs.php b/modules/AOW_WorkFlow/metadata/detailviewdefs.php index e8e49d0a3..8189209e5 100755 --- a/modules/AOW_WorkFlow/metadata/detailviewdefs.php +++ b/modules/AOW_WorkFlow/metadata/detailviewdefs.php @@ -117,6 +117,11 @@ $viewdefs ['AOW_WorkFlow'] = 'name' => 'multiple_runs', 'label' => 'LBL_MULTIPLE_RUNS', ), + 1 => + array( + 'name' => 'run_on_import', + 'label' => 'LBL_RUN_ON_IMPORT', + ), ), 4 => array( diff --git a/modules/AOW_WorkFlow/metadata/editviewdefs.php b/modules/AOW_WorkFlow/metadata/editviewdefs.php index 26024abff..d7cfb0774 100755 --- a/modules/AOW_WorkFlow/metadata/editviewdefs.php +++ b/modules/AOW_WorkFlow/metadata/editviewdefs.php @@ -108,6 +108,11 @@ $viewdefs ['AOW_WorkFlow'] = 'name' => 'multiple_runs', 'label' => 'LBL_MULTIPLE_RUNS', ), + 1 => + array( + 'name' => 'run_on_import', + 'label' => 'LBL_RUN_ON_IMPORT', + ), ), 4 => array( diff --git a/modules/AOW_WorkFlow/vardefs.php b/modules/AOW_WorkFlow/vardefs.php index 38f65a7df..9a27039cb 100755 --- a/modules/AOW_WorkFlow/vardefs.php +++ b/modules/AOW_WorkFlow/vardefs.php @@ -213,6 +213,14 @@ $dictionary['AOW_WorkFlow'] = array( 'bean_name' => 'AOW_Processed', 'source' => 'non-db', ), + 'run_on_import' => + array( + 'name' => 'run_on_import', + 'vname' => 'LBL_RUN_ON_IMPORT', + 'type' => 'bool', + 'default' => '0', + 'reportable' => false, + ), ), 'relationships' => array( 'aow_workflow_aow_conditions' => diff --git a/modules/EmailMan/controller.php b/modules/EmailMan/controller.php index bcd2d4c6f..302a188cb 100755 --- a/modules/EmailMan/controller.php +++ b/modules/EmailMan/controller.php @@ -94,65 +94,67 @@ class EmailManController extends SugarController $focus->saveConfig(); - // save User defaults for emails - $configurator->config['email_default_delete_attachments'] = (isset($_REQUEST['email_default_delete_attachments'])) ? true : false; - $configurator->config['email_warning_notifications'] = (isset($_REQUEST['email_warning_notifications'])) ? true : false; - $configurator->config['email_enable_confirm_opt_in'] = isset($_REQUEST['email_enable_confirm_opt_in']) ? $_REQUEST['email_enable_confirm_opt_in'] : SugarEmailAddress::COI_STAT_DISABLED; - $configurator->config['email_enable_auto_send_opt_in'] = (isset($_REQUEST['email_enable_auto_send_opt_in'])) ? true : false; - $configurator->config['email_confirm_opt_in_email_template_id'] = isset($_REQUEST['email_template_id_opt_in']) ? $_REQUEST['email_template_id_opt_in'] : $configurator->config['aop']['confirm_opt_in_template_id']; - $configurator->config['email_allow_send_as_user'] = (isset($_REQUEST['mail_allowusersend']) && $_REQUEST['mail_allowusersend'] == '1') ? true : false; - /////////////////////////////////////////////////////////////////////////////// - //// SECURITY - $security = array(); - if (isset($_REQUEST['applet'])) { - $security['applet'] = 'applet'; - } - if (isset($_REQUEST['base'])) { - $security['base'] = 'base'; - } - if (isset($_REQUEST['embed'])) { - $security['embed'] = 'embed'; - } - if (isset($_REQUEST['form'])) { - $security['form'] = 'form'; - } - if (isset($_REQUEST['frame'])) { - $security['frame'] = 'frame'; - } - if (isset($_REQUEST['frameset'])) { - $security['frameset'] = 'frameset'; - } - if (isset($_REQUEST['iframe'])) { - $security['iframe'] = 'iframe'; - } - if (isset($_REQUEST['import'])) { - $security['import'] = '\?import'; - } - if (isset($_REQUEST['layer'])) { - $security['layer'] = 'layer'; - } - if (isset($_REQUEST['link'])) { - $security['link'] = 'link'; - } - if (isset($_REQUEST['object'])) { - $security['object'] = 'object'; - } - if (isset($_REQUEST['style'])) { - $security['style'] = 'style'; - } - if (isset($_REQUEST['xmp'])) { - $security['xmp'] = 'xmp'; - } - $security['script'] = 'script'; + if (empty($_POST['campaignConfig'])) { + // save User defaults for emails + $configurator->config['email_default_delete_attachments'] = (isset($_REQUEST['email_default_delete_attachments'])) ? true : false; + $configurator->config['email_warning_notifications'] = (isset($_REQUEST['email_warning_notifications'])) ? true : false; + $configurator->config['email_enable_confirm_opt_in'] = isset($_REQUEST['email_enable_confirm_opt_in']) ? $_REQUEST['email_enable_confirm_opt_in'] : SugarEmailAddress::COI_STAT_DISABLED; + $configurator->config['email_enable_auto_send_opt_in'] = (isset($_REQUEST['email_enable_auto_send_opt_in'])) ? true : false; + $configurator->config['email_confirm_opt_in_email_template_id'] = isset($_REQUEST['email_template_id_opt_in']) ? $_REQUEST['email_template_id_opt_in'] : $configurator->config['aop']['confirm_opt_in_template_id']; + $configurator->config['email_allow_send_as_user'] = (isset($_REQUEST['mail_allowusersend']) && $_REQUEST['mail_allowusersend'] == '1') ? true : false; + /////////////////////////////////////////////////////////////////////////////// + //// SECURITY + $security = array(); + if (isset($_REQUEST['applet'])) { + $security['applet'] = 'applet'; + } + if (isset($_REQUEST['base'])) { + $security['base'] = 'base'; + } + if (isset($_REQUEST['embed'])) { + $security['embed'] = 'embed'; + } + if (isset($_REQUEST['form'])) { + $security['form'] = 'form'; + } + if (isset($_REQUEST['frame'])) { + $security['frame'] = 'frame'; + } + if (isset($_REQUEST['frameset'])) { + $security['frameset'] = 'frameset'; + } + if (isset($_REQUEST['iframe'])) { + $security['iframe'] = 'iframe'; + } + if (isset($_REQUEST['import'])) { + $security['import'] = '\?import'; + } + if (isset($_REQUEST['layer'])) { + $security['layer'] = 'layer'; + } + if (isset($_REQUEST['link'])) { + $security['link'] = 'link'; + } + if (isset($_REQUEST['object'])) { + $security['object'] = 'object'; + } + if (isset($_REQUEST['style'])) { + $security['style'] = 'style'; + } + if (isset($_REQUEST['xmp'])) { + $security['xmp'] = 'xmp'; + } + $security['script'] = 'script'; - $configurator->config['email_xss'] = base64_encode(serialize($security)); + $configurator->config['email_xss'] = base64_encode(serialize($security)); - //// SECURITY - /////////////////////////////////////////////////////////////////////////////// + //// SECURITY + /////////////////////////////////////////////////////////////////////////////// - ksort($sugar_config); + ksort($sugar_config); - $configurator->handleOverride(); + $configurator->handleOverride(); + } SugarThemeRegistry::clearAllCaches(); } diff --git a/modules/Emails/include/ComposeView/EmailsComposeView.js b/modules/Emails/include/ComposeView/EmailsComposeView.js index a89051d01..75237887b 100644 --- a/modules/Emails/include/ComposeView/EmailsComposeView.js +++ b/modules/Emails/include/ComposeView/EmailsComposeView.js @@ -217,7 +217,7 @@ var valid = self.isValid(); if (valid === false) { if (typeof messageBox !== "undefined") { - var mb = messageBox({size: 'lg'}); + var mb = messageBox({size: 'lg', backdrop: 'static'}); mb.setTitle(SUGAR.language.translate('', 'ERR_INVALID_REQUIRED_FIELDS')); mb.setBody(self.translatedErrorMessage); @@ -230,6 +230,7 @@ }); mb.show(); + mb.hideCancel(); } else { alert(self.translatedErrorMessage); } @@ -467,12 +468,13 @@ $(self).trigger("sendEmail", [self]); // Tell the user we are sending an email - var mb = messageBox(); + var mb = messageBox({backdrop:'static'}); mb.hideHeader(); mb.hideFooter(); document.activeElement.blur(); mb.setBody(''); mb.show(); + mb.on('ok', function () { "use strict"; mb.remove(); @@ -533,11 +535,13 @@ mb.showHeader(); mb.setBody(response.errors.title); mb.showFooter(); + mb.hideCancel(); $(self).trigger("sentEmailError", [self, response]); } else { mb.showHeader(); mb.setBody(response.data.title); mb.showFooter(); + mb.hideCancel(); // If the user is viewing the form in the standard view if ($(self).find('input[type="hidden"][name="return_module"]').val() !== '') { @@ -838,7 +842,7 @@ "use strict"; $(self).trigger("saveDraft", [self]); // Tell the user we are sending an email - var mb = messageBox(); + var mb = messageBox({backdrop:'static'}); mb.hideHeader(); mb.hideFooter(); mb.setBody(''); @@ -899,11 +903,13 @@ mb.showHeader(); mb.setBody(response.errors.title); mb.showFooter(); + mb.hideCancel(); $(self).trigger("saveEmailError", [self, response]); } else { mb.showHeader(); mb.setBody(response.data.title); mb.showFooter(); + mb.hideCancel(); $(self).trigger("saveEmailSuccess", [self, response]); var id = undefined; @@ -1378,9 +1384,9 @@ "tinyMceOptions": { skin_url: "themes/default/css", skin: "", - plugins: "fullscreen", + plugins: "fullscreen textcolor", menubar: false, - toolbar: ['fontselect | fontsizeselect | bold italic underline | styleselect'], + toolbar: ['fontselect | fontsizeselect | bold italic underline forecolor backcolor | styleselect'], formats: { bold: {inline: 'b'}, italic: {inline: 'i'}, diff --git a/modules/Emails/metadata/detailviewdefs.php b/modules/Emails/metadata/detailviewdefs.php index 7516396dd..252e1b404 100644 --- a/modules/Emails/metadata/detailviewdefs.php +++ b/modules/Emails/metadata/detailviewdefs.php @@ -47,17 +47,17 @@ $viewdefs[$module_name]['DetailView'] = array( 'DUPLICATE', 'DELETE', [ - 'customCode' => '' + 'customCode' => '' ], 'FIND_DUPLICATES', array( - 'customCode' => '' + 'customCode' => '' ), array( - 'customCode' => '' + 'customCode' => '' ), array( - 'customCode' => '' + 'customCode' => '' ), array( 'customCode' => '' diff --git a/modules/Emails/metadata/nonimporteddetailviewdefs.php b/modules/Emails/metadata/nonimporteddetailviewdefs.php index 57c33ea5a..39ae6788c 100644 --- a/modules/Emails/metadata/nonimporteddetailviewdefs.php +++ b/modules/Emails/metadata/nonimporteddetailviewdefs.php @@ -47,16 +47,16 @@ $viewdefs[$module_name]['DetailView'] = array( 'customCode' => '' ), array( - 'customCode' => '' + 'customCode' => '' ), array( - 'customCode' => '' + 'customCode' => '' ), array( - 'customCode' => '' + 'customCode' => '' ), [ - 'customCode' => '' + 'customCode' => '' ], ), ), diff --git a/modules/ModuleBuilder/parsers/relationships/AbstractRelationships.php b/modules/ModuleBuilder/parsers/relationships/AbstractRelationships.php index cd4a759ef..f853344c6 100755 --- a/modules/ModuleBuilder/parsers/relationships/AbstractRelationships.php +++ b/modules/ModuleBuilder/parsers/relationships/AbstractRelationships.php @@ -437,7 +437,9 @@ class AbstractRelationships mkdir_recursive("$basepath/relationships") ; $installDefs = array( ) ; - list($rhs_module, $properties) = each($relationshipMetaData) ; + $rhs_module = key($relationshipMetaData); + $properties = current($relationshipMetaData); + $filename = "$basepath/relationships/{$relationshipName}MetaData.php" ; $GLOBALS [ 'log' ]->debug(get_class($this) . "->saveRelationshipMetaData(): saving the following to {$filename}" . print_r($properties, true)) ; write_array_to_file('dictionary["' . $relationshipName . '"]', $properties, (string)($filename), 'w') ; diff --git a/modules/ModuleBuilder/views/view.relationship.php b/modules/ModuleBuilder/views/view.relationship.php index 19f296215..a25e2b564 100755 --- a/modules/ModuleBuilder/views/view.relationship.php +++ b/modules/ModuleBuilder/views/view.relationship.php @@ -140,8 +140,8 @@ class ViewRelationship extends SugarView } } else { $definition = array( ) ; - $firstModuleDefinition = each($relatableModules) ; - $definition [ 'rhs_module' ] = $firstModuleDefinition [ 'key' ] ; + $firstModuleDefinition = [key($relatableModules), current($relatableModules)]; + $definition [ 'rhs_module' ] = $firstModuleDefinition[0]; $definition [ 'lhs_module' ] = $moduleName ; $definition [ 'lhs_label' ] = translate($moduleName); $definition [ 'relationship_type' ] = MB_MANYTOMANY ; diff --git a/modules/OAuth2Clients/metadata/detailcredentialsviewdefs.php b/modules/OAuth2Clients/metadata/detailcredentialsviewdefs.php index 768d8ae50..ebbcbd15d 100644 --- a/modules/OAuth2Clients/metadata/detailcredentialsviewdefs.php +++ b/modules/OAuth2Clients/metadata/detailcredentialsviewdefs.php @@ -56,23 +56,23 @@ $viewdefs[$module_name]['DetailView'] = [ [ 0 => [ - 'name' => 'name', + 0 => 'name', ], 2 => [ - 'name' => 'is_confidential', + 0 => 'is_confidential', ], 3 => [ - 'name' => 'id', + 0 => 'id', ], 4 => [ - 'name' => 'allowed_grant_type', + 0 => 'allowed_grant_type', ], 6 => [ - 'name' => 'assigned_user_name', + 0 => 'assigned_user_name', ], ], 'LBL_PANEL_ASSIGNMENT' => diff --git a/modules/OAuth2Clients/metadata/detailpasswordviewdefs.php b/modules/OAuth2Clients/metadata/detailpasswordviewdefs.php index 5d1b8cacb..5d29eada5 100644 --- a/modules/OAuth2Clients/metadata/detailpasswordviewdefs.php +++ b/modules/OAuth2Clients/metadata/detailpasswordviewdefs.php @@ -56,19 +56,19 @@ $viewdefs[$module_name]['DetailView'] = [ [ 0 => [ - 'name' => 'name', + 0 => 'name', ], 2 => [ - 'name' => 'is_confidential', + 0 => 'is_confidential', ], 3 => [ - 'name' => 'id', + 0 => 'id', ], 4 => [ - 'name' => 'allowed_grant_type', + 0 => 'allowed_grant_type', ], ], 'LBL_PANEL_ASSIGNMENT' => diff --git a/modules/OAuth2Clients/metadata/detailviewdefs.php b/modules/OAuth2Clients/metadata/detailviewdefs.php index c6f0f36a3..20b1911a0 100644 --- a/modules/OAuth2Clients/metadata/detailviewdefs.php +++ b/modules/OAuth2Clients/metadata/detailviewdefs.php @@ -56,23 +56,23 @@ $viewdefs[$module_name]['DetailView'] = [ [ 0 => [ - 'name' => 'name', + 0 => 'name', ], 1 => [ - 'name' => 'redirect_url', + 0 => 'redirect_url', ], 2 => [ - 'name' => 'is_confidential', + 0 => 'is_confidential', ], 3 => [ - 'name' => 'id', + 0 => 'id', ], 4 => [ - 'name' => 'allowed_grant_type', + 0 => 'allowed_grant_type', ], 5 => [ diff --git a/modules/OAuth2Clients/metadata/editcredentialsviewdefs.php b/modules/OAuth2Clients/metadata/editcredentialsviewdefs.php index af50d7567..253bed735 100644 --- a/modules/OAuth2Clients/metadata/editcredentialsviewdefs.php +++ b/modules/OAuth2Clients/metadata/editcredentialsviewdefs.php @@ -61,7 +61,7 @@ $viewdefs[$module_name]['EditView'] = [ [ 0 => [ - 'name' => 'name', + 0 => 'name', ], 1 => [ @@ -76,11 +76,11 @@ $viewdefs[$module_name]['EditView'] = [ ], 2 => [ - 'name' => 'is_confidential', + 0 => 'is_confidential', ], 4 => [ - 'name' => 'assigned_user_name', + 0 => 'assigned_user_name', ], ], ], diff --git a/modules/OAuth2Clients/metadata/editpasswordviewdefs.php b/modules/OAuth2Clients/metadata/editpasswordviewdefs.php index 5a354bf32..a18d54ffd 100644 --- a/modules/OAuth2Clients/metadata/editpasswordviewdefs.php +++ b/modules/OAuth2Clients/metadata/editpasswordviewdefs.php @@ -61,7 +61,7 @@ $viewdefs[$module_name]['EditView'] = [ [ 0 => [ - 'name' => 'name', + 0 => 'name', ], 1 => [ @@ -76,7 +76,7 @@ $viewdefs[$module_name]['EditView'] = [ ], 2 => [ - 'name' => 'is_confidential', + 0 => 'is_confidential', ], ], ], diff --git a/modules/OAuth2Clients/metadata/editviewdefs.php b/modules/OAuth2Clients/metadata/editviewdefs.php index c121f8563..f5babd9b7 100644 --- a/modules/OAuth2Clients/metadata/editviewdefs.php +++ b/modules/OAuth2Clients/metadata/editviewdefs.php @@ -56,19 +56,19 @@ $viewdefs[$module_name]['EditView'] = [ [ 0 => [ - 'name' => 'name', + 0 => 'name', ], 1 => [ - 'name' => 'redirect_url', + 0 => 'redirect_url', ], 2 => [ - 'name' => 'is_confidential', + 0 => 'is_confidential', ], 3 => [ - 'name' => 'allowed_grant_type', + 0 => 'allowed_grant_type', ], 4 => [ diff --git a/modules/OutboundEmailAccounts/metadata/detailviewdefs.php b/modules/OutboundEmailAccounts/metadata/detailviewdefs.php index 3bcbe77ed..0f7a469c1 100644 --- a/modules/OutboundEmailAccounts/metadata/detailviewdefs.php +++ b/modules/OutboundEmailAccounts/metadata/detailviewdefs.php @@ -1,6 +1,5 @@ array( @@ -53,12 +52,7 @@ array( 0 => array( 0 => 'name', - //1 => 'assigned_user_name', ), -// 1 => -// array ( -// 0 => 'description', -// ), ), 'lbl_editview_panel1' => array( diff --git a/modules/OutboundEmailAccounts/metadata/editviewdefs.php b/modules/OutboundEmailAccounts/metadata/editviewdefs.php index d83acd542..98496797f 100644 --- a/modules/OutboundEmailAccounts/metadata/editviewdefs.php +++ b/modules/OutboundEmailAccounts/metadata/editviewdefs.php @@ -1,119 +1,116 @@ array( - 'EditView' => + 'templateMeta' => + array( + 'maxColumns' => '2', + 'widths' => array( - 'templateMeta' => - array( - 'maxColumns' => '2', - 'widths' => - array( - 0 => - array( - 'label' => '10', - 'field' => '30', - ), - 1 => - array( - 'label' => '10', - 'field' => '30', - ), - ), - 'useTabs' => false, - 'tabDefs' => - array( - 'DEFAULT' => - array( - 'newTab' => false, - 'panelDefault' => 'expanded', - ), - 'LBL_EDITVIEW_PANEL1' => - array( - 'newTab' => false, - 'panelDefault' => 'expanded', - ), - ), - 'syncDetailEditViews' => true, - ), - 'panels' => - array( - 'default' => - array( - 0 => - array( - 0 => 'name', - //1 => 'assigned_user_name', - ), -// 1 => -// array ( -// 0 => 'description', -// ), - ), - 'lbl_editview_panel1' => - array( - - array( - 'name' => 'smtp_from_name', - 'label' => 'LBL_SMTP_FROM_NAME', - ), - - array( - 'name' => 'smtp_from_addr', - 'label' => 'LBL_SMTP_FROM_ADDR', - ), - - array( - 'name' => 'email_provider_chooser', - 'label' => 'LBL_CHOOSE_EMAIL_PROVIDER', - ), - - array( - 0 => - array( - 'name' => 'mail_smtpserver', - 'label' => 'LBL_SMTP_SERVERNAME', - ), - 1 => - array( - 'name' => 'mail_smtpport', - 'label' => 'LBL_SMTP_PORT', - ), - ), - - array( - 0 => - array( - 'name' => 'mail_smtpauth_req', - 'label' => 'LBL_SMTP_AUTH', - ), - 1 => - array( - 'name' => 'mail_smtpssl', - 'studio' => 'visible', - 'label' => 'LBL_SMTP_PROTOCOL', - ), - ), - - array( - array( - 'name' => 'mail_smtpuser', - 'label' => 'LBL_USERNAME', - ), - ), - array( - array( - 'name' => 'password_change', - 'label' => 'LBL_PASSWORD', - ), - ), - array( - array( - 'name' => 'sent_test_email_btn', - 'label' => 'LBL_SEND_TEST_EMAIL', - ), - ), - ), - ), + 0 => + array( + 'label' => '10', + 'field' => '30', + ), + 1 => + array( + 'label' => '10', + 'field' => '30', + ), ), - ); + 'useTabs' => false, + 'tabDefs' => + array( + 'DEFAULT' => + array( + 'newTab' => false, + 'panelDefault' => 'expanded', + ), + 'LBL_EDITVIEW_PANEL1' => + array( + 'newTab' => false, + 'panelDefault' => 'expanded', + ), + ), + 'syncDetailEditViews' => true, + ), + 'panels' => + array( + 'default' => + array( + 0 => + array( + 0 => 'name', + ), + ), + 'lbl_editview_panel1' => + array( + array( + 0 => + array( + 'name' => 'smtp_from_name', + 'label' => 'LBL_SMTP_FROM_NAME', + ), + ), + array( + 0 => + array( + 'name' => 'smtp_from_addr', + 'label' => 'LBL_SMTP_FROM_ADDR', + ), + ), + array( + 0 => + array( + 'name' => 'email_provider_chooser', + 'label' => 'LBL_CHOOSE_EMAIL_PROVIDER', + ), + ), + array( + 0 => + array( + 'name' => 'mail_smtpserver', + 'label' => 'LBL_SMTP_SERVERNAME', + ), + 1 => + array( + 'name' => 'mail_smtpport', + 'label' => 'LBL_SMTP_PORT', + ), + ), + array( + 0 => + array( + 'name' => 'mail_smtpauth_req', + 'label' => 'LBL_SMTP_AUTH', + ), + 1 => + array( + 'name' => 'mail_smtpssl', + 'studio' => 'visible', + 'label' => 'LBL_SMTP_PROTOCOL', + ), + ), + array( + array( + 'name' => 'mail_smtpuser', + 'label' => 'LBL_USERNAME', + ), + ), + array( + array( + 'name' => 'password_change', + 'label' => 'LBL_PASSWORD', + ), + ), + array( + array( + 'name' => 'sent_test_email_btn', + 'label' => 'LBL_SEND_TEST_EMAIL', + ), + ), + ), + ), + ), +); diff --git a/modules/Project/controller.php b/modules/Project/controller.php index d4dbc9483..a591fcf96 100755 --- a/modules/Project/controller.php +++ b/modules/Project/controller.php @@ -486,11 +486,13 @@ class ProjectController extends SugarController { global $mod_strings; - $start_date = $_REQUEST['start_date']; - $end_date = $_REQUEST['end_date']; - $resource_id = $_REQUEST['resource_id']; + $db = DBManagerFactory::getInstance(); - $projects = explode(",", $_REQUEST['projects']); + $start_date = $db->quote($_REQUEST['start_date']); + $end_date = $db->quote($_REQUEST['end_date']); + $resource_id = $db->quote($_REQUEST['resource_id']); + + $projects = explode(",", $db->quote($_REQUEST['projects'])); $project_where = ""; if (count($projects) > 1 || $projects[0] != '') { $project_where = " AND project_id IN( '" . implode("','", $projects) . "' )"; diff --git a/modules/UpgradeWizard/upload.php b/modules/UpgradeWizard/upload.php index 7d83385a2..3c951b553 100755 --- a/modules/UpgradeWizard/upload.php +++ b/modules/UpgradeWizard/upload.php @@ -118,12 +118,32 @@ switch ($run) { $manifest_file = extractManifest($tempFile); if (is_file($manifest_file)) { - require_once($manifest_file); + + //SCAN THE MANIFEST FILE TO MAKE SURE NO COPIES OR ANYTHING ARE HAPPENING IN IT + require_once __DIR__ . '/../../ModuleInstall/ModuleScanner.php'; + + $ms = new ModuleScanner(); + $ms->lockConfig(); + $fileIssues = $ms->scanFile($manifest_file); + if (!empty($fileIssues)) { + $out .= '

' . translate('ML_MANIFEST_ISSUE', 'Administration') . '


'; + $out .= $ms->getIssuesLog(); + break; + } + + list($manifest, $installdefs) = MSLoadManifest($manifest_file); + if ($ms->checkConfig($manifest_file)) { + $out .= '

' . translate('ML_MANIFEST_ISSUE', 'Administration') . '


'; + $out .= $ms->getIssuesLog(); + break; + } + $error = validate_manifest($manifest); if (!empty($error)) { $out = "{$error}
"; break; } + $upgrade_zip_type = $manifest['type']; // exclude the bad permutations diff --git a/suitecrm_version.php b/suitecrm_version.php index 06a90319a..539a822e1 100755 --- a/suitecrm_version.php +++ b/suitecrm_version.php @@ -4,5 +4,5 @@ if (!defined('sugarEntry') || !sugarEntry) { } $suitecrm_version = '8.0.0-rc'; -$suitecrm_legacy = '7.12.1'; -$suitecrm_timestamp = '2021-11-19 17:00:00'; +$suitecrm_legacy = '7.12.2'; +$suitecrm_timestamp = '2021-12-14 17:00:00';