From e93b269f637de313f45b32c58cef5ec012a34f58 Mon Sep 17 00:00:00 2001 From: Matt Lorimer Date: Tue, 1 Mar 2022 12:32:15 +0000 Subject: [PATCH] SuiteCRM 7.12.5 Release --- README.md | 2 +- files.md5 | 72 ++++++++++--------- .../AOR_Scheduled_Reports.php | 28 ++++++-- modules/Calendar/CalendarActivity.php | 5 +- modules/Employees/Employee.php | 5 ++ .../ModuleBuilder/Module/IconRepository.php | 9 +-- modules/ProspectLists/Duplicate.php | 4 +- modules/Users/User.php | 30 ++++++++ modules/vCals/vCal.php | 6 +- suitecrm_version.php | 4 +- .../modules/Employees/EmployeeTest.php | 7 ++ tests/unit/phpunit/modules/Users/UserTest.php | 10 ++- 12 files changed, 127 insertions(+), 55 deletions(-) diff --git a/README.md b/README.md index 34b439a135c..6165f081695 100755 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ -# SuiteCRM 7.12.4 +# SuiteCRM 7.12.5 [![Build Status](https://travis-ci.org/salesagility/SuiteCRM.svg?branch=hotfix)](https://travis-ci.org/salesagility/SuiteCRM) [![codecov](https://codecov.io/gh/salesagility/SuiteCRM/branch/hotfix/graph/badge.svg)](https://codecov.io/gh/salesagility/SuiteCRM/branch/hotfix) diff --git a/files.md5 b/files.md5 index fa98e10c596..80d9a5daba1 100755 --- a/files.md5 +++ b/files.md5 @@ -1,5 +1,5 @@ '69a1e7b3d7755a2a63499a16ddae81cf', './Api/Core/Config/slim.php' => 'b134e68765e6a1403577e2a5a06322b8', @@ -40,7 +40,7 @@ $md5_string = array ( './Api/V8/JsonApi/Helper/AttributeObjectHelper.php' => '8c2e2f889cefdc7912fd62da3e6a6f71', './Api/V8/JsonApi/Helper/PaginationObjectHelper.php' => 'dbeb8f36cc7b70ff9459443c26bdfb70', './Api/V8/JsonApi/Helper/RelationshipObjectHelper.php' => '6681a3fc26e420f12875d4239532946e', - './Api/V8/JsonApi/Repository/Filter.php' => 'cc024de98508d60c0d091a58a49fa879', + './Api/V8/JsonApi/Repository/Filter.php' => '21279c505e18aacd9f6aea51cc62a3bc', './Api/V8/JsonApi/Repository/Sort.php' => '7e9fb4704a056bc944840def1482042d', './Api/V8/JsonApi/Response/AttributeResponse.php' => '84318e63e42f0062c8f8231fd4c230d5', './Api/V8/JsonApi/Response/DataResponse.php' => '08239b06a911f9d0bd46a28a28d11eda', @@ -116,7 +116,7 @@ $md5_string = array ( './ModuleInstall/PackageManager/tpls/PackageManagerLicense.tpl' => 'df5e267d1df5ce08fb9406e42d5b4816', './ModuleInstall/PackageManager/tpls/PackageManagerScripts.tpl' => '98e396c0aa57329731fda19c790fffb2', './ModuleInstall/extensions.php' => '094f4650261f6efbab1b90b119829388', - './README.md' => '3851c72e794004a8dea5141835e9f67f', + './README.md' => 'b9189e1dc12fb6ee741b6057b9e70147', './RoboFile.php' => '045b82c1df69553824d0e4ffcce6e03c', './SugarSecurity.php' => '47e316b2d408e8c5192c8ea4a4f921b3', './TreeData.php' => '32873e20cb5fd33f9d1cdaf18c3cac5c', @@ -1064,10 +1064,11 @@ $md5_string = array ( './include/SugarObjects/templates/basic/metadata/detailviewdefs.php' => '5e50674a38a33a6a32e0ccaf452901cf', './include/SugarObjects/templates/basic/metadata/editviewdefs.php' => 'a72fc3bcb6c8d3af8c7e2fd5a16b449e', './include/SugarObjects/templates/basic/metadata/listviewdefs.php' => '12c67a104a6f959be11749ba807adf8a', - './include/SugarObjects/templates/basic/metadata/metafiles.php' => '5dc7c77d1e65d8f0e5dafa6f5d4b3969', + './include/SugarObjects/templates/basic/metadata/metafiles.php' => '80e1c107fcf93fe0a78cf5dd7146b3f5', './include/SugarObjects/templates/basic/metadata/popupdefs.php' => '853844b094d4dfe9a29d59759b21ce1b', './include/SugarObjects/templates/basic/metadata/quickcreatedefs.php' => '4b0e405788feef127942e060963a7ee8', './include/SugarObjects/templates/basic/metadata/searchdefs.php' => '94bf8c5a3bbffdfb32a1415dd9328587', + './include/SugarObjects/templates/basic/metadata/subpaneldefs.php' => 'decf6423acb6b44f331f9f8b54c19ff0', './include/SugarObjects/templates/basic/metadata/subpanels/default.php' => 'eef3e143d70cb857fdc15b0014bcbf2d', './include/SugarObjects/templates/basic/vardefs.php' => '0c874ef332c71fca9a1255b24ff3a9c8', './include/SugarObjects/templates/company/Company.php' => 'b39fc86fb36507f7eb9dcaa95e58e295', @@ -1086,10 +1087,11 @@ $md5_string = array ( './include/SugarObjects/templates/company/metadata/detailviewdefs.php' => '6b9f79584faeb9de6b3ea8e1b7773390', './include/SugarObjects/templates/company/metadata/editviewdefs.php' => '9149a6f92ca93c9f77d6dcfa74b36f6a', './include/SugarObjects/templates/company/metadata/listviewdefs.php' => 'ceae1760bc12932b69ab3f35f68f1998', - './include/SugarObjects/templates/company/metadata/metafiles.php' => '5dc7c77d1e65d8f0e5dafa6f5d4b3969', + './include/SugarObjects/templates/company/metadata/metafiles.php' => '80e1c107fcf93fe0a78cf5dd7146b3f5', './include/SugarObjects/templates/company/metadata/popupdefs.php' => 'e59bf2a176a15e758c982d110b876ab3', './include/SugarObjects/templates/company/metadata/quickcreatedefs.php' => '26986647ae09963d834ca32deedf04c7', './include/SugarObjects/templates/company/metadata/searchdefs.php' => '32412c1a5d2bec1928b8c1e750308e25', + './include/SugarObjects/templates/company/metadata/subpaneldefs.php' => '50acf29d6c53bd5a58dac8b21971d94b', './include/SugarObjects/templates/company/metadata/subpanels/default.php' => 'd572c5b3d3492d77bc86949f62fb9a5e', './include/SugarObjects/templates/company/vardefs.php' => 'e8c82088efe99f717f63a02b5dc83b29', './include/SugarObjects/templates/file/File.php' => 'ea3b3d8394cfac726b77e699597c6370', @@ -1110,9 +1112,10 @@ $md5_string = array ( './include/SugarObjects/templates/file/metadata/detailviewdefs.php' => '38ba4302edc39bde885cd3fbd23cef46', './include/SugarObjects/templates/file/metadata/editviewdefs.php' => '4e01916bccc26dd18213c486af79339f', './include/SugarObjects/templates/file/metadata/listviewdefs.php' => 'ba627c916655ab0e7086aaafba0a2278', - './include/SugarObjects/templates/file/metadata/metafiles.php' => '30b981844f4f61f7120cc6fd71e6df2b', + './include/SugarObjects/templates/file/metadata/metafiles.php' => 'c44b4a1bae97f1d29608af2aaf3e931d', './include/SugarObjects/templates/file/metadata/quickcreatedefs.php' => '6d473036b76f6d6fcc6bf754c8d28748', './include/SugarObjects/templates/file/metadata/searchdefs.php' => '968d0e10883675aae697ac2a4915bfcd', + './include/SugarObjects/templates/file/metadata/subpaneldefs.php' => 'decf6423acb6b44f331f9f8b54c19ff0', './include/SugarObjects/templates/file/metadata/subpanels/default.php' => '1843a1eea57d11427483b4e8760a9c8e', './include/SugarObjects/templates/file/vardefs.php' => 'b9cd2c914907a6d18c30117a0ac07b66', './include/SugarObjects/templates/file/views/view.edit.php' => 'c6ad729501b57cb2d1c567277a706ee2', @@ -1134,10 +1137,11 @@ $md5_string = array ( './include/SugarObjects/templates/issue/metadata/detailviewdefs.php' => '3f99f9fd8ae0b8fc67b635e33b2c69e3', './include/SugarObjects/templates/issue/metadata/editviewdefs.php' => 'b0df2be5daf35ad78b51a1bb085e2c36', './include/SugarObjects/templates/issue/metadata/listviewdefs.php' => 'fdfc52d80121c3bb7b769955abefd892', - './include/SugarObjects/templates/issue/metadata/metafiles.php' => '5dc7c77d1e65d8f0e5dafa6f5d4b3969', + './include/SugarObjects/templates/issue/metadata/metafiles.php' => '80e1c107fcf93fe0a78cf5dd7146b3f5', './include/SugarObjects/templates/issue/metadata/popupdefs.php' => '0d8e904d55dd66a7a90d38f1d0664bd8', './include/SugarObjects/templates/issue/metadata/quickcreatedefs.php' => '368961ada69c8553e7137b604a877f09', './include/SugarObjects/templates/issue/metadata/searchdefs.php' => '79c07472d9392384942e22bc6132c8fa', + './include/SugarObjects/templates/issue/metadata/subpaneldefs.php' => 'decf6423acb6b44f331f9f8b54c19ff0', './include/SugarObjects/templates/issue/metadata/subpanels/default.php' => '11ea1311363e3db9a0b077d21f84f257', './include/SugarObjects/templates/issue/vardefs.php' => 'cec1c24e9ae386c840dda523c65ecd77', './include/SugarObjects/templates/person/Person.php' => '5586b56db82db3b6a69d31f4cd46d1d9', @@ -1157,10 +1161,11 @@ $md5_string = array ( './include/SugarObjects/templates/person/metadata/detailviewdefs.php' => '298b0c970095d044eb0977c8e5ee0376', './include/SugarObjects/templates/person/metadata/editviewdefs.php' => '955ed57a59f08bbd8cbb0b7459b2fdb3', './include/SugarObjects/templates/person/metadata/listviewdefs.php' => '693f66188d1665c8e410b6bf5be15d27', - './include/SugarObjects/templates/person/metadata/metafiles.php' => '5dc7c77d1e65d8f0e5dafa6f5d4b3969', + './include/SugarObjects/templates/person/metadata/metafiles.php' => '80e1c107fcf93fe0a78cf5dd7146b3f5', './include/SugarObjects/templates/person/metadata/popupdefs.php' => '94cac00bca2eecc5ad30c6169147aa2b', './include/SugarObjects/templates/person/metadata/quickcreatedefs.php' => 'a720ca8346a61cb442fa6ad93a51d1b3', './include/SugarObjects/templates/person/metadata/searchdefs.php' => '21606aab371fa03e267883d902d944be', + './include/SugarObjects/templates/person/metadata/subpaneldefs.php' => 'decf6423acb6b44f331f9f8b54c19ff0', './include/SugarObjects/templates/person/metadata/subpanels/default.php' => '552bbb8e4bdecc081ea5567effb05c6b', './include/SugarObjects/templates/person/vardefs.php' => '0ff81025316998a27fd5b63f678fa2e4', './include/SugarObjects/templates/sale/Chance.php' => 'a22453ee390a8e4f4fe89cde6b7f937c', @@ -1184,10 +1189,11 @@ $md5_string = array ( './include/SugarObjects/templates/sale/metadata/detailviewdefs.php' => '3f1afa19a4c3d714e132f69c9d6e7cfa', './include/SugarObjects/templates/sale/metadata/editviewdefs.php' => '767b86f216ab3624cb51bebc36c7b79e', './include/SugarObjects/templates/sale/metadata/listviewdefs.php' => 'b8a70bd4bc2da7021120f6c92a914acd', - './include/SugarObjects/templates/sale/metadata/metafiles.php' => 'c66eca250effcffa927a528e55be1420', + './include/SugarObjects/templates/sale/metadata/metafiles.php' => 'c44b4a1bae97f1d29608af2aaf3e931d', './include/SugarObjects/templates/sale/metadata/popupdefs.php' => 'dd08f5844bddaf9c47b2323388ae8f00', './include/SugarObjects/templates/sale/metadata/quickcreatedefs.php' => '40de9275a19046c346932a467511d903', './include/SugarObjects/templates/sale/metadata/searchdefs.php' => '259ca47ed60f67f3fcc5ff9b21487022', + './include/SugarObjects/templates/sale/metadata/subpaneldefs.php' => 'decf6423acb6b44f331f9f8b54c19ff0', './include/SugarObjects/templates/sale/metadata/subpanels/default.php' => '933ed06ff0fd822b455b6c05d3526b35', './include/SugarObjects/templates/sale/vardefs.php' => '0594cbe418f268edf893cced47b022f3', './include/SugarObjects/translated_prefix.php' => 'ba8e90a225dfa38f779119b10c366d40', @@ -2336,7 +2342,7 @@ $md5_string = array ( './include/javascript/yui/build/yuitest/yuitest_core.js' => 'ed5230a0f4a885d8ea51c2fe78895d07', './include/javascript/yui/ygDDList.js' => '0cd9051a220de7e8c79bf5b9cccce10f', './include/json_config.php' => 'ba7fb6f2fb1df51bc367835406ef7ba5', - './include/language/en_us.lang.php' => 'b3e2e4ddf37fa8614a55749c8f22aea6', + './include/language/en_us.lang.php' => '9b8bee2691bda327f6b973fa789de805', './include/language/en_us.notify_template.html' => 'c6a897ace7af46a44889dfab1a9d44c5', './include/language/getJSLanguage.php' => '1bc910bd5a9953fbf443d3d97fddbffa', './include/language/jsLanguage.php' => '3d27819dc00f2fe5426f72733a7edca1', @@ -2875,7 +2881,7 @@ $md5_string = array ( './lib/Search/UI/MVC/View.php' => '060017bf23671e429cca7187b72ddd2a', './lib/Search/UI/SearchFormController.php' => '2cf159703562da6348ece57ef68313b4', './lib/Search/UI/SearchFormView.php' => '15662e4bd9237044fe1b74f41632660d', - './lib/Search/UI/SearchResultsController.php' => '5c3be29f03a58a39dea00393c1dfc01e', + './lib/Search/UI/SearchResultsController.php' => '21c2ecf52498c7e3109464e4fddd32a7', './lib/Search/UI/SearchResultsView.php' => 'ce2615a6390cfe62924d44fdfc7a18fa', './lib/Search/UI/SearchThrowableHandler.php' => '14cd2232a5a73df32a755e85a52cd7fd', './lib/Search/UI/templates/search.form.tpl' => '8a03f27dd8860270f7c91d64c211fffe', @@ -3397,7 +3403,7 @@ $md5_string = array ( './modules/AOR_Reports/vardefs.php' => 'bf0ea6c174abbb8e242b4d6963b8686f', './modules/AOR_Reports/views/view.detail.php' => '4b9c8598d6e8a76aa6ec470227012cbc', './modules/AOR_Reports/views/view.edit.php' => '0e078b86d2078fc47e4ccf24b3b5d8d4', - './modules/AOR_Scheduled_Reports/AOR_Scheduled_Reports.php' => '1d67cfee23f2da1d546578bc27545a74', + './modules/AOR_Scheduled_Reports/AOR_Scheduled_Reports.php' => '37085ac71ea851fc00d66dbf569885f7', './modules/AOR_Scheduled_Reports/Menu.php' => '5a02efb3ec80ffcb5044e33ac30338c7', './modules/AOR_Scheduled_Reports/emailRecipients.js' => '30056240ca6885b19bac0dffe6a15b06', './modules/AOR_Scheduled_Reports/emailRecipients.php' => '7859bbf38e5016778fc56495e7d4e177', @@ -3892,7 +3898,7 @@ $md5_string = array ( './modules/Bugs/views/view.edit.php' => 'f406f3c7f19e15cd646373151994fa1c', './modules/Calendar/Cal.js' => '106379c83260c2472f7c65114d7a9fdb', './modules/Calendar/Calendar.php' => '8b5970e1adbf735e0d7f5222012f48ec', - './modules/Calendar/CalendarActivity.php' => '0cead97402da329cb1f4748058f3dd0a', + './modules/Calendar/CalendarActivity.php' => '9e55048969b6abcb58443296057f8fce', './modules/Calendar/CalendarDisplay.php' => 'fd05f849dff1db7bb47713be26e6a3d2', './modules/Calendar/CalendarGrid.php' => 'a77c39c149c93a681a75e91f889f9b2c', './modules/Calendar/CalendarUtils.php' => '295ad053fe74484ae3943b9fb4487ae1', @@ -4653,10 +4659,10 @@ $md5_string = array ( './modules/Emails/controller.php' => '65d6d5ad5e977930403a2b89cb15004a', './modules/Emails/field_arrays.php' => 'f8ad985446f13141ea7365aa8565c500', './modules/Emails/include/ComposeView/ComposeView.php' => '45b1a69671ca5c5f2a8ab1455e9f730c', - './modules/Emails/include/ComposeView/ComposeView.tpl' => '1ec29fbb9803c24e5ed8a12155668e58', + './modules/Emails/include/ComposeView/ComposeView.tpl' => 'aee5736e992aecc485afbb5973d9e535', './modules/Emails/include/ComposeView/ComposeViewBlank.tpl' => '22365ce6727ffb560e5ad3fc187f13f2', './modules/Emails/include/ComposeView/ComposeViewToolbar.tpl' => '656b26827857375278124e4610b9ff06', - './modules/Emails/include/ComposeView/EmailsComposeView.js' => '65624a5e5985e5f9deee1e4725533462', + './modules/Emails/include/ComposeView/EmailsComposeView.js' => '8ed14ba39eff3d7ec030538431ad3999', './modules/Emails/include/DetailView/EmailsDetailView.php' => 'f95937f398f37afe3927ecc035b8b743', './modules/Emails/include/DetailView/EmailsDraftDetailView.php' => 'baafca815e89a4c0ec3df8b6192552ea', './modules/Emails/include/DetailView/EmailsNonImportedDetailView.php' => 'ef9ecbcf65fa6f03e32f94b6a9805b2f', @@ -4755,7 +4761,7 @@ $md5_string = array ( './modules/Emails/templates/outboundDialogTest.tpl' => '6d9e938d23d33fb7fa5582fa15c65662', './modules/Emails/templates/overlay.tpl' => '2e323ca505c0e45a3c660f993a20ba29', './modules/Emails/templates/successMessage.tpl' => 'dcafb0a92cfae5ffd539a75cb82db2b7', - './modules/Emails/vardefs.php' => '3b7cf8c8a768bd5c4d1bcdb5bd05e7d2', + './modules/Emails/vardefs.php' => 'dae3869d4728b0bc63a3afe2532ee0cb', './modules/Emails/views/view.compose.php' => '655ace129db29e568d901f3223b8afbb', './modules/Emails/views/view.deletedraftemail.php' => '4a14718938a8577c683466fbbfec9b23', './modules/Emails/views/view.detail.php' => '1dd813258abcba95f09418ef063f0fa7', @@ -4767,7 +4773,7 @@ $md5_string = array ( './modules/Emails/views/view.popup.php' => '4ff1e52f105970c29fed966e2f058dd3', './modules/Emails/views/view.savedraftemail.php' => '000c8d786c87e0ad997fc5de443d9b2c', './modules/Emails/views/view.sendemail.php' => '78784b11ddb5257b0f3f5c59c9db17a1', - './modules/Employees/Employee.php' => 'c837db1f7627ee68383a041c51bb8b9c', + './modules/Employees/Employee.php' => '2a70486e775ccc8e4c36176855d5c1e7', './modules/Employees/EmployeeStatus.php' => 'a2be5cfeb49ef4f8deec01de9686edb9', './modules/Employees/EmployeesSearchForm.php' => '0437d91e2221d02c38e0db6830fef057', './modules/Employees/EmployeesStudioModule.php' => '5b71bea7b6e7b7a77bc5a48d4fb10a55', @@ -5171,7 +5177,7 @@ $md5_string = array ( './modules/ModuleBuilder/MB/header.php' => 'de67588e0b8d859dc2d9fc71709036b4', './modules/ModuleBuilder/Module/DropDownBrowser.php' => '3f1698938d776a91255703c257049fac', './modules/ModuleBuilder/Module/DropDownTree.php' => '3685a4b70a81e30fccf6c6b2f770c9d8', - './modules/ModuleBuilder/Module/IconRepository.php' => '20cd01f8300b411bacffb53361ed6f08', + './modules/ModuleBuilder/Module/IconRepository.php' => '5fbd04824f79784669ba38326a18096f', './modules/ModuleBuilder/Module/MainTree.php' => '3122ae95f6c9a62db7c6eec12b2581f0', './modules/ModuleBuilder/Module/StudioBrowser.php' => '32112741c23435fe2794f797933cfacc', './modules/ModuleBuilder/Module/StudioModule.php' => '35525c18e7b1e00379f7d766b9001af5', @@ -5189,7 +5195,7 @@ $md5_string = array ( './modules/ModuleBuilder/javascript/studio2RowDD.js' => 'ce2a4bfa3dbaca4249d73df0bc5dfaad', './modules/ModuleBuilder/javascript/studiotabgroups.js' => 'c3d48dec838914e457aa099d9225d174', './modules/ModuleBuilder/javascript/wizardTemplate.js' => '92c65dce9153db13c20731de44d14d87', - './modules/ModuleBuilder/language/en_us.lang.php' => '9171bfd805fcedff0bbc38266d6395b5', + './modules/ModuleBuilder/language/en_us.lang.php' => 'b73ec441c51179efa58d1a65e2160252', './modules/ModuleBuilder/parsers/ModuleBuilderParser.php' => '1a5d8c3c8c7736c4e9011960732c4647', './modules/ModuleBuilder/parsers/ParserFactory.php' => '9f49fbae9d8aadc97257d4cf18672978', './modules/ModuleBuilder/parsers/StandardField.php' => '4cbf549bc313959427dc126e9afe01e7', @@ -5548,7 +5554,7 @@ $md5_string = array ( './modules/ProjectTask/vardefs.php' => 'd1966d1060fcc2f8245f83e983f4a477', './modules/ProjectTask/views/view.list.php' => '8beeb6373e9925ea68b4f1d2121abf06', './modules/ProspectLists/Delete.php' => '49e5493083f478e993c36e0941d16bcd', - './modules/ProspectLists/Duplicate.php' => '51ef701820dbf25644722d961ed1121f', + './modules/ProspectLists/Duplicate.php' => 'f73bdc77dd9e63b24e69897105947500', './modules/ProspectLists/Forms.html' => 'f2cb6003b845b3ae60c954c3543c6fe8', './modules/ProspectLists/Forms.php' => '304e40b1231cb7dcc58dd49612680582', './modules/ProspectLists/Menu.php' => '353995ef7f262ec1186a49f0425f21c0', @@ -6049,7 +6055,7 @@ $md5_string = array ( './modules/Users/SetTimezone.tpl' => 'f0fb5ed64fae81a5657ebc8f167967c9', './modules/Users/UpdateTourStatus.php' => 'cc111e28e6df1d96b98678661dd42490', './modules/Users/User.js' => '351f8d8e74bd1bd0a56dcc2bae31b147', - './modules/Users/User.php' => 'e0e65bf73d91fcc730b923eb95fe37c2', + './modules/Users/User.php' => 'a75ad79197349bc156f9365ef3830b9c', './modules/Users/UserEditView.js' => '421e1c38f1ee78933134b987b7c3c251', './modules/Users/UserEmailOptions.tpl' => '96b848efbf7f6d4fee7b6bf13a1a1aee', './modules/Users/UserEmailSettings.tpl' => '5d9ff3379f63dcf7c5efbbcc3e88d8ed', @@ -6266,7 +6272,7 @@ $md5_string = array ( './modules/vCals/HTTP_WebDAV_Server_vCal.php' => '966b7f0c7c2297ce1bea3a944e4cbd91', './modules/vCals/Server.php' => '42c9c6a727bca02d7f1a6c6f4591257b', './modules/vCals/field_arrays.php' => 'a1a41e8dd4710a3671fa359dcb8267ba', - './modules/vCals/vCal.php' => '11257a95accc06fa64afc8d60425d663', + './modules/vCals/vCal.php' => 'e20c0d7ec2b900ce37c8d621db8835ad', './modules/vCals/vardefs.php' => 'aa722f4d5a1fa352bc808da9fce072bd', './pdf.php' => '9c17ce70f633f699b8f5accd104f7e67', './php_version.php' => '928257f676637cf31a03032c3e661e27', @@ -6336,32 +6342,32 @@ $md5_string = array ( './soap.php' => 'e28988c2e0b8e2c484587b537a710525', './sugar_version.json' => 'bdfbcefae2f9af559bef6a36367df7bb', './sugar_version.php' => 'db7b6c8d51f87879fce1e6172eedfbed', - './suitecrm_version.php' => '14057aacc3f8a801fddbfd87976aec77', + './suitecrm_version.php' => '44698d65949ec2aaa3489747310fb8be', './themes/SuiteP/css/Dawn/color-palette.scss' => 'e64677d79e1d68c069bdc2dc661c4f99', './themes/SuiteP/css/Dawn/icons.scss' => 'd59f8c5855e7a8df09542a663835a196', './themes/SuiteP/css/Dawn/select.ico' => '22393ad23f16c3f1462455bae8f20279', - './themes/SuiteP/css/Dawn/style.css' => '4b00f6c1bbea501b7b2d100b7b11e556', + './themes/SuiteP/css/Dawn/style.css' => 'fa371bfc0663c488d723ce828d1e7171', './themes/SuiteP/css/Dawn/style.scss' => '2fe759bc1c69865732f0ae0cca88916c', './themes/SuiteP/css/Dawn/variables.scss' => 'f8f8acf976e6cb0f1d27ea46891ead2e', './themes/SuiteP/css/Day/color-palette.scss' => '91bed2ed878a141ccdc521512f0daa33', './themes/SuiteP/css/Day/icons.scss' => '7a77bb17a810866e1ec4e0667e58e536', - './themes/SuiteP/css/Day/style.css' => 'aa909eb7a2ec2772a66ca0707fe8d419', + './themes/SuiteP/css/Day/style.css' => '6d2e8777837f4a3c9c673b403b95eef2', './themes/SuiteP/css/Day/style.scss' => '9cdabde7436f1037e691c81017972b8f', './themes/SuiteP/css/Day/variables.scss' => '31b6e279ea974581ad42f95a3bb694a4', './themes/SuiteP/css/Dusk/color-palette.scss' => '3fa059d1033bfd1bfa342ec0bc4ffe25', './themes/SuiteP/css/Dusk/icons.scss' => '7a77bb17a810866e1ec4e0667e58e536', - './themes/SuiteP/css/Dusk/style.css' => 'c948f679584e96d3ce39050d36b82e8b', + './themes/SuiteP/css/Dusk/style.css' => '5bfde54ca4e8a9315b384a4ae0cdc7f7', './themes/SuiteP/css/Dusk/style.scss' => '2fe759bc1c69865732f0ae0cca88916c', './themes/SuiteP/css/Dusk/variables.scss' => 'ac38ee874a0668e1d3b86972a850f91d', './themes/SuiteP/css/Night/color-palette.scss' => '25653200b97822a2d0f2594b180858c8', './themes/SuiteP/css/Night/icons.scss' => '2adfbf917fd7f0748090ef79ec4657c9', - './themes/SuiteP/css/Night/style.css' => 'b08ab4c6a46bca69b8b5affc3c108f24', + './themes/SuiteP/css/Night/style.css' => 'ee55328617a2cfa5a1a7583db1afd6b6', './themes/SuiteP/css/Night/style.scss' => '4b811594274100e02331d7bace01a687', './themes/SuiteP/css/Night/variables.scss' => '4fc04d66ddb30f18da508b82e71a6cde', './themes/SuiteP/css/Noon/color-palette.scss' => '952a2c7a3fb020ca2232b24a9ac58fe4', './themes/SuiteP/css/Noon/icons.scss' => 'b5d0e65cf55142e8591bfcd792b6bed6', './themes/SuiteP/css/Noon/select.ico' => '09333d8f426c1a4743e9b977a67d1d1f', - './themes/SuiteP/css/Noon/style.css' => '5f0a4b744c3057d5efc137791411aa2a', + './themes/SuiteP/css/Noon/style.css' => '504a6fcca636cdbad859ac6a8d1b47c8', './themes/SuiteP/css/Noon/style.scss' => '2fe759bc1c69865732f0ae0cca88916c', './themes/SuiteP/css/Noon/variables.scss' => 'bea284c3121762d58279aca24c873d9e', './themes/SuiteP/css/bootstrap/alerts.scss' => 'c0e5396555dd4c70b9eeb314e4c4613d', @@ -6461,7 +6467,7 @@ $md5_string = array ( './themes/SuiteP/css/suitep-base/email.scss' => '4b0a570ce4cdac8bb449f31bccb0ee72', './themes/SuiteP/css/suitep-base/forms.scss' => 'e1626b89c1cf4ac8fc16c5f5532c8ac0', './themes/SuiteP/css/suitep-base/jstree.scss' => '946510970bb0774a31a01c2fb57a9552', - './themes/SuiteP/css/suitep-base/listview.scss' => '083c62124b7f3c7dbf32a3f10e06cf35', + './themes/SuiteP/css/suitep-base/listview.scss' => '46898f8372bdd796e5ddeed167bd0c30', './themes/SuiteP/css/suitep-base/login.scss' => '25d85a91770e80b7b0357cece6eb5c4b', './themes/SuiteP/css/suitep-base/main.scss' => '0ddf085214424ea1f19a13f7930f1c9a', './themes/SuiteP/css/suitep-base/mixins.scss' => '9edffdf421f6277979bd76df64d34fad', @@ -7741,15 +7747,15 @@ $md5_string = array ( './themes/SuiteP/images/wizmenu/left-start.png' => '85bb13bfd189a2c3e306e7c08753434d', './themes/SuiteP/images/wizmenu/right-empty.png' => 'd3037d7c75385e7d5a5708092e8cb94c', './themes/SuiteP/images/wizmenu/right-full.png' => '2f6f9936252b8c9dfd7bb71b140061e5', - './themes/SuiteP/include/Dashlets/DashletHeader.tpl' => '83586d72dbd43540f4d71b6b5db354f5', - './themes/SuiteP/include/DetailView/DetailView.tpl' => '4829a5f5b6ac00c01c321948b4481a95', + './themes/SuiteP/include/Dashlets/DashletHeader.tpl' => '09e4767d1ff01a830c0de2706e833a11', + './themes/SuiteP/include/DetailView/DetailView.tpl' => 'ff62ab3dc8d5b6e91a4c1041c043592e', './themes/SuiteP/include/DetailView/actions_buttons.tpl' => '8a6fff7933b92178c28f5a58feddef75', './themes/SuiteP/include/DetailView/actions_menu.tpl' => '43988446570fc2820b7b0fb3da42e199', './themes/SuiteP/include/DetailView/footer.tpl' => '74cd1da7edd3386ee51db3e8ba8bb53b', './themes/SuiteP/include/DetailView/header.tpl' => 'ba7fbc5faa2a0e336373aae9b1e52a8e', './themes/SuiteP/include/DetailView/tab_panel_content.tpl' => '6d222e6e0637382cff40a4dff5dbb851', './themes/SuiteP/include/DetailView/test.tpl' => 'fcf838f4139733066cc727fc7f3818ae', - './themes/SuiteP/include/EditView/EditView.tpl' => '5e279ffcc56b22f3c2d6032247fa288e', + './themes/SuiteP/include/EditView/EditView.tpl' => '7ad41f35fa8b0aa7dbaae48189c38edb', './themes/SuiteP/include/EditView/QuickCreate.tpl' => '3acca81ef6a983731de021c1943f4c0b', './themes/SuiteP/include/EditView/SugarVCR.tpl' => 'eed25c746ed4a7ffeeaaae25a36f49c4', './themes/SuiteP/include/EditView/actions_buttons.tpl' => '3ccfac667a36f3f67706deb6de2f9a77', @@ -9260,4 +9266,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/modules/AOR_Scheduled_Reports/AOR_Scheduled_Reports.php b/modules/AOR_Scheduled_Reports/AOR_Scheduled_Reports.php index 75eb439dd12..c73c9a910cc 100644 --- a/modules/AOR_Scheduled_Reports/AOR_Scheduled_Reports.php +++ b/modules/AOR_Scheduled_Reports/AOR_Scheduled_Reports.php @@ -83,9 +83,7 @@ public function bean_implements($interface) public function save($check_notify = false) { - if (isset($_POST['email_recipients']) && is_array($_POST['email_recipients'])) { - $this->email_recipients = base64_encode(serialize($_POST['email_recipients'])); - } + $this->parseRecipients(); return parent::save($check_notify); } @@ -180,7 +178,7 @@ public function shouldRun(DateTime $date) } $lastRun = $this->last_run ? $timedate->fromDb($this->last_run) : $timedate->fromDb($this->date_entered); - + $this->handleTimeZone($lastRun); $next = $cron->getNextRunDate($lastRun); @@ -200,4 +198,26 @@ protected function handleTimeZone(DateTime $date) $date->modify($offset . 'second'); } + /** + * Parse and set recipients + * @return void + */ + protected function parseRecipients(): void + { + $recipients = $_POST['email_recipients'] ?? null; + unset($_POST['email_recipients'], $_REQUEST['email_recipients'], $_GET['email_recipients']); + $this->email_recipients = null; + + if (is_array($recipients)) { + $types = $recipients['email_target_type'] ?? []; + $emailInfo = $recipients['email'] ?? []; + $recipients = [ + 'email_target_type' => $types, + 'email' => $emailInfo, + ]; + + $this->email_recipients = base64_encode(serialize($recipients)); + } + } + } diff --git a/modules/Calendar/CalendarActivity.php b/modules/Calendar/CalendarActivity.php index 6c8fdc02e1c..11f16fff043 100755 --- a/modules/Calendar/CalendarActivity.php +++ b/modules/Calendar/CalendarActivity.php @@ -266,11 +266,12 @@ public static function get_activities( } $focus_list = build_related_list_by_user_id($bean, $user_id, $where); - require_once 'modules/SecurityGroups/SecurityGroup.php'; + //require_once 'modules/SecurityGroups/SecurityGroup.php'; foreach ($focus_list as $focusBean) { if (isset($seen_ids[$focusBean->id])) { continue; } + /* TODO update currently unused functionality, disabled as expensive $in_group = SecurityGroup::groupHasAccess($key, $focusBean->id, 'list'); $show_as_busy = !ACLController::checkAccess( $key, @@ -279,7 +280,7 @@ public static function get_activities( 'module', $in_group ); - $focusBean->show_as_busy = $show_as_busy; + $focusBean->show_as_busy = $show_as_busy;*/ $seen_ids[$focusBean->id] = 1; $act = new CalendarActivity($focusBean); diff --git a/modules/Employees/Employee.php b/modules/Employees/Employee.php index e2ff261d3cc..db08aa62b75 100755 --- a/modules/Employees/Employee.php +++ b/modules/Employees/Employee.php @@ -186,6 +186,11 @@ public function list_view_parse_additional_sections(&$list_form/*, $xTemplateSec public function create_export_query($order_by, $where, $relate_link_join = '') { + global $current_user; + if (!is_admin($current_user)) { + throw new RuntimeException('Not authorized'); + } + include('modules/Employees/field_arrays.php'); $cols = ''; diff --git a/modules/ModuleBuilder/Module/IconRepository.php b/modules/ModuleBuilder/Module/IconRepository.php index 46470c21488..c706d4ec600 100644 --- a/modules/ModuleBuilder/Module/IconRepository.php +++ b/modules/ModuleBuilder/Module/IconRepository.php @@ -14,14 +14,13 @@ class IconRepository */ private static $iconNames = [ AOS_Contracts::class => 'aos-contracts-signature', + AOR_Scheduled_Reports::class => 'aor-reports', 'EmailTemplates' => 'emails', 'Employees' => 'users', jjwg_Address_Cache::class => 'jjwg-markers', 'ProjectTask' => 'am-tasktemplates', AM_ProjectTemplates::class => 'am-tasktemplates', - 'SurveyQuestionOptions' => self::DEFAULT_ICON, - 'SurveyQuestionResponses' => self::DEFAULT_ICON, - 'SurveyQuestions' => self::DEFAULT_ICON, + 'SurveyQuestionResponses' => 'survey-responses', 'SurveyResponses' => 'survey-responses', 'Prospects' => 'targets' ]; @@ -33,8 +32,6 @@ class IconRepository */ public static function getIconName($module) { - return isset(static::$iconNames[$module]) - ? static::$iconNames[$module] - : strtolower(str_replace('_', '-', $module)); + return static::$iconNames[$module] ?? strtolower(str_replace('_', '-', $module)); } } diff --git a/modules/ProspectLists/Duplicate.php b/modules/ProspectLists/Duplicate.php index 6a5c8c2950a..e72525ffd81 100755 --- a/modules/ProspectLists/Duplicate.php +++ b/modules/ProspectLists/Duplicate.php @@ -55,11 +55,11 @@ if (isset($_POST['isDuplicate']) && $_POST['isDuplicate'] == true) { $focus->id=''; $focus->name=$mod_strings['LBL_COPY_PREFIX'].' '.$focus->name; - + $focus->save(); $return_id=$focus->id; //duplicate the linked items. - $query = "select * from prospect_lists_prospects where prospect_list_id = '".$_POST['record']."'"; + $query = "select * from prospect_lists_prospects where prospect_list_id = '". $focus->db->quote($_POST['record']) ."'"; $result = $focus->db->query($query); if ($result != null) { while (($row = $focus->db->fetchByAssoc($result)) != null) { diff --git a/modules/Users/User.php b/modules/Users/User.php index c6069329e08..6686cd90dde 100755 --- a/modules/Users/User.php +++ b/modules/Users/User.php @@ -606,6 +606,10 @@ public function save($check_notify = false) { global $current_user, $mod_strings; + if (!$this->hasSaveAccess()) { + throw new RuntimeException('Not authorized'); + } + $msg = ''; $isUpdate = !empty($this->id) && !$this->new_with_id; @@ -1591,6 +1595,11 @@ public static function getActiveUsers() public function create_export_query($order_by, $where, $relate_link_join = '') { + global $current_user; + if (!is_admin($current_user)) { + throw new RuntimeException('Not authorized'); + } + include('modules/Users/field_arrays.php'); $cols = ''; @@ -2437,4 +2446,25 @@ public function getSubTheme() } return $subTheme; } + + /** + * Check if current user can save the current user record + * @return bool + */ + protected function hasSaveAccess(): bool + { + global $current_user; + + if (empty($this->id)) { + return true; + } + + if (empty($current_user->id)) { + return true; + } + + $sameUser = $current_user->id === $this->id; + + return $sameUser || is_admin($current_user); + } } diff --git a/modules/vCals/vCal.php b/modules/vCals/vCal.php index 631d33e6ca0..2f3f3556ff8 100755 --- a/modules/vCals/vCal.php +++ b/modules/vCals/vCal.php @@ -123,7 +123,7 @@ public function get_freebusy_lines_cache(&$user_bean) public function create_sugar_freebusy($user_bean, $start_date_time, $end_date_time) { $ical_array = array(); - global $DO_USER_TIME_OFFSET, $timedate, $current_user; + global $DO_USER_TIME_OFFSET, $timedate; $DO_USER_TIME_OFFSET = true; if (empty($GLOBALS['current_user']) || empty($GLOBALS['current_user']->id)) { @@ -138,11 +138,11 @@ public function create_sugar_freebusy($user_bean, $start_date_time, $end_date_ti // loop thru each activity, get start/end time in UTC, and return FREEBUSY strings foreach ($acts_arr as $act) { if (empty($act->start_time)) { - $startTime = $timedate->fromUser($act->sugar_bean->date_start, $user_bean); + $act->start_time = $timedate->fromUser($act->sugar_bean->date_start, $user_bean); } if (empty($act->end_time)) { - $endTime = $timedate->fromUser($act->sugar_bean->date_finish, $user_bean); + $act->end_time = $timedate->fromUser($act->sugar_bean->date_finish, $user_bean); } $ID = $act->sugar_bean->id; diff --git a/suitecrm_version.php b/suitecrm_version.php index 8d06362ee38..86741c7f618 100755 --- a/suitecrm_version.php +++ b/suitecrm_version.php @@ -3,5 +3,5 @@ die('Not A Valid Entry Point'); } -$suitecrm_version = '7.12.4'; -$suitecrm_timestamp = '2022-02-10 12:00:00'; +$suitecrm_version = '7.12.5'; +$suitecrm_timestamp = '2022-03-01 12:00:00'; diff --git a/tests/unit/phpunit/modules/Employees/EmployeeTest.php b/tests/unit/phpunit/modules/Employees/EmployeeTest.php index bd2bc23a870..4a3ca8c7478 100644 --- a/tests/unit/phpunit/modules/Employees/EmployeeTest.php +++ b/tests/unit/phpunit/modules/Employees/EmployeeTest.php @@ -128,6 +128,8 @@ public function testcreate_export_query(): void { $employee = BeanFactory::newBean('Employees'); + global $current_user; + $current_user->is_admin = '1'; //test with empty string params $expected = "SELECT id, user_name, first_name, last_name, description, date_entered, date_modified, modified_user_id, created_by, title, department, is_admin, phone_home, phone_mobile, phone_work, phone_other, phone_fax, address_street, address_city, address_state, address_postalcode, address_country, reports_to_id, portal_only, status, receive_notifications, employee_status, messenger_id, messenger_type, is_group FROM users WHERE users.deleted = 0 ORDER BY users.user_name"; $actual = $employee->create_export_query('', ''); @@ -137,6 +139,11 @@ public function testcreate_export_query(): void $expected = "SELECT id, user_name, first_name, last_name, description, date_entered, date_modified, modified_user_id, created_by, title, department, is_admin, phone_home, phone_mobile, phone_work, phone_other, phone_fax, address_street, address_city, address_state, address_postalcode, address_country, reports_to_id, portal_only, status, receive_notifications, employee_status, messenger_id, messenger_type, is_group FROM users WHERE users.user_name=\"\" AND users.deleted = 0 ORDER BY users.id"; $actual = $employee->create_export_query('users.id', 'users.user_name=""'); self::assertSame($expected, $actual); + + $current_user->is_admin = '0'; + $this->expectException(RuntimeException::class); + $employee->create_export_query('', ''); + } public function testpreprocess_fields_on_save(): void diff --git a/tests/unit/phpunit/modules/Users/UserTest.php b/tests/unit/phpunit/modules/Users/UserTest.php index cf3a1b1ac20..76bf541dc65 100644 --- a/tests/unit/phpunit/modules/Users/UserTest.php +++ b/tests/unit/phpunit/modules/Users/UserTest.php @@ -683,16 +683,22 @@ public function testcreate_export_query(): void { $user = BeanFactory::newBean('Users'); + global $current_user; + $current_user->is_admin = '1'; //test with empty string params - $expected = "SELECT id, user_name, first_name, last_name, description, date_entered, date_modified, modified_user_id, created_by, title, department, is_admin, phone_home, phone_mobile, phone_work, phone_other, phone_fax, address_street, address_city, address_state, address_postalcode, address_country, reports_to_id, portal_only, status, receive_notifications, employee_status, messenger_id, messenger_type, is_group FROM users WHERE users.deleted = 0 AND users.is_admin=0 ORDER BY users.user_name"; + $expected = "SELECT id, user_name, first_name, last_name, description, date_entered, date_modified, modified_user_id, created_by, title, department, is_admin, phone_home, phone_mobile, phone_work, phone_other, phone_fax, address_street, address_city, address_state, address_postalcode, address_country, reports_to_id, portal_only, status, receive_notifications, employee_status, messenger_id, messenger_type, is_group FROM users WHERE users.deleted = 0 ORDER BY users.user_name"; $actual = $user->create_export_query('', ''); self::assertSame($expected, $actual); //test with valid string params - $expected = "SELECT id, user_name, first_name, last_name, description, date_entered, date_modified, modified_user_id, created_by, title, department, is_admin, phone_home, phone_mobile, phone_work, phone_other, phone_fax, address_street, address_city, address_state, address_postalcode, address_country, reports_to_id, portal_only, status, receive_notifications, employee_status, messenger_id, messenger_type, is_group FROM users WHERE user_name=\"\" AND users.deleted = 0 AND users.is_admin=0 ORDER BY id"; + $expected = "SELECT id, user_name, first_name, last_name, description, date_entered, date_modified, modified_user_id, created_by, title, department, is_admin, phone_home, phone_mobile, phone_work, phone_other, phone_fax, address_street, address_city, address_state, address_postalcode, address_country, reports_to_id, portal_only, status, receive_notifications, employee_status, messenger_id, messenger_type, is_group FROM users WHERE user_name=\"\" AND users.deleted = 0 ORDER BY id"; $actual = $user->create_export_query('id', 'user_name=""'); self::assertSame($expected, $actual); + + $current_user->is_admin = '0'; + $this->expectException(RuntimeException::class); + $user->create_export_query('', ''); }