CVE-2022-0754: Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection') (CWE-89)
value: SQL Injection in GitHub repository salesagility/suitecrm prior to 7.12.5.
CWE description: The product constructs all or part of an SQL command using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify the intended SQL command when it is sent to a downstream component. Without sufficient removal or quoting of SQL syntax in user-controllable inputs, the generated SQL query can cause those inputs to be interpreted as SQL instead of ordinary user data.
CVSS v3 base score: 6.5
Published: 2022-03-07T13:15Z
Repository: https://github.com/salesagility/suitecrm
Language: PHP
Files changed: README.md, files.md5, modules/AOR_Scheduled_Reports/AOR_Scheduled_Reports.php, modules/Calendar/CalendarActivity.php, modules/Employees/Employee.php, modules/ModuleBuilder/Module/IconRepository.php, modules/ProspectLists/Duplicate.php, modules/Users/User.php, modules/vCals/vCal.php, suitecrm_version.php, tests/unit/phpunit/modules/Employees/EmployeeTest.php, tests/unit/phpunit/modules/Users/UserTest.php
Commit date: 2022-03-01 12:39:51 +0000
Commit message: SuiteCRM 7.12.5 Release

Diff: diff --git a/README.md b/README.md
index 34b439a13..6165f0816 100755
--- a/README.md
+++ b/README.md
@@ -1,10 +1,10 @@
 <a href="https://suitecrm.com">
   <img width="180px" height="41px" src="https://suitecrm.com/wp-content/uploads/2017/12/logo.png" align="right" />
 </a>
 
