Squashed 'public/legacy/' changes from 1b30d1900a..a403361326

a403361326 SuiteCRM 7.12.7 Release
8058ba3262 Fix #9736 - Elasticsearch still running repair in not enabled
39690e8921 Fix #9735 - Add elasticsearch option to admin menu
0ded1d1069 Fix #9258 - Fix for Notes module advanced date-modified search
b0654ef913 Fix #9267 - Fix for popup &email reminder options
ecb56747d0 Fix #9511: Case Updates Thread now displays updates from 'Unknown' sources.
a323740456 Fix #9314 - Respect the subpanel `flat` flag
4f31f9e29c Fix #9686 - Draft Email Opens in Draft View From History Subpanel
6bec25a6d4 Fix #9421 - Fix ElasticSearch tests
42fbbcef04 Fix #9421 - Elastic search logic hooks fail to index properly
317ba16295 Fix #9593 - Fix elasticsearch indexing unnecessarily during QR+R. - Update config defaults to include allowed_preview value.
9549950373 Fix #9599 - Fix missing pagination on Elasticsearch results page
f0f08a2724 Fix #9627 - Studio changes not picked up by CRM when opcache.validate_timestamps=0
e8964780a0 Fix #9660 - Copy only select files to custom/working directory
c613905bc6 Fix #9663 - Smaller screens automatically collapse non-subpanel panels
27bc6ca1a7 Fix #9547 - Workflow actions not saving correctly for certain field types.
8df903d9c9 Fix #9163 - Outbound Email Accounts to use correct fields by default.
48b70d0018 Fix #9561 - Fail state was not handled when missing listviewdefs file.
0e021e7ac6 Fix #9609 - Change the logger level in setStream and getStream functions to prevent excessive log errors
729f3dd510 Fix #9569 - Fix issue with missing dropdown image
5ccfbf42f1 Fix #9545 - Fix Workflow tests
541a96e499 Fix #9545 - Quote potential reserved name
e079865b99 Fix #9551 - Fix typo in fix
b4c9b39b1a Fix #9551 - Update date period to include the users TZ.
92aef5b5a2 Fix #9594 - Don't convert nl to BR for contact updates as these contain HTML and come from emails in most cases.
ad7c3017f2 Fix #9634 Add check on cron schedule to show the basic view on first load
5a20f5a5fe Fix #9636 Add styling of email recipient button

git-subtree-dir: public/legacy
git-subtree-split: a40336132686f0d5094a13cea9de3995c477c70b
This commit is contained in:
root 2022-08-11 13:01:14 +00:00
parent 05a86ac02f
commit 3fb6e4bb8e
36 changed files with 376 additions and 107 deletions

View file

@ -2,7 +2,7 @@
<img width="180px" height="41px" src="https://suitecrm.com/wp-content/uploads/2017/12/logo.png" align="right" />
</a>
# SuiteCRM 7.12.6
# SuiteCRM 7.12.7
[![LICENSE](https://img.shields.io/github/license/suitecrm/suitecrm.svg)](https://github.com/salesagility/suitecrm/blob/hotfix/LICENSE.txt)
[![contributions welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat)](https://github.com/salesagility/SuiteCRM-Core/issues)

View file

@ -1,5 +1,5 @@
<?php
// created: 2022-05-24 17:00:00
// created: 2022-08-11 17:00:00
$md5_string = array (
'./Api/Core/Config/ApiConfig.php' => '69a1e7b3d7755a2a63499a16ddae81cf',
'./Api/Core/Config/slim.php' => 'b134e68765e6a1403577e2a5a06322b8',
@ -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' => 'fc390ddd83bd21a9c3d11e388704898c',
'./README.md' => 'a0bd251d41e8891a287deef8470decde',
'./RoboFile.php' => '045b82c1df69553824d0e4ffcce6e03c',
'./SugarSecurity.php' => '47e316b2d408e8c5192c8ea4a4f921b3',
'./TreeData.php' => '32873e20cb5fd33f9d1cdaf18c3cac5c',
@ -582,7 +582,7 @@ $md5_string = array (
'./include/HTTP_WebDAV_Server/dav.txt' => 'c5235ed64efa685da638c6dcdb6a9708',
'./include/HTTP_WebDAV_Server/license.txt' => 'a45bb1bbeed9e26b26c5763df1d3913d',
'./include/HtmlSanitizer.php' => 'efcd753e725f16eb9212bc3bb2ed2cff',
'./include/Imap/ImapHandler.php' => '0ae13d770726b77d53be94317cf70381',
'./include/Imap/ImapHandler.php' => 'dbabb67c1d5c7d66dd0e9848a5d1956a',
'./include/Imap/ImapHandlerException.php' => '43d045dace421f51ad30eab02e1d1e91',
'./include/Imap/ImapHandlerFactory.php' => '0b015e476295d1edaa6bd55fe0717cf7',
'./include/Imap/ImapHandlerFake.php' => '944f354c498721810af1e37c32f9c6f2',
@ -677,7 +677,7 @@ $md5_string = array (
'./include/MySugar/tpls/dashletsSearchResults.tpl' => '63f403f807ba8c415a2c8e2af73651f3',
'./include/MySugar/tpls/retrievePage.tpl' => 'e4f99a0c96f4b9af18ff4e16b35ebc83',
'./include/MySugar/tpls/retrieveReportCharts.tpl' => 'eae923db515b990099e897c335560dc8',
'./include/OutboundEmail/OutboundEmail.php' => '9d627306323b057d69d4c66537499a84',
'./include/OutboundEmail/OutboundEmail.php' => 'b67350f1a16e4b072d2b9ce7128360ad',
'./include/Pear/Crypt_Blowfish/Blowfish/DefaultKey.php' => '71c33c848e1219ea3cfad5795f02f3cd',
'./include/Pear/Crypt_Blowfish/Blowfish.php' => '0c73a6dbf2fa10ae60ecb7dde76c67eb',
'./include/Pear/Crypt_Blowfish/license.txt' => 'a45bb1bbeed9e26b26c5763df1d3913d',
@ -807,7 +807,7 @@ $md5_string = array (
'./include/SubPanel/SubPanelSearchDisplay.php' => '3d8ffeae4b8c5d6c6114023522854fbf',
'./include/SubPanel/SubPanelSearchForm.php' => 'd14c106564b2340964b75ae5f4e6981d',
'./include/SubPanel/SubPanelTiles.js' => '0b5347ce906dba217df378f448fbfbd7',
'./include/SubPanel/SubPanelTiles.php' => '4cfaf9b11dfd232b2e279df603cdacec',
'./include/SubPanel/SubPanelTiles.php' => '9daf3d31398e30d1da699cedca2d6ea7',
'./include/SubPanel/SubPanelTilesTabs.php' => 'e150f91f4cac7eaa55c2c43c21d2c3d2',
'./include/SubPanel/SubPanelViewer.php' => 'a833bafe058a680dd223a7cec0dc2602',
'./include/SubPanel/SugarTab.php' => 'a4951aeca44262b8def9e2daa5270b30',
@ -896,7 +896,7 @@ $md5_string = array (
'./include/SugarFields/Fields/Collection/view.sugarfieldcollection.php' => '89d60a899e48c3243d0bbfb465fbca4a',
'./include/SugarFields/Fields/CronSchedule/DetailView.tpl' => '3ddfdb977b2bcdf06ddfb81b308ad71a',
'./include/SugarFields/Fields/CronSchedule/EditView.tpl' => '44a9d6aa83602412d32dd37476904c44',
'./include/SugarFields/Fields/CronSchedule/SugarFieldCronSchedule.js' => 'af77a1f9447ebb9ec392201746642976',
'./include/SugarFields/Fields/CronSchedule/SugarFieldCronSchedule.js' => 'bee23f8a427c9613797de4370da88c4d',
'./include/SugarFields/Fields/CronSchedule/SugarFieldCronSchedule.php' => 'b7a245eb0afd2cb57ed19a9dbf387fd2',
'./include/SugarFields/Fields/Currency/DetailView.tpl' => 'e609274e4fffe40dbcaceab1affbbaa1',
'./include/SugarFields/Fields/Currency/EditView.tpl' => 'f0f6981a078def52e16cd29db4f791a8',
@ -1208,7 +1208,7 @@ $md5_string = array (
'./include/SugarTheme/cssmin.php' => 'ff649bb50d5dafcce509ed9d340b6d06',
'./include/SugarTheme/getImage.php' => 'd7963d20b0365d62c7d1c84ea3faf3ed',
'./include/SugarTinyMCE.php' => '3e1df6fa7bcbb9e3caf75d97e1d8924b',
'./include/Sugar_Smarty.php' => 'f3edc67b137034a204d8806878803ae8',
'./include/Sugar_Smarty.php' => '9ce2f82df09600f42ccd1eee7bf78294',
'./include/Sugarpdf/FontManager.php' => '4f3e178b643571961d9f2590122342cc',
'./include/Sugarpdf/Sugarpdf.php' => '10f553017faf60a1ba027c96dea2d43d',
'./include/Sugarpdf/SugarpdfFactory.php' => 'aadf37eceefa4fcf78d789c6035062b4',
@ -1411,7 +1411,7 @@ $md5_string = array (
'./include/generic/SugarWidgets/SugarWidgetSubPanelConcat.php' => '03c319a098967fc1610daaea764f0776',
'./include/generic/SugarWidgets/SugarWidgetSubPanelDelegatesSelectButton.php' => '861be3e8cfc1d8e6febe5cc53ecd99c1',
'./include/generic/SugarWidgets/SugarWidgetSubPanelDeleteButton.php' => '9501b5936a8582455215630acf514c8a',
'./include/generic/SugarWidgets/SugarWidgetSubPanelDetailViewLink.php' => '50a2e84ba79f34f64bc833ffc806af32',
'./include/generic/SugarWidgets/SugarWidgetSubPanelDetailViewLink.php' => 'd2ca406f9e93b8f77700e34fcd9eefb5',
'./include/generic/SugarWidgets/SugarWidgetSubPanelEditButton.php' => '51dd2575746ad10d994fd3e4ada01419',
'./include/generic/SugarWidgets/SugarWidgetSubPanelEditRoleButton.php' => '6e38eb815261495fb865a419918aa7a2',
'./include/generic/SugarWidgets/SugarWidgetSubPanelEditSecurityGroupUserButton.php' => '8ea90a94236124d81237963b411f4031',
@ -2389,7 +2389,7 @@ $md5_string = array (
'./include/utils/recaptcha_utils.php' => '73f5eddf707788c1dff4b7d07dc82656',
'./include/utils/security_utils.php' => 'e953d0b673df3df313ecf1ac975e8f57',
'./include/utils/sugar_file_utils.php' => '1c1915cad8c88feb0edbf5bbaee106c4',
'./include/utils.php' => '6d53269c330f409be13d9a4c3a1b08b8',
'./include/utils.php' => '55b02dfc0dc39c73996597a598b96264',
'./include/vCard.php' => '44052bbedcdaba3fdf67cfc10a112e75',
'./include/ytree/ExtNode.php' => '000d4ccbdb6e0a7628c636128781b5e3',
'./include/ytree/JQueryTree.php' => '3712d2224b93818b990b876f8405b745',
@ -2791,7 +2791,7 @@ $md5_string = array (
'./lib/Search/ElasticSearch/ElasticSearchClientBuilder.php' => '4743c29fa00cb5d4025c974af7b79156',
'./lib/Search/ElasticSearch/ElasticSearchEngine.php' => '89b2b27ef2c5dd8e7482360a8e499bfc',
'./lib/Search/ElasticSearch/ElasticSearchHooks.php' => '8898cc8d7cec43f13352397be9397f3e',
'./lib/Search/ElasticSearch/ElasticSearchIndexer.php' => 'bf4bb3db91bea5279332355d366e7109',
'./lib/Search/ElasticSearch/ElasticSearchIndexer.php' => '580d41b2ebfb016fff416f9cea38dd57',
'./lib/Search/ElasticSearch/ElasticSearchModuleDataPuller.php' => 'ad1144c9e9f58af496714d6dcdbdbaa5',
'./lib/Search/ElasticSearch/elasticsearch.example.json' => 'cd776b60993b4521cd5cfd79db95af46',
'./lib/Search/Exceptions/SearchEngineNotFoundException.php' => '4f83830aea088643ee87f82bd173d96d',
@ -2817,7 +2817,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' => '21c2ecf52498c7e3109464e4fddd32a7',
'./lib/Search/UI/SearchResultsController.php' => '4670567daea7e976e25cd215150f79ed',
'./lib/Search/UI/SearchResultsView.php' => 'ce2615a6390cfe62924d44fdfc7a18fa',
'./lib/Search/UI/SearchThrowableHandler.php' => '14cd2232a5a73df32a755e85a52cd7fd',
'./lib/Search/UI/templates/search.form.tpl' => '8a03f27dd8860270f7c91d64c211fffe',
@ -3241,7 +3241,7 @@ $md5_string = array (
'./modules/AOP_Case_Updates/AOPAssignManager.php' => 'ecc13c6a6f19283ca117b723e4da66b0',
'./modules/AOP_Case_Updates/AOP_Case_Updates.php' => 'd30f3d009b0771ee2affc24df2b38583',
'./modules/AOP_Case_Updates/CaseUpdatesHook.php' => '807c6fd3beeacfc4ecafcfb6856f9029',
'./modules/AOP_Case_Updates/Case_Updates.php' => 'b8bcf0da7510631fb30a38e6407517fc',
'./modules/AOP_Case_Updates/Case_Updates.php' => '29b7e3898d326b30046252a5e3998845',
'./modules/AOP_Case_Updates/language/en_us.lang.php' => '1de0ca09e21d68bdde37e3e9676109e8',
'./modules/AOP_Case_Updates/metadata/SearchFields.php' => '1c8b860ef1fb5e03c01858d167dc5b0f',
'./modules/AOP_Case_Updates/metadata/dashletviewdefs.php' => '8843f4ea1dcf8335ad7999efcbc3082f',
@ -3315,7 +3315,7 @@ $md5_string = array (
'./modules/AOR_Reports/Dashlets/AORReportsDashlet/dashlet.tpl' => 'f988fd02f7700fbb9c3d3dae265c6f77',
'./modules/AOR_Reports/Dashlets/AORReportsDashlet/dashletConfigure.tpl' => '78ca8ef4909602f45d9a5455682502f6',
'./modules/AOR_Reports/Menu.php' => '91f8cfce443d92348c4c50de8d19a499',
'./modules/AOR_Reports/aor_utils.php' => '2ff4ebfe366d42212faee8277bd3a2ee',
'./modules/AOR_Reports/aor_utils.php' => '5844b890c4e75316b43900082119556f',
'./modules/AOR_Reports/controller.php' => '2dcb6e36934339f8e5f3d76454862a02',
'./modules/AOR_Reports/js/Chart.js' => 'ce39265cf9293096f8d19930bf98b5c0',
'./modules/AOR_Reports/js/jqtree/jqtree.css' => '3f8e2b17df7771293bdcc4622dd24f42',
@ -3342,7 +3342,7 @@ $md5_string = array (
'./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/emailRecipients.php' => '78f2f863b2a01da1202d90d20fdc937c',
'./modules/AOR_Scheduled_Reports/language/en_us.lang.php' => 'ca123922d16612bb5e5211e2428b4b0f',
'./modules/AOR_Scheduled_Reports/lib/Cron/AbstractField.php' => '9b4d30db269bfdbff0be204362f3b5aa',
'./modules/AOR_Scheduled_Reports/lib/Cron/CronExpression.php' => '54395e85cb7470b88bb0897706de9d5e',
@ -3545,7 +3545,7 @@ $md5_string = array (
'./modules/AOS_Quotes/vardefs.php' => '9c6fa75bf5b4ca2898ab4595e2db6b10',
'./modules/AOS_Quotes/views/view.detail.php' => '7050a7beda6b696f1bc19dc5da86d2bd',
'./modules/AOS_Quotes/views/view.edit.php' => 'd7febe2bec502ba7d36aa5d4d8d6207c',
'./modules/AOW_Actions/AOW_Action.php' => 'c8779d81f2e8fda4f01139ba560706eb',
'./modules/AOW_Actions/AOW_Action.php' => '4dbe91f2bac732292e9992f89a73b852',
'./modules/AOW_Actions/FormulaCalculator.php' => 'b8e36954646d4716949264e2fc2808af',
'./modules/AOW_Actions/actionLines.js' => 'de3626663801a14f67f46649d6983fd6',
'./modules/AOW_Actions/actionLines.php' => '6bb52c4830237a808c51e18b8c7e954c',
@ -3584,7 +3584,7 @@ $md5_string = array (
'./modules/AOW_Processed/metadata/subpanels/default.php' => 'a854bad4c87fee3ae01b971e88041b66',
'./modules/AOW_Processed/vardefs.php' => 'b8116bafbeac63b860466832c444da40',
'./modules/AOW_Processed/views/view.list.php' => '2f4404c998460f095e3affe63ce1958d',
'./modules/AOW_WorkFlow/AOW_WorkFlow.php' => '83b3009636ab14da43bb0e1b1f7112b6',
'./modules/AOW_WorkFlow/AOW_WorkFlow.php' => '87b0dfb0b76543340d8d42ce440f52f3',
'./modules/AOW_WorkFlow/Dashlets/AOW_WorkFlowDashlet/AOW_WorkFlowDashlet.meta.php' => '307d5c5c4e36070f26fcd7019a7c3ce7',
'./modules/AOW_WorkFlow/Dashlets/AOW_WorkFlowDashlet/AOW_WorkFlowDashlet.php' => '9b68831e41b81207bf2e3a1a42b266b2',
'./modules/AOW_WorkFlow/Menu.php' => 'bda4b71d876e065f7661bce4a91bde57',
@ -3701,6 +3701,7 @@ $md5_string = array (
'./modules/Administration/RebuildSchedulers.php' => 'd29bcc29874867df0798a73b39d2c47f',
'./modules/Administration/RebuildSprites.php' => 'a65e1ab5f64999cc3ba51720f8ef240a',
'./modules/Administration/RepairActivities.php' => 'a2b5f54f5763b8ce6a47409f5294a6bf',
'./modules/Administration/RepairESIndex.php' => 'f6f7c6ac2f6825063fe9b630ac09d64a',
'./modules/Administration/RepairFieldCasing.php' => '7cab45ae28a2ae4bf1b874a3e4c8565a',
'./modules/Administration/RepairIE.php' => '9219b59ad28c4160a3a2317a2c4eb7e3',
'./modules/Administration/RepairIndex.php' => 'f763589301012c372749be487308177f',
@ -3733,7 +3734,7 @@ $md5_string = array (
'./modules/Administration/SyncInboundEmailAccounts.php' => '12d7e813df836c9791c0335e4f04bbe5',
'./modules/Administration/Updater.html' => '41dafda58b09eb9893644d0e6b13499f',
'./modules/Administration/Updater.php' => '8c6ed7adff356877fd3a52525e42f7fe',
'./modules/Administration/Upgrade.php' => 'f6c184f9c7de11b52c9120a121a9682e',
'./modules/Administration/Upgrade.php' => '0923bd7f06f07a793d75099119a8a582',
'./modules/Administration/UpgradeAccess.php' => '518f0ddc85cb427d55161878f2432761',
'./modules/Administration/UpgradeFields.php' => 'd74cb90a6a24cae3c0b96a97a74d4d62',
'./modules/Administration/UpgradeHistory.php' => '14ba994d7b1d5eccfc4520855a0c4036',
@ -3752,11 +3753,11 @@ $md5_string = array (
'./modules/Administration/index.tpl' => 'e2267cd142b9509c13eaed32180e5e88',
'./modules/Administration/javascript/Administration.js' => '3548a43145e0b00b880d50fce62126f6',
'./modules/Administration/javascript/Async.js' => '7cda344ae778c0633b8941dcc6fd2bd6',
'./modules/Administration/language/en_us.lang.php' => 'c87032b4ab17ef84ebadba8fdcff2b74',
'./modules/Administration/language/en_us.lang.php' => 'd8ccac3816ffad28005a4a4ab0bbd0da',
'./modules/Administration/metadata/SearchFields.php' => '678fb87cfc3b3e95d7e7ea8a72d8da16',
'./modules/Administration/metadata/adminpaneldefs.php' => 'f4a4741b7165c657d017869bdc10bc67',
'./modules/Administration/ncc_config.php' => '643e7a46ad14a6aed7431c6679362b95',
'./modules/Administration/repairDatabase.php' => 'e5e4d6496225abf7b867a595aad2538c',
'./modules/Administration/repairDatabase.php' => '237183a42ea27d8a3fddccc3f448d8a6',
'./modules/Administration/repairSelectModule.php' => '9588bcfaff9028bf6849038f108079f1',
'./modules/Administration/repairUniSearch.php' => 'e183e75f319a873c240187ff28b43c97',
'./modules/Administration/templates/ConfigureAjaxUI.tpl' => '775cac31c28da87d2c778d4f747d94dc',
@ -4126,7 +4127,7 @@ $md5_string = array (
'./modules/Cases/SugarFeeds/CaseFeed.php' => '10c3a3b5e15feb157ce1d4fba2d590ec',
'./modules/Cases/controller.php' => 'e167eae0ba5fceb883c9c497a7c72bc8',
'./modules/Cases/field_arrays.php' => '9f9ffb77f698d463d5e3dbfd5ec9ce13',
'./modules/Cases/language/en_us.lang.php' => '62ae64ee24b1cec7e1696e6d85b36e90',
'./modules/Cases/language/en_us.lang.php' => '891efc07f91a869302daf7cf06de8a3b',
'./modules/Cases/metadata/SearchFields.php' => '161e9cb4706e372b4c07ee52bb952de4',
'./modules/Cases/metadata/accountsquickcreatedefs.php' => 'a1abb219d41e7c9184864fd76cc8f53e',
'./modules/Cases/metadata/additionalDetails.php' => '5f1ed089f252ea3729f4e6c2e71a04e3',
@ -4348,6 +4349,7 @@ $md5_string = array (
'./modules/DocumentRevisions/language/en_us.lang.php' => '4598eccdeac7266ae5bb8d54067145fb',
'./modules/DocumentRevisions/metadata/detailviewdefs.php' => '403ac46f2519466b136c1c85335c94e4',
'./modules/DocumentRevisions/metadata/editviewdefs.php' => '2b5aec24a3b67bb0753a0c72cc85ca0d',
'./modules/DocumentRevisions/metadata/listviewdefs.php' => 'd197180ee3230677d28b639aa18ddec5',
'./modules/DocumentRevisions/metadata/subpanels/default.php' => '784b751fbe0a1e0dc4bb3740e901e292',
'./modules/DocumentRevisions/subpanels/default.php' => 'e17aee02acb4c22c3b6edb51393387d4',
'./modules/DocumentRevisions/vardefs.php' => '99965f1a1689c8998e293b50cf888ae7',
@ -4570,7 +4572,7 @@ $md5_string = array (
'./modules/Emails/EmailFromValidator.php' => '275e4e1167d68361483e18bae111fdc3',
'./modules/Emails/EmailUI.css' => '79ef2b93606dc4b6d4e04b679c0b898f',
'./modules/Emails/EmailUI.php' => 'f8b37b1db23d7baaa64d8eb4a99d2d02',
'./modules/Emails/EmailUIAjax.php' => '7f713f747abee16c18b1007e1c477b22',
'./modules/Emails/EmailUIAjax.php' => 'e8ca80abd46dca3c8b3f2da6fe3493e5',
'./modules/Emails/EmailValidatorException.php' => 'cb225382f8842456d005769be4f3752d',
'./modules/Emails/EmailsController.php' => '9a70756105e5fba7221fd7d77f02ae45',
'./modules/Emails/EmailsControllerActionGetFromFields.php' => 'b9d8167b00bff53cf76503c5023207f7',
@ -4709,7 +4711,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' => '2a70486e775ccc8e4c36176855d5c1e7',
'./modules/Employees/Employee.php' => '54eaa8f299aa57e555f316b80e71eaab',
'./modules/Employees/EmployeeStatus.php' => 'a2be5cfeb49ef4f8deec01de9686edb9',
'./modules/Employees/EmployeesSearchForm.php' => '0437d91e2221d02c38e0db6830fef057',
'./modules/Employees/EmployeesStudioModule.php' => '5b71bea7b6e7b7a77bc5a48d4fb10a55',
@ -5105,7 +5107,7 @@ $md5_string = array (
'./modules/ModuleBuilder/MB/MBField.php' => '8346b8651dc1261b83a6373d28294acc',
'./modules/ModuleBuilder/MB/MBLanguage.php' => '37466f33dac7c8f2c1456d8b6e8122c4',
'./modules/ModuleBuilder/MB/MBModule.php' => '51c606306e2659ea1550346092a5301f',
'./modules/ModuleBuilder/MB/MBPackage.php' => '374693e82e860996202c81a9a46ba8c7',
'./modules/ModuleBuilder/MB/MBPackage.php' => '097870ecd9d7716e555217c1f5fb1e5e',
'./modules/ModuleBuilder/MB/MBPackageTree.php' => '1aa47b536ea24cd3a9d91de1a62d8974',
'./modules/ModuleBuilder/MB/MBRelationship.php' => 'cc22bd89304c354b4f33f9fe0f9776e0',
'./modules/ModuleBuilder/MB/MBVardefs.php' => 'c208c736529cc88c3d4ae23be15a5273',
@ -5264,7 +5266,7 @@ $md5_string = array (
'./modules/Notes/metadata/subpanels/ForTasks.php' => '40145366769a01111b88c9ab2fad82e5',
'./modules/Notes/metadata/subpanels/default.php' => 'e2d4c4fa0c5e46c8a1e69f2b00de9101',
'./modules/Notes/tpls/QuickCreate.tpl' => '329a21edbab2d4181cf6db7fc28edd3a',
'./modules/Notes/vardefs.php' => '24ded0a995001ad9fcc76c87a539a40b',
'./modules/Notes/vardefs.php' => 'b9ef43050cd204496c101efbb2bac717',
'./modules/OAuth2Clients/Menu.php' => '543ff4403826bdf5cb75db86bfb26530',
'./modules/OAuth2Clients/OAuth2Clients.php' => 'c8d96775b766e4c90fa78f1c23688a09',
'./modules/OAuth2Clients/controller.php' => 'bf680521d60e7e64e7966415f1a3e79c',
@ -5377,7 +5379,7 @@ $md5_string = array (
'./modules/OutboundEmailAccounts/metadata/dashletviewdefs.php' => '93e262245007ffc79f1ff9938e8bbac9',
'./modules/OutboundEmailAccounts/metadata/detailviewdefs.php' => '948df4801e3d229ea4bac06e247fd643',
'./modules/OutboundEmailAccounts/metadata/editviewdefs.php' => 'f28a1bf18ca13bcfe8229c1d5fa6eee4',
'./modules/OutboundEmailAccounts/metadata/listviewdefs.php' => 'b55ab9fcc7b7fe5dc24847570f53c5c6',
'./modules/OutboundEmailAccounts/metadata/listviewdefs.php' => '82a5ef5ac3d3c79f653e91f2b2b4a7b8',
'./modules/OutboundEmailAccounts/metadata/metafiles.php' => 'd163cfdaa7fa3d697326f798bbcc6867',
'./modules/OutboundEmailAccounts/metadata/popupdefs.php' => '3464601d89e63838c93f7bfcd2142eec',
'./modules/OutboundEmailAccounts/metadata/quickcreatedefs.php' => 'c738540479456935212e6b806706002a',
@ -5563,7 +5565,7 @@ $md5_string = array (
'./modules/Releases/index.php' => '14eeff0adff24adaaf0daedd79c32025',
'./modules/Releases/language/en_us.lang.php' => 'c206420592b1fe91bf7c661e3d553026',
'./modules/Releases/vardefs.php' => 'fd6ceab4be2485d6830d2b54da6adbad',
'./modules/Reminders/Reminder.php' => '66dacac89651ac5ba6b14f60b566a1f1',
'./modules/Reminders/Reminder.php' => '6b47f85e7dc0f15d530e573bb9347611',
'./modules/Reminders/Reminders.js' => 'a06c0debed48cb105b64bf10b3e75f42',
'./modules/Reminders/controller.php' => '090f3a545122167804ef80ab4b5191f8',
'./modules/Reminders/tpls/reminders.tpl' => '7433f71a887612df340689894912f9c2',
@ -5971,7 +5973,7 @@ $md5_string = array (
'./modules/Users/DetailView.js' => '18788a7b2856fd3349309142b10a9ef3',
'./modules/Users/Error.php' => '974cf5b2e9d530a56a38f54295452f12',
'./modules/Users/Forms.php' => '542f6a00ce7cf53d86c21b24b03c286f',
'./modules/Users/GeneratePassword.php' => 'f13c738da312e490dd7476ea433b6744',
'./modules/Users/GeneratePassword.php' => 'ce4e1a99a11fa50274729f77cf174620',
'./modules/Users/GoogleApiKeySaverEntryPoint.php' => '31a2b6771f4b67065a06bf5aa4133ecb',
'./modules/Users/ListRoles.php' => '470204e9dd0e9421f06f7304cf72e063',
'./modules/Users/LoggedOut.php' => '651bfc7c6c36f3791c2693bda075beb9',
@ -6000,7 +6002,7 @@ $md5_string = array (
'./modules/Users/UserEmailSettingsGeneral.tpl' => '1147e620d08d8c2935818880b7e70a70',
'./modules/Users/UserSignature.php' => '32b4a987d2ab4f17b1e7bf73c67b8750',
'./modules/Users/UserSignatureEditView.html' => 'a01adafa8bd9ec9d318efc523407f420',
'./modules/Users/UserViewHelper.php' => '5075f05881da122b78012a7e54ea0894',
'./modules/Users/UserViewHelper.php' => 'fe9100e3cb93801f9c41fee66e03687b',
'./modules/Users/_baseEmail.tpl' => '9f2a32a843c5c1c604d100a3038e485d',
'./modules/Users/authentication/AuthenticationController.php' => '6bfd21874b91a6c60e23a3b130822366',
'./modules/Users/authentication/EmailAuthenticate/EmailAuthenticate.php' => '5431ed79bc9a500eb22a1db83b215b8d',
@ -6278,7 +6280,7 @@ $md5_string = array (
'./soap.php' => 'e28988c2e0b8e2c484587b537a710525',
'./sugar_version.json' => 'bdfbcefae2f9af559bef6a36367df7bb',
'./sugar_version.php' => 'db7b6c8d51f87879fce1e6172eedfbed',
'./suitecrm_version.php' => 'ca63be6450f640c51374204de48164c8',
'./suitecrm_version.php' => '1c75d8f4034d891ea75f5d97e21b2b91',
'./themes/SuiteP/css/Dawn/color-palette.scss' => 'e64677d79e1d68c069bdc2dc661c4f99',
'./themes/SuiteP/css/Dawn/icons.scss' => 'd59f8c5855e7a8df09542a663835a196',
'./themes/SuiteP/css/Dawn/select.ico' => '22393ad23f16c3f1462455bae8f20279',
@ -6287,16 +6289,19 @@ $md5_string = array (
'./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/select.ico' => '22393ad23f16c3f1462455bae8f20279',
'./themes/SuiteP/css/Day/style.css' => 'd3ed65091e72cefe776e2785ab35c563',
'./themes/SuiteP/css/Day/style.scss' => '61ac0ca8c47681b284ecbf14755d18ed',
'./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/select.ico' => '22393ad23f16c3f1462455bae8f20279',
'./themes/SuiteP/css/Dusk/style.css' => 'a3944925c2ef23e1049aabd7fff09657',
'./themes/SuiteP/css/Dusk/style.scss' => 'f027cdfded90564faebf0d52ba1ae8b3',
'./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/select.ico' => '22393ad23f16c3f1462455bae8f20279',
'./themes/SuiteP/css/Night/style.css' => 'ec06d43d204f4207ec5be5bb8e6ebfb1',
'./themes/SuiteP/css/Night/style.scss' => 'cda3113e25e5545fe11f33252fbcbe11',
'./themes/SuiteP/css/Night/variables.scss' => '4fc04d66ddb30f18da508b82e71a6cde',
@ -7721,7 +7726,7 @@ $md5_string = array (
'./themes/SuiteP/include/SearchForm/tpls/footer.tpl' => 'e07c5438ccf5465ceee1f1e6822f4be4',
'./themes/SuiteP/include/SearchForm/tpls/header.tpl' => 'e2c095528c6a972b5a837ba49a235c72',
'./themes/SuiteP/include/SubPanel/tpls/SubPanelDynamic.tpl' => '8c9a5eb93cd18aa2c2c64c4321cfa7ba',
'./themes/SuiteP/include/SubPanel/tpls/SubPanelTiles.tpl' => 'f62b90d0244f16df72812b005b609975',
'./themes/SuiteP/include/SubPanel/tpls/SubPanelTiles.tpl' => 'ebad55a292d7f480358d049fae7e6884',
'./themes/SuiteP/include/SubPanel/tpls/singletabmenu.tpl' => 'b0aaf100adec561aadc993d3daac2193',
'./themes/SuiteP/js/arrow.gif' => '5034704a76cd55c1cbcbc58ea6bf523f',
'./themes/SuiteP/js/cross.gif' => 'ba9a274b9323753cd95bc3b1eb2f4e5f',

View file

@ -107,7 +107,7 @@ class ImapHandler implements ImapHandlerInterface
protected function setStream($stream, $validate = true)
{
if ($validate && !is_resource($stream)) {
$this->logger->error('ImapHandler trying to set a non valid resource az stream.');
$this->logger->warn('ImapHandler trying to set a non valid resource az stream.');
}
$this->stream = $stream;
}
@ -120,7 +120,7 @@ class ImapHandler implements ImapHandlerInterface
protected function getStream($validate = true)
{
if ($validate && !is_resource($this->stream)) {
$this->logger->error('ImapHandler trying to use a non valid resource stream.');
$this->logger->warn('ImapHandler trying to use a non valid resource stream.');
}
return $this->stream;

View file

@ -500,6 +500,8 @@ class OutboundEmail
*/
public function save()
{
$this->checkSavePermissions();
require_once('include/utils/encryption_utils.php');
if (empty($this->id)) {
$this->id = create_guid();
@ -657,4 +659,44 @@ class OutboundEmail
return $this->retrieve($a['id']);
}
/**
* @return void
*/
protected function checkSavePermissions(): void
{
global $log;
$original = null;
if (!empty($this->id)) {
$original = new OutboundEmail();
$original->retrieve($this->id);
}
if (empty($original)) {
$original = $this;
}
$type = $this->type ?? '';
$authenticatedUser = get_authenticated_user();
if ($authenticatedUser === null) {
$log->security("OutboundEmail::checkSavePermissions - not logged in - skipping check");
return;
}
if ($type === 'system' && !is_admin($authenticatedUser)) {
$log->security("OutboundEmail::checkSavePermissions - trying to save a system outbound email with non-admin user");
throw new RuntimeException('Access denied');
}
$oeUserId = $original->user_id ?? '';
if (!empty($oeUserId) && $oeUserId !== $authenticatedUser->id && !is_admin($authenticatedUser)) {
$log->security("OutboundEmail::checkSavePermissions - trying to save a outbound email for another user");
throw new RuntimeException('Access denied');
}
}
}

View file

@ -454,6 +454,7 @@ class SubPanelTiles
[
'buttons' => $buttons,
'class' => 'clickMenu fancymenu',
'flat' => $thisPanel->get_inst_prop_value('flat')
],
$this->xTemplate
);

View file

@ -68,6 +68,9 @@ function updateCRONFields(id){
if(month !== '*'){
canShowBasic = false;
}
if(!mins && !hours && !day && !month && !weekday){
canShowBasic = true;//New field
}
if(!canShowBasic){
$('#'+id+'_raw').attr('checked',true);
$('#'+id+'_raw').change();

View file

@ -162,6 +162,22 @@ class Sugar_Smarty extends Smarty
parent::_smarty_include($params);
}
/**
* compile the template and clear opcache
*
* @param string $resource_name
* @param string $compile_path
* @return boolean
*/
function _compile_resource($resource_name, $compile_path)
{
if(parent::_compile_resource($resource_name, $compile_path)) {
SugarCache::cleanFile($compile_path);
return true;
}
return false;
}
/**
* Log smarty error out to default log location
* @param string $error_msg

View file

@ -112,6 +112,12 @@ class SugarWidgetSubPanelDetailViewLink extends SugarWidgetField
}
$action = 'DetailView';
if($module === "Emails"){
$email = BeanFactory::getBean($module, $record);
if($email->status === "draft"){
$action = 'DetailDraftView';
}
}
$value = $layout_def['fields'][$key];
global $current_user;
if (!empty($record) &&

View file

@ -496,6 +496,13 @@ function get_sugar_config_defaults(): array
'jpg'
],
'upload_maxsize' => 30000000,
'allowed_preview' => [
'pdf',
'gif',
'png',
'jpeg',
'jpg'
],
'import_max_execution_time' => 3600,
// 'use_php_code_json' => returnPhpJsonStatus(),
'verify_client_ip' => true,
@ -880,6 +887,27 @@ function get_user_name($id)
return (empty($a)) ? '' : $a['user_name'];
}
/**
* Get currently authenticated user
* @return User
*/
function get_authenticated_user(): ?User {
$authenticatedUserId = $_SESSION['authenticated_user_id'] ?? '';
if (empty($authenticatedUserId)){
return null;
}
/** @var User $authenticatedUser */
$authenticatedUser = BeanFactory::getBean('Users', $authenticatedUserId);
if (empty($authenticatedUser)) {
return null;
}
return $authenticatedUser;
}
//TODO Update to use global cache
/**
* get_user_array.

View file

@ -546,7 +546,7 @@ class ElasticSearchIndexer extends AbstractIndexer
private function makeParamsHeaderFromBean(SugarBean $bean): array
{
return [
'index' => $bean->module_name,
'index' => strtolower($bean->module_name),
'id' => $bean->id,
];
}

View file

@ -106,7 +106,7 @@ class SearchResultsController extends Controller
LoggerManager::getLogger()->warn('Failed to fetch list-view headers: ' . $e->getMessage());
}
$total = count($this->results->getHits());
$total = $this->results->getTotal();
if ($total > 1) {
$size = $this->query->getSize();
if ($size) {
@ -132,10 +132,9 @@ class SearchResultsController extends Controller
throw new SearchException('Search Size can not be Zero.', SearchException::ZERO_SIZE);
}
}
$totalResults = $this->results->getTotal();
$smarty = $this->view->getTemplate();
$smarty->assign('total', $totalResults);
$smarty->assign('total', $total);
$smarty->assign('headers', $headers);
$smarty->assign('results', $this->results);
try {
@ -191,6 +190,10 @@ class SearchResultsController extends Controller
$viewList->module = $module;
$metaDataFile = $viewList->getMetaDataFile();
if(empty($metaDataFile)) {
$GLOBALS['log']->error('getListViewDefs error: No listviewdefs file found for '.$module);
continue;
}
/** @noinspection PhpIncludeInspection */
require($metaDataFile);
}

View file

@ -224,7 +224,7 @@ function getUpdateDisplayHead(SugarBean $update)
} elseif ($update->assigned_user_id) {
$name = $update->getUpdateUser()->name;
} else {
$name = 'Unknown';
$name = $mod_strings['LBL_UNKNOWN_CONTACT'];
}
$html = "<a href='' onclick='toggleCaseUpdate(\"" . $update->id . "\");return false;'>";
$html .= "<img id='caseUpdate" .
@ -281,14 +281,12 @@ function display_single_update(AOP_Case_Updates $update)
}
/*if contact user*/
if ($update->contact_id) {
$html = "<div id='extramargin'><div id='caseStyleContact'>" . getUpdateDisplayHead($update);
$html .= "<div id='caseUpdate" . $update->id . "' class='caseUpdate'>";
$html .= nl2br(html_entity_decode($update->description));
$html .= '</div></div></div>';
$html = "<div id='extramargin'><div id='caseStyleContact'>" . getUpdateDisplayHead($update);
$html .= "<div id='caseUpdate" . $update->id . "' class='caseUpdate'>";
$html .= html_entity_decode($update->description);
$html .= '</div></div></div>';
return $html;
}
return $html;
}
/**

View file

@ -228,7 +228,7 @@ function getConditionsAsParameters($report, $override = array())
*/
function getPeriodDate($date_time_period_list_selected)
{
global $sugar_config;
global $sugar_config, $timedate;
$datetime_period = new DateTime();
// Setup when year quarters start & end
@ -324,6 +324,8 @@ function getPeriodDate($date_time_period_list_selected)
// set time to 00:00:00
$datetime_period = $datetime_period->setTime(0, 0, 0);
$datetime_period->sub(DateInterval::createFromDateString($timedate->getUserUTCOffset().' minutes'));
return $datetime_period;
}
@ -334,6 +336,7 @@ function getPeriodDate($date_time_period_list_selected)
*/
function getPeriodEndDate($dateTimePeriodListSelected)
{
global $timedate;
switch ($dateTimePeriodListSelected) {
case 'today':
$datetimePeriod = new DateTime();
@ -409,7 +412,7 @@ function getPeriodEndDate($dateTimePeriodListSelected)
$datetimePeriod->setTime(0, 0, 0);
break;
}
$datetimePeriod->sub(DateInterval::createFromDateString($timedate->getUserUTCOffset().' minutes'));
return $datetimePeriod;
}

View file

@ -48,7 +48,7 @@ function display_email_lines($focus, $field, $value, $view)
$html .= '<input type="hidden" name="aor_email_type_list" id="aor_email_type_list" value="' . get_select_options_with_id($app_list_strings['aor_email_type_list'], '') . '">
<input type="hidden" name="aor_email_to_list" id="aor_email_to_list" value="' . get_select_options_with_id($app_list_strings['aor_email_to_list'], '') . '">';
$html .= '<button type="button" onclick="add_emailLine()"><img src="' . SugarThemeRegistry::current()->getImageURL('id-ff-add.png') . '"></button>';
$html .= '<button type="button" class="button" onclick="add_emailLine()"><img src="' . SugarThemeRegistry::current()->getImageURL('id-ff-add.png') . '"></button>';
$html .= '<table id="emailLine_table" width="100%"></table>';
$html .= "<script>";

View file

@ -106,7 +106,7 @@ class AOW_Action extends Basic
} else {
if ($post_data[$key . 'param'][$i]['value_type'][$p_id] == 'Value' && is_array($p_value)) {
$param_value[$p_id] = encodeMultienumValue($p_value);
}else{
}elseif($post_data[$key . 'param'][$i]['value_type'][$p_id] == 'Value'){
$param_value[$p_id] = fixUpFormatting($params["record_type"], $post_data[$key . 'param'][$i]["field"][$p_id], $p_value);
}
}

View file

@ -300,10 +300,11 @@ class AOW_WorkFlow extends Basic
SugarBean $module,
$query = array()
) {
global $db;
if (!isset($query['join'][$name])) {
if ($module->load_relationship($name)) {
$params['join_type'] = 'LEFT JOIN';
$params['join_table_alias'] = $name;
$params['join_table_alias'] = $db->quoteIdentifier($name);
$join = $module->$name->getJoin($params, true);
$query['join'][$name] = $join['join'];

View file

@ -0,0 +1,62 @@
<?php
/**
*
* SugarCRM Community Edition is a customer relationship management program developed by
* SugarCRM, Inc. Copyright (C) 2004-2013 SugarCRM Inc.
*
* SuiteCRM is an extension to SugarCRM Community Edition developed by SalesAgility Ltd.
* Copyright (C) 2011 - 2022 SalesAgility Ltd.
*
* This program is free software; you can redistribute it and/or modify it under
* the terms of the GNU Affero General Public License version 3 as published by the
* Free Software Foundation with the addition of the following permission added
* to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED WORK
* IN WHICH THE COPYRIGHT IS OWNED BY SUGARCRM, SUGARCRM DISCLAIMS THE WARRANTY
* OF NON INFRINGEMENT OF THIRD PARTY RIGHTS.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
* details.
*
* You should have received a copy of the GNU Affero General Public License along with
* this program; if not, see http://www.gnu.org/licenses or write to the Free
* Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301 USA.
*
* You can contact SugarCRM, Inc. headquarters at 10050 North Wolfe Road,
* SW2-130, Cupertino, CA 95014, USA. or at email address contact@sugarcrm.com.
*
* The interactive user interfaces in modified source and object code versions
* of this program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU Affero General Public License version 3.
*
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
* these Appropriate Legal Notices must retain the display of the "Powered by
* SugarCRM" logo and "Supercharged by SuiteCRM" logo. If the display of the logos is not
* reasonably feasible for technical reasons, the Appropriate Legal Notices must
* display the words "Powered by SugarCRM" and "Supercharged by SuiteCRM".
*/
use SuiteCRM\Search\ElasticSearch\ElasticSearchIndexer;
if (!defined('sugarEntry') || !sugarEntry) {
die('Not A Valid Entry Point');
}
global $sugar_config, $mod_strings;
if (!is_admin($current_user)) {
sugar_die($GLOBALS['app_strings']['ERR_NOT_ADMIN']);
}
if (empty($sugar_config['search']['ElasticSearch']['enabled']) || isFalse($sugar_config['search']['ElasticSearch']['enabled'])) {
echo $mod_strings['LBL_SETUP_ELASTICSEARCH'];
return;
}
echo $mod_strings['LBL_REPAIR_ELASTICSEARCH_INDEX_DONE'];
// repair elastic search index
ElasticSearchIndexer::repairElasticsearchIndex();

View file

@ -70,6 +70,10 @@ if (DBManagerFactory::getInstance()->supports('fulltext')) {
<td scope="row"><?php echo SugarThemeRegistry::current()->getImage('Repair', 'align="absmiddle" border="0"', null, null, '.gif', $mod_strings['LBL_EXPAND_DATABASE_COLUMNS']); ?>&nbsp;<a href="./index.php?module=Administration&action=expandDatabase"><?php echo $mod_strings['LBL_EXPAND_DATABASE_COLUMNS']; ?></a></td>
<td> <?php echo $mod_strings['LBL_EXPAND_DATABASE_COLUMNS_DESC'] ; ?> </td>
</tr>
<tr>
<td scope="row"><?php echo SugarThemeRegistry::current()->getImage('Repair', 'align="absmiddle" border="0"', null, null, '.gif', $mod_strings['LBL_REPAIR_ELASTICSEARCH_INDEX']); ?>&nbsp;<a href="./index.php?module=Administration&action=RepairESIndex"><?php echo $mod_strings['LBL_REPAIR_ELASTICSEARCH_INDEX']; ?></a></td>
<td> <?php echo $mod_strings['LBL_REPAIR_ELASTICSEARCH_INDEX'] ; ?> </td>
</tr>
<tr>
<?php
$server_software = $_SERVER["SERVER_SOFTWARE"];

View file

@ -615,6 +615,8 @@ $mod_strings = array(
'LBL_QUICK_REPAIR_TITLE' => 'Please select Module(s) to repair:',
'LBL_QUICK_REPAIR_AND_REBUILD_DESC' => 'Repairs and rebuilds DB, Extensions, Vardefs, SuiteCRM Dashlets etc.',
'LBL_ALL_MODULES' => 'All Modules',
'LBL_REPAIR_ELASTICSEARCH_INDEX' => 'Repair ElasticSearch Index',
'LBL_REPAIR_ELASTICSEARCH_INDEX_DONE' => 'ElasticSearch Indexing has been repaired',
'LBL_CAMPAIGN_CONFIG_TITLE' => 'Campaign Email Settings',
'LBL_CAMPAIGN_CONFIG_DESC' => 'Configure email settings for campaigns',
'LBL_REPAIR_ORACLE_FULLTEXT' => 'Rebuild fulltext indices',
@ -931,6 +933,7 @@ $mod_strings = array(
'LBL_ELASTIC_SEARCH_TEST_CONNECTION' => 'Test connection',
'LBL_ELASTIC_SEARCH_TEST_CONNECTION_SUCCESS' => 'Connection successful.',
'LBL_ELASTIC_SEARCH_TEST_CONNECTION_FAIL' => 'Connection failed.',
'LBL_SETUP_ELASTICSEARCH' => 'Please enable ElasticSearch before repairing Indexes',
'LBL_ELASTIC_SEARCH_TEST_CONNECTION_ERROR' => 'Failed perform ping request.',
'LBL_ELASTIC_SEARCH_SERVER' => 'Server',
'LBL_ELASTIC_SEARCH_HOST' => 'Host',

View file

@ -38,8 +38,6 @@
* display the words "Powered by SugarCRM" and "Supercharged by SuiteCRM".
*/
use SuiteCRM\Search\ElasticSearch\ElasticSearchIndexer;
if (!defined('sugarEntry') || !sugarEntry) {
die('Not A Valid Entry Point');
}
@ -56,9 +54,6 @@ if (is_admin($current_user) || isset($from_sync_client) || is_admin_for_any_modu
isset($_REQUEST['execute'])? $execute=$_REQUEST['execute'] : $execute= false;
$export = false;
$isElasticSearchEnabled = isset($sugar_config['search']['ElasticSearch']['enabled']) ?
$sugar_config['search']['ElasticSearch']['enabled'] : false;
if (count($_POST) && isset($_POST['raction'])) {
if (isset($_POST['raction']) && strtolower($_POST['raction']) == "export") {
//jc - output buffering is being used. if we do not clean the output buffer
@ -102,10 +97,6 @@ if (is_admin($current_user) || isset($from_sync_client) || is_admin_for_any_modu
}
echo "<h3>{$mod_strings['LBL_REPAIR_DATABASE_SYNCED']}</h3>";
if ($isElasticSearchEnabled === true) {
ElasticSearchIndexer::repairElasticsearchIndex();
}
}
} else {
if (!$export && empty($_REQUEST['repair_silent'])) {
@ -184,10 +175,6 @@ if (is_admin($current_user) || isset($from_sync_client) || is_admin_for_any_modu
echo $ss->fetch('modules/Administration/templates/RepairDatabase.tpl');
} else {
echo "<h3>{$mod_strings['LBL_REPAIR_DATABASE_SYNCED']}</h3>";
if ($isElasticSearchEnabled === true) {
ElasticSearchIndexer::repairElasticsearchIndex();
}
}
}
}

View file

@ -55,8 +55,6 @@ $mod_strings = array(
'LBL_SUGGESTION_BOX_STATUS' => 'Status',
'LBL_SUGGESTION_BOX_TITLE' => 'Title',
'LBL_SUGGESTION_BOX_REL' => 'Relevance',
'LBL_TOTAL_CASES_FOR_THIS_ACCOUNT' => ' Total Cases For This Account: ',
'LBL_ACCOUNT_ID' => 'Account ID',
'LBL_ACCOUNT_NAME' => 'Account Name:',
@ -129,6 +127,5 @@ $mod_strings = array(
'LBL_CONTACT_CREATED_BY_NAME' => 'Created by contact',
'LBL_CONTACT_CREATED_BY' => 'Created by',
'LBL_CASE_UPDATE_FORM' => 'Updates - Attachment form', //Form for attachments on case updates
'LBL_SINCE' => 'Since: ',
'LBL_OPEN_CASES' => 'Cases Open',
'LBL_UNKNOWN_CONTACT' => 'Unknown Contact',
);

View file

@ -0,0 +1,81 @@
<?php
if (!defined('sugarEntry') || !sugarEntry) {
die('Not A Valid Entry Point');
}
/**
*
* SugarCRM Community Edition is a customer relationship management program developed by
* SugarCRM, Inc. Copyright (C) 2004-2013 SugarCRM Inc.
*
* SuiteCRM is an extension to SugarCRM Community Edition developed by SalesAgility Ltd.
* Copyright (C) 2011 - 2018 SalesAgility Ltd.
*
* This program is free software; you can redistribute it and/or modify it under
* the terms of the GNU Affero General Public License version 3 as published by the
* Free Software Foundation with the addition of the following permission added
* to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED WORK
* IN WHICH THE COPYRIGHT IS OWNED BY SUGARCRM, SUGARCRM DISCLAIMS THE WARRANTY
* OF NON INFRINGEMENT OF THIRD PARTY RIGHTS.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
* details.
*
* You should have received a copy of the GNU Affero General Public License along with
* this program; if not, see http://www.gnu.org/licenses or write to the Free
* Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301 USA.
*
* You can contact SugarCRM, Inc. headquarters at 10050 North Wolfe Road,
* SW2-130, Cupertino, CA 95014, USA. or at email address contact@sugarcrm.com.
*
* The interactive user interfaces in modified source and object code versions
* of this program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU Affero General Public License version 3.
*
* In accordance with Section 7(b) of the GNU Affero General Public License version 3,
* these Appropriate Legal Notices must retain the display of the "Powered by
* SugarCRM" logo and "Supercharged by SuiteCRM" logo. If the display of the logos is not
* reasonably feasible for technical reasons, the Appropriate Legal Notices must
* display the words "Powered by SugarCRM" and "Supercharged by SuiteCRM".
*/
$listViewDefs['DocumentRevisions'] = array(
'FILENAME' =>
array(
'width' => '20%',
'label' => 'LBL_REV_LIST_FILENAME',
'link' => true,
'default' => true,
'bold' => true,
),
'REVISION' =>
array(
'width' => '5%',
'label' => 'LBL_REV_LIST_REVISION',
'default' => true,
),
'DATE_ENTERED' =>
array(
'width' => '15%',
'label' => 'LBL_REV_LIST_ENTERED',
'default' => true,
),
'CREATED_BY_NAME' =>
array(
'width' => '25%',
'label' => 'LBL_REV_LIST_CREATED',
'default' => true,
'sortable' => false,
),
'CHANGE_LOG' =>
array(
'width' => '35%',
'label' => 'LBL_REV_LIST_LOG',
'default' => true,
),
);

View file

@ -103,11 +103,12 @@ $ie = BeanFactory::newBean('InboundEmail');
$ie->email = $email;
$json = getJSONobj();
global $current_user;
$showFolders = sugar_unserialize(base64_decode($current_user->getPreference('showFolders', 'Emails')));
if (isset($_REQUEST['emailUIAction'])) {
if (isset($_REQUEST['user']) && $_REQUEST['user']) {
if (isset($_REQUEST['user']) && $_REQUEST['user'] && is_admin($current_user)) {
$cid = $current_user->id;
$current_user = BeanFactory::getBean('Users', $_REQUEST['user']);
} else {

View file

@ -314,6 +314,31 @@ class Employee extends Person
}
}
if (!$this->hasSaveAccess()) {
throw new RuntimeException('Not authorized');
}
return parent::save($check_notify);
}
/**
* Check if current user can save the current employee record
* @return bool
*/
protected function hasSaveAccess(): bool
{
global $current_user;
if (empty($this->id)) {
return true;
}
if (empty($current_user->id)) {
return false;
}
$sameUser = $current_user->id === $this->id;
return $sameUser || is_admin($current_user);
}
}

View file

@ -561,18 +561,18 @@ class MBPackage
private function getCustomMetadataManifestForModule($module, &$installdefs)
{
$meta_path = 'custom/modules/' . $module . '/metadata';
$working_array = [
'editviewdefs.php',
'detailviewdefs.php',
'quickcreatedefs.php'
];
foreach (scandir($meta_path) as $meta_file) {
if (substr($meta_file, 0, 1) !== '.' && is_file($meta_path . '/' . $meta_file)) {
if ($meta_file === 'listviewdefs.php') {
$installdefs['copy'][] = array(
'from' => '<basepath>/SugarModules/modules/' . $module . '/metadata/' . $meta_file,
'to' => 'custom/modules/' . $module . '/metadata/' . $meta_file,
);
} else {
$installdefs['copy'][] = array(
'from' => '<basepath>/SugarModules/modules/' . $module . '/metadata/' . $meta_file,
'to' => 'custom/modules/' . $module . '/metadata/' . $meta_file,
);
$installdefs['copy'][] = array(
'from' => '<basepath>/SugarModules/modules/' . $module . '/metadata/' . $meta_file,
'to' => 'custom/modules/' . $module . '/metadata/' . $meta_file,
);
if (in_array($meta_file, $working_array, true)) {
$installdefs['copy'][] = array(
'from' => '<basepath>/SugarModules/modules/' . $module . '/metadata/' . $meta_file,
'to' => 'custom/working/modules/' . $module . '/metadata/' . $meta_file,

View file

@ -75,6 +75,7 @@ $dictionary['Note'] = array(
'type' => 'datetime',
'comment' => 'Date record last modified',
'enable_range_search' => true,
'options' => 'date_range_search_dom',
],
'modified_user_id' =>

View file

@ -9,26 +9,18 @@ array(
'default' => true,
'link' => true,
),
// 'ASSIGNED_USER_NAME' =>
// array (
// 'width' => '9%',
// 'label' => 'LBL_ASSIGNED_TO_NAME',
// 'module' => 'Employees',
// 'id' => 'ASSIGNED_USER_ID',
// 'default' => true,
// ),
'USERNAME' =>
'MAIL_SMTPUSER' =>
array(
'type' => 'varchar',
'label' => 'LBL_USERNAME',
'width' => '10%',
'default' => false,
'default' => true,
),
'smtp_servername' =>
'MAIL_SMTPSERVER' =>
array(
'type' => 'varchar',
'label' => 'LBL_SMTP_SERVERNAME',
'width' => '10%',
'default' => false,
'default' => true,
),
);

View file

@ -553,16 +553,21 @@ class Reminder extends Basic
/**
* Default values for Reminders from User Preferences
* @param User $user
* @return array default values
*/
public static function loadRemindersDefaultValuesData()
public static function loadRemindersDefaultValuesData($user = null)
{
global $current_user;
$preferencePopupReminderTime = $current_user->getPreference('reminder_time');
$preferenceEmailReminderTime = $current_user->getPreference('email_reminder_time');
$preferencePopupReminderChecked = $current_user->getPreference('reminder_checked');
$preferenceEmailReminderChecked = $current_user->getPreference('email_reminder_checked');
if(!$user){
$user = $current_user;
}
$preferencePopupReminderTime = $user->getPreference('reminder_time');
$preferenceEmailReminderTime = $user->getPreference('email_reminder_time');
$preferencePopupReminderChecked = $user->getPreference('reminder_checked');
$preferenceEmailReminderChecked = $user->getPreference('email_reminder_checked');
return array(
'popup' => $preferencePopupReminderChecked,

View file

@ -126,6 +126,12 @@ if (isset($_POST['Users0emailAddress0'])) {
// if i need to generate a password (not a link)
$password = $isLink ? '' : User::generatePassword();
$isPasswordGenerationActive = $res['SystemGeneratedPasswordON'] ?? false;
if(!$isLink && empty($isPasswordGenerationActive)) {
echo 'Access Denied';
return;
}
// Create URL
if ($isLink) {
global $timedate;

View file

@ -441,7 +441,7 @@ class UserViewHelper
$this->ss->assign("REMINDER_TIME", $reminder_time);
$this->ss->assign("EMAIL_REMINDER_TIME", $email_reminder_time);
$remindersDefaultPreferences = Reminder::loadRemindersDefaultValuesData();
$remindersDefaultPreferences = Reminder::loadRemindersDefaultValuesData($this->bean);
$this->ss->assign("REMINDER_CHECKED", $remindersDefaultPreferences['popup']);
$this->ss->assign("EMAIL_REMINDER_CHECKED", $remindersDefaultPreferences['email']);

View file

@ -3,6 +3,5 @@ if (!defined('sugarEntry') || !sugarEntry) {
die('Not A Valid Entry Point');
}
$suitecrm_version = '8.0.1';
$suitecrm_legacy = '7.12.6';
$suitecrm_timestamp = '2022-05-19 12:00:00';
$suitecrm_version = '7.12.7';
$suitecrm_timestamp = '2022-08-10 12:00:00';

View file

@ -221,7 +221,7 @@ class ElasticSearchIndexerTest extends SearchTestAbstract
private function getExpectedHeader(): array
{
return [
'index' => 'Contacts',
'index' => 'contacts',
'id' => '00000000-0000-0000-0000-000000000000',
];
}
@ -367,13 +367,13 @@ class ElasticSearchIndexerTest extends SearchTestAbstract
'body' => [
[
'delete' => [
'index' => 'Contacts',
'index' => 'contacts',
'id' => '00000000-0000-0000-0000-000000000000',
]
],
[
'delete' => [
'index' => 'Contacts',
'index' => 'contacts',
'id' => '00000000-0000-0000-0000-000000000000',
]
],
@ -401,7 +401,7 @@ class ElasticSearchIndexerTest extends SearchTestAbstract
$bean = $this->getTestBean();
$params = [
'index' => 'Contacts',
'index' => 'contacts',
'id' => '00000000-0000-0000-0000-000000000000',
];

View file

@ -149,8 +149,8 @@ class AOW_WorkFlowTest extends SuitePHPUnitFrameworkTestCase
//test with type relationship
$expected = array(
'join' => array('aos_products_quotes' => "LEFT JOIN aos_products_quotes aos_products_quotes ON aos_quotes.id=aos_products_quotes.parent_id AND aos_products_quotes.deleted=0\n\n"),
'select' => array("aos_products_quotes.id AS 'aos_products_quotes_id'"),
'join' => array('aos_products_quotes' => "LEFT JOIN aos_products_quotes `aos_products_quotes` ON aos_quotes.id=`aos_products_quotes`.parent_id AND `aos_products_quotes`.deleted=0\n\n"),
'select' => array("`aos_products_quotes`.id AS 'aos_products_quotes_id'"),
);
$result = $aowWorkFlow->build_flow_relationship_query_join('aos_products_quotes', BeanFactory::newBean('AOS_Quotes'), array());
self::assertSame($expected, $result);

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 5.6 KiB

Before After
Before After

View file

@ -53,7 +53,7 @@
{/literal}$('.sub-panel .table-responsive').footable();{literal}
// collapse subpanels when device is mobile / tablet
if($(window).width() <= SUGAR.measurements.breakpoints.large) {
$('.panel-collapse').removeClass('in');
$('[id^=subpanel] .panel-collapse').removeClass('in');
$('.panel-heading-collapse a').removeClass('in');
$('.panel-heading-collapse a').addClass('collapsed');
}