-# 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)
 [![Gitter chat](https://badges.gitter.im/gitterHQ/gitter.png)](https://gitter.im/suitecrm/Lobby)
 [![LICENSE](https://img.shields.io/github/license/suitecrm/suitecrm.svg)](https://github.com/salesagility/suitecrm/blob/hotfix/LICENSE.txt)
diff --git a/files.md5 b/files.md5
index fa98e10c5..80d9a5dab 100755
--- a/files.md5
+++ b/files.md5
@@ -1,7 +1,7 @@
 <?php
-// created: 2022-02-10 17:00:00
+// created: 2022-03-01 17:00:00
 $md5_string = array (
   './Api/Core/Config/ApiConfig.php' => '69a1e7b3d7755a2a63499a16ddae81cf',
   './Api/Core/Config/slim.php' => 'b134e68765e6a1403577e2a5a06322b8',
   './Api/Core/Loader/ContainerLoader.php' => '6d5e0db5708f5e34bec7ba8fb8196bdc',
   './Api/Core/Loader/CustomLoader.php' => '318e170f91b6af19720eede0664b3d23',
@@ -38,11 +38,11 @@ $md5_string = array (
   './Api/V8/Helper/OsHelper.php' => '3fa3a69441695035a66e877fbfd0d6c2',
   './Api/V8/Helper/VarDefHelper.php' => '986916d5e675667e5f5e89da6d8fc081',
   './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',
   './Api/V8/JsonApi/Response/DocumentResponse.php' => '4c40baaf0af1203f701b5adf742ddf24',
   './Api/V8/JsonApi/Response/ErrorResponse.php' => 'fae7a2e7b27f133ffe8ecf4a674af8e4',
@@ -114,11 +114,11 @@ $md5_string = array (
   './ModuleInstall/PackageManager/tpls/ModuleLoaderListView.tpl' => '5369db45793686f8c820c87f87a09ae5',
   './ModuleInstall/PackageManager/tpls/PackageForm.tpl' => 'bffd280ab5cd7381a5b0da41a9c1f34f',
   './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',
   './XTemplate/LICENSE' => '8c2e1ec1540fb3e0beb68361344cba7e',
   './XTemplate/xtpl.php' => '525927dbd5bfd8a9c7c1b3a51e1ab822',
@@ -1062,14 +1062,15 @@ $md5_string = array (
   './include/SugarObjects/templates/basic/metadata/SearchFields.php' => 'b22c9fcdde3a816c678e69e07782cf6f',
   './include/SugarObjects/templates/basic/metadata/dashletviewdefs.php' => '62d56b60d95c69660b319dbc419f544b',
   './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',
   './include/SugarObjects/templates/company/icons/Createcompany.gif' => '3978b32e01cbeb974d86b1da0617dae9',
   './include/SugarObjects/templates/company/icons/company.gif' => 'be835913e41f719fcb98db95bdd6917d',
@@ -1084,14 +1085,15 @@ $md5_string = array (
   './include/SugarObjects/templates/company/metadata/SearchFields.php' => '4a13401c1c638961a1f500f4327fb473',
   './include/SugarObjects/templates/company/metadata/dashletviewdefs.php' => '685363e3e7c6639df163949389785781',
   './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',
   './include/SugarObjects/templates/file/controller.php' => '83189e1e6176f2c481035d73359b8c2b',
   './include/SugarObjects/templates/file/icons/Createfile.gif' => '2dd8346a8fba06e1772cacd1aa72f489',
@@ -1108,13 +1110,14 @@ $md5_string = array (
   './include/SugarObjects/templates/file/metadata/SearchFields.php' => 'a41535dd55f9b1f2b2f83feb64f6e803',
   './include/SugarObjects/templates/file/metadata/dashletviewdefs.php' => '21ded27cebf43ab115640b382101de4d',
   './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',
   './include/SugarObjects/templates/issue/Issue.php' => '7504282cdfd64e6c5de51d6dcaa0514e',
   './include/SugarObjects/templates/issue/config.php' => 'c0411aec648a487b8bfa46e637595499',
@@ -1132,14 +1135,15 @@ $md5_string = array (
   './include/SugarObjects/templates/issue/metadata/SearchFields.php' => '0c823b21f028e8a6151c8a8bfb96571b',
   './include/SugarObjects/templates/issue/metadata/dashletviewdefs.php' => '685363e3e7c6639df163949389785781',
   './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',
   './include/SugarObjects/templates/person/config.php' => 'f1f2f121d0a3eb936fdf4d3130f9e26d',
   './include/SugarObjects/templates/person/icons/Createperson.gif' => '878da890a4dd64f2f6866fab7513bac8',
@@ -1155,14 +1159,15 @@ $md5_string = array (
   './include/SugarObjects/templates/person/metadata/SearchFields.php' => '5350b89523f65f2529a24c5346ae4a47',
   './include/SugarObjects/templates/person/metadata/dashletviewdefs.php' => '685363e3e7c6639df163949389785781',
   './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',
   './include/SugarObjects/templates/sale/Sale.php' => '5ccbabe22139088d567ebeaa927a9ca9',
   './include/SugarObjects/templates/sale/icons/Createchance.gif' => 'f4fae6d5a4f0135f9e7ea3fbd1a5a80f',
@@ -1182,14 +1187,15 @@ $md5_string = array (
   './include/SugarObjects/templates/sale/metadata/SearchFields.php' => '9716abd98bf2ec8562593c7a20fe4682',
   './include/SugarObjects/templates/sale/metadata/dashletviewdefs.php' => '62d56b60d95c69660b319dbc419f544b',
   './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',
   './include/SugarPHPMailer.php' => 'f3e4df19eab7a1ec3023c62dc383a85e',
   './include/SugarQueue/SugarCronJobs.php' => 'ee32b208de3d393fa352f4f578a5b746',
@@ -2334,11 +2340,11 @@ $md5_string = array (
   './include/javascript/yui/build/yuitest/yuitest.js' => '6fb2e760ee07c0a168ea71756458e7b6',
   './include/javascript/yui/build/yuitest/yuitest_core-min.js' => '1b6dc3c46fe545b4e7b69bb3a1f1471c',
   './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',
   './include/modules.php' => '3223205c71cf9365281b9807c518c137',
   './include/nusoap/changelog' => 'd75ed67ec93c02e5bce94eee8205b425',
@@ -2873,11 +2879,11 @@ $md5_string = array (
   './lib/Search/SqlSearch/SimpleSqlSearchEngine.php' => 'db160c7c333582c7028a59f2bed03fcb',
   './lib/Search/UI/MVC/Controller.php' => '9f60e08a0b86295e12202689345d3410',
   './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',
   './lib/Search/UI/templates/search.results.tpl' => '3764debdc36f654c639c9b0725578214',
   './lib/Utility/AntiMalware/AntiMalwareTrait.php' => '73b03cd144fb631f3ac76828f6f2ef6b',
@@ -3395,11 +3401,11 @@ $md5_string = array (
   './modules/AOR_Reports/tpls/EditViewHeader.tpl' => '69c4780232f89d30d38f37f7c13fe556',
   './modules/AOR_Reports/tpls/report.tpl' => '081d5318c077257712fa45bbaefcb299',
   './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',
   './modules/AOR_Scheduled_Reports/language/en_us.lang.php' => 'ca123922d16612bb5e5211e2428b4b0f',
   './modules/AOR_Scheduled_Reports/lib/Cron/AbstractField.php' => '9b4d30db269bfdbff0be204362f3b5aa',
@@ -3890,11 +3896,11 @@ $md5_string = array (
   './modules/Bugs/vardefs.php' => '855c5012b57a7060f7c62cd437532019',
   './modules/Bugs/views/view.detail.php' => 'cf1a69a74ff14047728196953d63e53b',
   './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',
   './modules/Calendar/Dashlets/CalendarDashlet/CalendarDashlet.en_us.lang.php' => '6fdb83c31d054df3c44506ac14c597d2',
   './modules/Calendar/Dashlets/CalendarDashlet/CalendarDashlet.meta.php' => '758acc8f997a457526abe67952a3c5de',
@@ -4651,14 +4657,14 @@ $md5_string = array (
   './modules/Emails/Status.php' => '4f629e055d76e854086d85ecdbf7c966',
   './modules/Emails/SugarRoutingAsync.php' => 'bae17366af7a39e08aebe663f18cbecf',
   './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',
   './modules/Emails/include/DetailView/ImportView.js' => 'ef46274cfb2aa855de3fbec666231d33',
   './modules/Emails/include/DetailView/edit-draft.js' => 'efdb00da616a7261ed63754906ca4521',
@@ -4753,11 +4759,11 @@ $md5_string = array (
   './modules/Emails/templates/importRelate.tpl' => '809f6ea2d09ca10753ea117607f83cf4',
   './modules/Emails/templates/outboundDialog.tpl' => '54075b4672aa536742e0cec3854a8eb5',
   './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',
   './modules/Emails/views/view.detaildraft.php' => '24367be3feebe6a75232fdbad4c06dd6',
   './modules/Emails/views/view.detailnonimported.php' => '9db1a37dd52c269a3f98963379704a11',
@@ -4765,11 +4771,11 @@ $md5_string = array (
   './modules/Emails/views/view.import.php' => 'c736c9992c0401643e8a15250bc7ce73',
   './modules/Emails/views/view.list.php' => 'c21e4087255556ec8e9038780d6591c5',
   './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',
   './modules/Employees/Error.php' => '51ddcdc6d7a7604cd9aa96181567d098',
   './modules/Employees/Forms.php' => 'd2055d678d7215ae3b4692c88de01a60',
@@ -5169,11 +5175,11 @@ $md5_string = array (
   './modules/ModuleBuilder/MB/MBVardefs.php' => 'c208c736529cc88c3d4ae23be15a5273',
   './modules/ModuleBuilder/MB/ModuleBuilder.php' => '406b020f2e5da8403277ea7885a7b4e4',
   './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',
   './modules/ModuleBuilder/Module/StudioModuleFactory.php' => '6cbfc7773577066687afdadd9b403aec',
   './modules/ModuleBuilder/Module/StudioTree.php' => '0f31e09a89900b474a1afcbb34847df5',
@@ -5187,11 +5193,11 @@ $md5_string = array (
   './modules/ModuleBuilder/javascript/studio2ListDD.js' => '9a720dba2684d8991a583c1c6312e102',
   './modules/ModuleBuilder/javascript/studio2PanelDD.js' => '93a5285c7147e8deea8afc555e2e79ca',
   './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',
   './modules/ModuleBuilder/parsers/constants.php' => '01917f1fa30ccbaabf69cf03f3a37946',
   './modules/ModuleBuilder/parsers/parser.dropdown.php' => 'adfd8f59d8b6072d2aabee8f2ec68ceb',
@@ -5546,11 +5552,11 @@ $md5_string = array (
   './modules/ProjectTask/updateDependencies.php' => 'a41c066fc073b3a2555efd49771a42ca',
   './modules/ProjectTask/updateProject.php' => 'd670d5c2f29c4aebe171061f739917ce',
   './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',
   './modules/ProspectLists/Popup_picker.html' => '242e9467d08481a15f24f9dc62663a94',
   './modules/ProspectLists/ProspectList.php' => 'da409b9852d2aad057ff189c17990f3f',
@@ -6047,11 +6053,11 @@ $md5_string = array (
   './modules/Users/SaveTimezone.php' => 'e6ac14a27f6ab48b6317075280421435',
   './modules/Users/SetTimezone.php' => '1382d77200109df29e1d2bfaced21d77',
   './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',
   './modules/Users/UserEmailSettingsAccountDetails.tpl' => '4d107fcaf08921ec83b81f6de310423f',
   './modules/Users/UserEmailSettingsAccounts.tpl' => '80522cff85907fd4b4d52b8eb4a345ca',
@@ -6264,11 +6270,11 @@ $md5_string = array (
   './modules/jjwg_Markers/views/view.marker_edit_map.config.php' => '85a7c20b604dd193c723cbca3be7747d',
   './modules/jjwg_Markers/views/view.marker_edit_map.php' => 'dc0982a3a3bfa531ac444fb74e5972f6',
   './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',
   './phpcs.xml' => '49c142cb59dc75e074493c3718b42528',
   './robots.txt' => 'fce2c714b591aa9b36ed1e1b1d8ef900',
@@ -6334,36 +6340,36 @@ $md5_string = array (
   './soap/SoapSugarUsers.php' => '24b1d06f162af2c641ec6cda2fe025f2',
   './soap/SoapTypes.php' => '6620161d7b9c96ac37df5f9d04a7118d',
   './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',
   './themes/SuiteP/css/bootstrap/badges.scss' => '9384c5f60cf095ad09dc43173622d046',
   './themes/SuiteP/css/bootstrap/breadcrumbs.scss' => 'a62f82d2cb9618e5acde8d22a25e51bc',
@@ -6459,11 +6465,11 @@ $md5_string = array (
   './themes/SuiteP/css/suitep-base/detailview.scss' => 'a7ece4c3b5ab6c3cc9b2637ac46cf9b3',
   './themes/SuiteP/css/suitep-base/editview.scss' => '942de05cc187175393b9cba06f8e0ddb',
   './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',
   './themes/SuiteP/css/suitep-base/modal.scss' => 'a74573b8eadb3ca7b8ace684650bc3c7',
   './themes/SuiteP/css/suitep-base/navbar.scss' => '59a6735cb35ec7ecce643ee8f5aba729',
@@ -7739,19 +7745,19 @@ $md5_string = array (
   './themes/SuiteP/images/wizmenu/dot.png' => '5204e648a2b03741c1ba0c4c68ee29c6',
   './themes/SuiteP/images/wizmenu/left-full.png' => '3b71d6b7ea9cc721aa682b27ad9f87df',
   './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',
   './themes/SuiteP/include/EditView/actions_menu.tpl' => '1b8224c26efa32d721090b41a3d42dc9',
   './themes/SuiteP/include/EditView/footer.tpl' => '6c16878662d33f027b3b36bc2d911f9a',
@@ -9258,6 +9264,6 @@ $md5_string = array (
   './themes/default/less/utilities.less' => 'd1f5479d4b119cb29db8da954a108637',
   './themes/default/less/variables.less' => '01f56f5ec66f9f53d557300be32bde89',
   './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 75eb439dd..c73c9a910 100644
--- a/modules/AOR_Scheduled_Reports/AOR_Scheduled_Reports.php
+++ b/modules/AOR_Scheduled_Reports/AOR_Scheduled_Reports.php
@@ -81,13 +81,11 @@ class AOR_Scheduled_Reports extends basic
         return false;
     }
 
     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);
     }
 
     public function get_email_recipients()
@@ -178,11 +176,11 @@ class AOR_Scheduled_Reports extends basic
         if (empty($this->last_run) && $cron->isDue($runDate)) {
             return true;
         }
 
         $lastRun = $this->last_run ? $timedate->fromDb($this->last_run) : $timedate->fromDb($this->date_entered);
-        
+
         $this->handleTimeZone($lastRun);
         $next = $cron->getNextRunDate($lastRun);
 
         return $next <= $runDate;
     }
@@ -198,6 +196,28 @@ class AOR_Scheduled_Reports extends basic
         $timezone = new DateTimeZone($timezone);
         $offset = $timezone->getOffset($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 6c8fdc02e..11f16fff0 100755
--- a/modules/Calendar/CalendarActivity.php
+++ b/modules/Calendar/CalendarActivity.php
@@ -264,24 +264,25 @@ class CalendarActivity
                 if (!empty($complete[$key])) {
                     $where .= $complete[$key];
                 }
 
                 $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,
                         'list',
                         $current_user->id === $user_id,
                         '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);
 
                     if (!empty($act)) {
diff --git a/modules/Employees/Employee.php b/modules/Employees/Employee.php
index e2ff261d3..db08aa62b 100755
--- a/modules/Employees/Employee.php
+++ b/modules/Employees/Employee.php
@@ -184,10 +184,15 @@ class Employee extends Person
     }
 
 
     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 = '';
         foreach ($fields_array['Employee']['export_fields'] as $field) {
             $cols .= (empty($cols)) ? '' : ', ';
diff --git a/modules/ModuleBuilder/Module/IconRepository.php b/modules/ModuleBuilder/Module/IconRepository.php
index 46470c214..c706d4ec6 100644
--- a/modules/ModuleBuilder/Module/IconRepository.php
+++ b/modules/ModuleBuilder/Module/IconRepository.php
@@ -12,18 +12,17 @@ class IconRepository
     /**
      * @var array
      */
     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'
     ];
 
     /**
@@ -31,10 +30,8 @@ class IconRepository
      *
      * @return string
      */
     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 6a5c8c295..e72525ffd 100755
--- a/modules/ProspectLists/Duplicate.php
+++ b/modules/ProspectLists/Duplicate.php
@@ -53,15 +53,15 @@ $focus = BeanFactory::newBean('ProspectLists');
 
 $focus->retrieve($_POST['record']);
 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) {
             $iquery ="INSERT INTO prospect_lists_prospects (id,prospect_list_id, related_id, related_type,date_modified) ";
             $iquery .= "VALUES ("."'".create_guid()."',"."'".$focus->id."',"."'".$row['related_id']."',"."'".$row['related_type']."',"."'".TimeDate::getInstance()->nowDb()."')";
diff --git a/modules/Users/User.php b/modules/Users/User.php
index c6069329e..6686cd90d 100755
--- a/modules/Users/User.php
+++ b/modules/Users/User.php
@@ -604,10 +604,14 @@ class User extends Person implements EmailInterface
      */
     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;
 
         //No SMTP server is set up Error.
@@ -1589,10 +1593,15 @@ EOQ;
         return $active_users;
     }
 
     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 = '';
         foreach ($fields_array['User']['export_fields'] as $field) {
             $cols .= (empty($cols)) ? '' : ', ';
@@ -2435,6 +2444,27 @@ EOQ;
             $sugarTheme = new SugarTheme(array());
             $subTheme = $sugarTheme->getSubThemeDefault();
         }
         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 631d33e6c..2f3f3556f 100755
--- a/modules/vCals/vCal.php
+++ b/modules/vCals/vCal.php
@@ -121,11 +121,11 @@
         // query and create the FREEBUSY lines for SugarCRM Meetings and Calls and
         // return the string
         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)) {
                 $GLOBALS['current_user'] = $user_bean;
             }
@@ -136,15 +136,15 @@
 
             $acts_arr = CalendarActivity::get_activities($activityList, $user_bean->id, false, $start_date_time, $end_date_time, 'freebusy');
             // 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;
                 $startTimeUTC = $act->start_time->format(self::UTC_FORMAT);
                 $endTimeUTC = $act->end_time->format(self::UTC_FORMAT);
diff --git a/suitecrm_version.php b/suitecrm_version.php
index 8d06362ee..86741c7f6 100755
--- a/suitecrm_version.php
+++ b/suitecrm_version.php
@@ -1,7 +1,7 @@
 <?php
 if (!defined('sugarEntry') || !sugarEntry) {
     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 bd2bc23a8..4a3ca8c74 100644
--- a/tests/unit/phpunit/modules/Employees/EmployeeTest.php
+++ b/tests/unit/phpunit/modules/Employees/EmployeeTest.php
@@ -126,19 +126,26 @@ class EmployeeTest extends SuitePHPUnitFrameworkTestCase
 
     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('', '');
         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 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
     {
         $employee = BeanFactory::newBean('Employees');
diff --git a/tests/unit/phpunit/modules/Users/UserTest.php b/tests/unit/phpunit/modules/Users/UserTest.php
index cf3a1b1ac..76bf541dc 100644
--- a/tests/unit/phpunit/modules/Users/UserTest.php
+++ b/tests/unit/phpunit/modules/Users/UserTest.php
@@ -681,20 +681,26 @@ class UserTest extends SuitePHPUnitFrameworkTestCase
 
     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('', '');
     }
 
 
     public function testget_meetings(): void
     {

Vulnerable code: # SuiteCRM 7.12.4
// created: 2022-02-10 17:00:00
  './Api/V8/JsonApi/Repository/Filter.php' => 'cc024de98508d60c0d091a58a49fa879',
  './README.md' => '3851c72e794004a8dea5141835e9f67f',
  './include/SugarObjects/templates/basic/metadata/metafiles.php' => '5dc7c77d1e65d8f0e5dafa6f5d4b3969',
  './include/SugarObjects/templates/company/metadata/metafiles.php' => '5dc7c77d1e65d8f0e5dafa6f5d4b3969',
  './include/SugarObjects/templates/file/metadata/metafiles.php' => '30b981844f4f61f7120cc6fd71e6df2b',
  './include/SugarObjects/templates/issue/metadata/metafiles.php' => '5dc7c77d1e65d8f0e5dafa6f5d4b3969',
  './include/SugarObjects/templates/person/metadata/metafiles.php' => '5dc7c77d1e65d8f0e5dafa6f5d4b3969',
  './include/SugarObjects/templates/sale/metadata/metafiles.php' => 'c66eca250effcffa927a528e55be1420',
  './include/language/en_us.lang.php' => 'b3e2e4ddf37fa8614a55749c8f22aea6',
  './lib/Search/UI/SearchResultsController.php' => '5c3be29f03a58a39dea00393c1dfc01e',
  './modules/AOR_Scheduled_Reports/AOR_Scheduled_Reports.php' => '1d67cfee23f2da1d546578bc27545a74',
  './modules/Calendar/CalendarActivity.php' => '0cead97402da329cb1f4748058f3dd0a',
  './modules/Emails/include/ComposeView/ComposeView.tpl' => '1ec29fbb9803c24e5ed8a12155668e58',
  './modules/Emails/include/ComposeView/EmailsComposeView.js' => '65624a5e5985e5f9deee1e4725533462',
  './modules/Emails/vardefs.php' => '3b7cf8c8a768bd5c4d1bcdb5bd05e7d2',
  './modules/Employees/Employee.php' => 'c837db1f7627ee68383a041c51bb8b9c',
  './modules/ModuleBuilder/Module/IconRepository.php' => '20cd01f8300b411bacffb53361ed6f08',
  './modules/ModuleBuilder/language/en_us.lang.php' => '9171bfd805fcedff0bbc38266d6395b5',
  './modules/ProspectLists/Duplicate.php' => '51ef701820dbf25644722d961ed1121f',
  './modules/Users/User.php' => 'e0e65bf73d91fcc730b923eb95fe37c2',
  './modules/vCals/vCal.php' => '11257a95accc06fa64afc8d60425d663',
  './suitecrm_version.php' => '14057aacc3f8a801fddbfd87976aec77',
  './themes/SuiteP/css/Dawn/style.css' => '4b00f6c1bbea501b7b2d100b7b11e556',
  './themes/SuiteP/css/Day/style.css' => 'aa909eb7a2ec2772a66ca0707fe8d419',
  './themes/SuiteP/css/Dusk/style.css' => 'c948f679584e96d3ce39050d36b82e8b',
  './themes/SuiteP/css/Night/style.css' => 'b08ab4c6a46bca69b8b5affc3c108f24',
  './themes/SuiteP/css/Noon/style.css' => '5f0a4b744c3057d5efc137791411aa2a',
  './themes/SuiteP/css/suitep-base/listview.scss' => '083c62124b7f3c7dbf32a3f10e06cf35',
  './themes/SuiteP/include/Dashlets/DashletHeader.tpl' => '83586d72dbd43540f4d71b6b5db354f5',
  './themes/SuiteP/include/DetailView/DetailView.tpl' => '4829a5f5b6ac00c01c321948b4481a95',
  './themes/SuiteP/include/EditView/EditView.tpl' => '5e279ffcc56b22f3c2d6032247fa288e',
);
        if (isset($_POST['email_recipients']) && is_array($_POST['email_recipients'])) {
            $this->email_recipients = base64_encode(serialize($_POST['email_recipients']));
        }
        
                require_once 'modules/SecurityGroups/SecurityGroup.php';
                    $focusBean->show_as_busy = $show_as_busy;
        'SurveyQuestionOptions' => self::DEFAULT_ICON,
        'SurveyQuestionResponses' =>  self::DEFAULT_ICON,
        'SurveyQuestions' => self::DEFAULT_ICON,
        return isset(static::$iconNames[$module])
            ? static::$iconNames[$module]
            : strtolower(str_replace('_', '-', $module));
    
    $query  = "select * from prospect_lists_prospects where prospect_list_id = '".$_POST['record']."'";
            global $DO_USER_TIME_OFFSET, $timedate, $current_user;
                    $startTime = $timedate->fromUser($act->sugar_bean->date_start, $user_bean);
                    $endTime = $timedate->fromUser($act->sugar_bean->date_finish, $user_bean);
$suitecrm_version = '7.12.4';
$suitecrm_timestamp = '2022-02-10 12:00:00';
        $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 user_name=\"\" AND  users.deleted = 0 AND users.is_admin=0 ORDER BY id";
Fixed code: # SuiteCRM 7.12.5
// created: 2022-03-01 17:00:00
  './Api/V8/JsonApi/Repository/Filter.php' => '21279c505e18aacd9f6aea51cc62a3bc',
  './README.md' => 'b9189e1dc12fb6ee741b6057b9e70147',
  './include/SugarObjects/templates/basic/metadata/metafiles.php' => '80e1c107fcf93fe0a78cf5dd7146b3f5',
  './include/SugarObjects/templates/basic/metadata/subpaneldefs.php' => 'decf6423acb6b44f331f9f8b54c19ff0',
  './include/SugarObjects/templates/company/metadata/metafiles.php' => '80e1c107fcf93fe0a78cf5dd7146b3f5',
  './include/SugarObjects/templates/company/metadata/subpaneldefs.php' => '50acf29d6c53bd5a58dac8b21971d94b',
  './include/SugarObjects/templates/file/metadata/metafiles.php' => 'c44b4a1bae97f1d29608af2aaf3e931d',
  './include/SugarObjects/templates/file/metadata/subpaneldefs.php' => 'decf6423acb6b44f331f9f8b54c19ff0',
  './include/SugarObjects/templates/issue/metadata/metafiles.php' => '80e1c107fcf93fe0a78cf5dd7146b3f5',
  './include/SugarObjects/templates/issue/metadata/subpaneldefs.php' => 'decf6423acb6b44f331f9f8b54c19ff0',
  './include/SugarObjects/templates/person/metadata/metafiles.php' => '80e1c107fcf93fe0a78cf5dd7146b3f5',
  './include/SugarObjects/templates/person/metadata/subpaneldefs.php' => 'decf6423acb6b44f331f9f8b54c19ff0',
  './include/SugarObjects/templates/sale/metadata/metafiles.php' => 'c44b4a1bae97f1d29608af2aaf3e931d',
  './include/SugarObjects/templates/sale/metadata/subpaneldefs.php' => 'decf6423acb6b44f331f9f8b54c19ff0',
  './include/language/en_us.lang.php' => '9b8bee2691bda327f6b973fa789de805',
  './lib/Search/UI/SearchResultsController.php' => '21c2ecf52498c7e3109464e4fddd32a7',
  './modules/AOR_Scheduled_Reports/AOR_Scheduled_Reports.php' => '37085ac71ea851fc00d66dbf569885f7',
  './modules/Calendar/CalendarActivity.php' => '9e55048969b6abcb58443296057f8fce',
  './modules/Emails/include/ComposeView/ComposeView.tpl' => 'aee5736e992aecc485afbb5973d9e535',
  './modules/Emails/include/ComposeView/EmailsComposeView.js' => '8ed14ba39eff3d7ec030538431ad3999',
  './modules/Emails/vardefs.php' => 'dae3869d4728b0bc63a3afe2532ee0cb',
  './modules/Employees/Employee.php' => '2a70486e775ccc8e4c36176855d5c1e7',
  './modules/ModuleBuilder/Module/IconRepository.php' => '5fbd04824f79784669ba38326a18096f',
  './modules/ModuleBuilder/language/en_us.lang.php' => 'b73ec441c51179efa58d1a65e2160252',
  './modules/ProspectLists/Duplicate.php' => 'f73bdc77dd9e63b24e69897105947500',
  './modules/Users/User.php' => 'a75ad79197349bc156f9365ef3830b9c',
  './modules/vCals/vCal.php' => 'e20c0d7ec2b900ce37c8d621db8835ad',
  './suitecrm_version.php' => '44698d65949ec2aaa3489747310fb8be',
  './themes/SuiteP/css/Dawn/style.css' => 'fa371bfc0663c488d723ce828d1e7171',
  './themes/SuiteP/css/Day/style.css' => '6d2e8777837f4a3c9c673b403b95eef2',
  './themes/SuiteP/css/Dusk/style.css' => '5bfde54ca4e8a9315b384a4ae0cdc7f7',
  './themes/SuiteP/css/Night/style.css' => 'ee55328617a2cfa5a1a7583db1afd6b6',
  './themes/SuiteP/css/Noon/style.css' => '504a6fcca636cdbad859ac6a8d1b47c8',
  './themes/SuiteP/css/suitep-base/listview.scss' => '46898f8372bdd796e5ddeed167bd0c30',
  './themes/SuiteP/include/Dashlets/DashletHeader.tpl' => '09e4767d1ff01a830c0de2706e833a11',
  './themes/SuiteP/include/DetailView/DetailView.tpl' => 'ff62ab3dc8d5b6e91a4c1041c043592e',
  './themes/SuiteP/include/EditView/EditView.tpl' => '7ad41f35fa8b0aa7dbaae48189c38edb',
);
        $this->parseRecipients();

    /**
     * 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));
        }
    }

                //require_once 'modules/SecurityGroups/SecurityGroup.php';
                    /* TODO update currently unused functionality, disabled as expensive
                    $focusBean->show_as_busy = $show_as_busy;*/
        global $current_user;
        if (!is_admin($current_user)) {
            throw new RuntimeException('Not authorized');
        }

        AOR_Scheduled_Reports::class => 'aor-reports',
        'SurveyQuestionResponses' =>  'survey-responses',
        return static::$iconNames[$module] ?? strtolower(str_replace('_', '-', $module));

    $query  = "select * from prospect_lists_prospects where prospect_list_id = '". $focus->db->quote($_POST['record']) ."'";
        if (!$this->hasSaveAccess()) {
           throw new RuntimeException('Not authorized');
        }

        global $current_user;
        if (!is_admin($current_user)) {
            throw new RuntimeException('Not authorized');
        }


    /**
     * 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);
    }
            global $DO_USER_TIME_OFFSET, $timedate;
                    $act->start_time = $timedate->fromUser($act->sugar_bean->date_start, $user_bean);
                    $act->end_time = $timedate->fromUser($act->sugar_bean->date_finish, $user_bean);
$suitecrm_version = '7.12.5';
$suitecrm_timestamp = '2022-03-01 12:00:00';
        global $current_user;
        $current_user->is_admin = '1';

        $current_user->is_admin = '0';
        $this->expectException(RuntimeException::class);
        $employee->create_export_query('', '');

        global $current_user;
        $current_user->is_admin = '1';
        $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";
        $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";

        $current_user->is_admin = '0';
        $this->expectException(RuntimeException::class);
        $user->create_export_query('', '');