Squashed 'public/legacy/' changes from ee41ae127f..f7552f5bda

f7552f5bda SuiteCRM 7.13.4 Release
614f2ff6c1 Fix #9601 - Fix bug where report conditions parenthesis pairs would not save correctly.
d09a78597f Fix #10033 - PHP Fatal error Uncaught TypeError PHP8
47081de512 Fix #10051 - Add some context to the remove of ACLs during module installation
cc1d098646 Fix #9654 - Fix issue with different date formats being compared for change log
18a66f059e Fix #9816 - $item is an array, no object
723eed40a1 Fix #9516 - getRelatedId returns null instad of string
4d2496aec7 Fix #10050 - Add missing language definitions for the module loader
77a55cde25 Fix #10029 - Dashlet not changing on save
75a05ea946 Fix #10035 - Monitored Folders not selectable for Basic Auth Accounts
3991e127a8 Fix #10091 - login parameter failing
f53af1ae32 Fix #10097 - AOP Config not saving
60727e0259 Fix #9937 - Resolve high memory usage when performing bulk relationship changes
706edbb853 Fix #8682 - Workflow fails with relationship condition
9bbf5a1dba Fix #9548 - Wrong decimal precision returned in a Modify Record workflow action
8023ea003f Fix #10034 - Email Listview doesn't render, so no Emails are visible.
b9c1ee1968 Improve codeception variable usage to simplify usage
ecc1a8f128 Fix #10047 - Tasks due date not saving

git-subtree-dir: public/legacy
git-subtree-split: f7552f5bdad7e99c6ae69c78923ab6592656e7a5
This commit is contained in:
SAgility Dev 2023-06-30 09:51:14 +00:00
parent 601c0c039b
commit 03101b9e99
34 changed files with 958 additions and 461 deletions

View file

@ -11,7 +11,6 @@
# For more information, see the Automated Testing Documentation.
# https://docs.suitecrm.com/developer/automatedtesting/
#== Install Test Suite:
# MYSQL or MSSQL
@ -29,7 +28,6 @@ DATABASE_USER=automated_tests
# Database password
DATABASE_PASSWORD=automated_tests
#== Acceptance, API, and Install Test Suites:
# URL of the SuiteCRM instance which the tester needs to access
@ -41,7 +39,6 @@ INSTANCE_ADMIN_USER=admin
# Admin password for SuiteCRM instance
INSTANCE_ADMIN_PASSWORD=password
#== API Test Suite:
# API Client ID
@ -50,3 +47,11 @@ INSTANCE_CLIENT_ID=suitecrm_client
# API Client Secret
INSTANCE_CLIENT_SECRET=secret
# Default web browser for acceptance and install tests
BROWSER=chrome
# Webdriver hostname (Selenium, Local or Cloud Testing)
WEBDRIVER_HOST=127.0.0.1
# Webdriver port (Selenium, Local or Cloud Testing)
WEBDRIVER_PORT=4444

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.13.3
# SuiteCRM 7.13.4
[![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

@ -49,3 +49,4 @@ coverage:
- modules/AOR_Charts/lib/*
params:
- env
- .env.test

151
composer.json Normal file
View file

@ -0,0 +1,151 @@
{
"name": "salesagility/suitecrm",
"description": "SuiteCRM",
"homepage": "https://suitecrm.com",
"type": "project",
"license": "GPL-3.0",
"authors": [
{
"name": "SalesAgility Ltd"
}
],
"support": {
"issues": "https://github.com/salesagility/SuiteCRM/issues",
"wiki": "https://docs.suitecrm.com",
"forum": "https://community.suitecrm.com",
"chat": "https://gitter.im/suitecrm/Lobby",
"source": "https://github.com/salesagility/SuiteCRM"
},
"config": {
"vendor-dir": "vendor",
"platform": {
"php": "7.4.0"
},
"optimize-autoloader": true,
"sort-packages": true,
"allow-plugins": {
"wikimedia/composer-merge-plugin": true
}
},
"minimum-stability": "dev",
"prefer-stable": true,
"suggest": {
"ext-imap": "Needed for emails module"
},
"require": {
"php": ">=7.4.0",
"ext-curl": "*",
"ext-gd": "*",
"ext-json": "*",
"ext-openssl": "*",
"ext-zip": "*",
"consolidation/robo": "^3.0",
"elasticsearch/elasticsearch": "^7.13",
"ezyang/htmlpurifier": "^4.10",
"google/apiclient": "^2.7",
"google/recaptcha": "^1.1",
"gymadarasz/ace": "^1.2",
"gymadarasz/imagesloaded": "^4.1",
"javanile/php-imap2": "^0.1.10",
"justinrainbow/json-schema": "^5.2",
"league/oauth2-client": "^2.6",
"league/oauth2-server": "^8.4",
"monolog/monolog": "^1.23",
"nesbot/carbon": "^2.0.0",
"onelogin/php-saml": "3.4.1",
"paragonie/random_compat": "^2.0",
"phpmailer/phpmailer": "^6.0",
"psr/container": "^1.0",
"psr/log": "^1.0",
"slim/slim": "^3.8",
"smarty/smarty": "^2.6",
"soundasleep/html2text": "~0.5",
"symfony/options-resolver": "^3.4",
"symfony/validator": "^3.4",
"symfony/yaml": "^5.2",
"tecnickcom/tcpdf": "^6.4",
"tedivm/jshrink": "^1.3",
"tinymce/tinymce": "^5.10",
"vlucas/phpdotenv": "^3.5",
"voku/anti-xss": "^4.0",
"wikimedia/composer-merge-plugin": "^2.0",
"zbateson/mail-mime-parser": "^2.2",
"zf1/zend-gdata": "^1.12",
"zf1/zend-loader": "^1.12",
"zf1/zend-oauth": "^1.12",
"zf1/zend-registry": "^1.12",
"zf1/zend-search-lucene": "^1.12"
},
"require-dev": {
"browserstack/browserstack-local": "^1.1",
"codeception/codeception": "^4.1",
"codeception/module-asserts": "^1.3",
"codeception/module-filesystem": "^1.0",
"codeception/module-phpbrowser": "^1.0",
"codeception/module-rest": "^1.3",
"codeception/module-webdriver": "^1.2",
"fakerphp/faker": "^1.14",
"filp/whoops": "^2.3",
"flow/jsonpath": "^0.4",
"friendsofphp/php-cs-fixer": "^2.15",
"jeroendesloovere/vcard": "^1.7",
"mikey179/vfsstream": "1.6.*",
"mockery/mockery": "^1.1.0",
"phpunit/phpunit": "^9.5",
"scssphp/scssphp": "^1.5"
},
"autoload": {
"files": [
"deprecated.php"
],
"psr-4": {
"SuiteCRM\\": [
"lib/",
"include/"
],
"SuiteCRM\\Custom\\": [
"custom/lib"
],
"SuiteCRM\\Modules\\": [
"modules/"
]
},
"classmap": [
"Api/"
]
},
"autoload-dev": {
"psr-4": {
"SuiteCRM\\": [
"tests/SuiteCRM/",
"tests/unit/phpunit/lib/SuiteCRM/"
],
"SuiteCRM\\Tests\\Unit\\": [
"tests/unit/phpunit/"
]
}
},
"scripts": {
"post-install-cmd": [
"Google\\Task\\Composer::cleanup"
]
},
"extra": {
"google/apiclient-services": [
"Calendar"
],
"merge-plugin": {
"include": [
"composer.ext.json",
"custom/Extension/application/Ext/Composer/*/*.json"
],
"recurse": true,
"replace": false,
"ignore-duplicates": false,
"merge-dev": true,
"merge-extra": false,
"merge-extra-deep": false,
"merge-scripts": false
}
}
}

982
composer.lock generated

File diff suppressed because it is too large Load diff

View file

@ -552,6 +552,11 @@ class Link2
if ($success == false) {
$failures[] = $key->id;
}
// remove temporary beans to prevent runaway memory usage
if(isset($this->tempBeans[$key->id])) {
unset($this->tempBeans[$key->id]);
}
}
if (!empty($failures)) {
@ -601,6 +606,11 @@ class Link2
if ($success == false) {
$failures[] = $keyBean->id;
}
// remove temporary beans to prevent runaway memory usage
if(isset($this->tempBeans[$keyBean->id])) {
unset($this->tempBeans[$keyBean->id]);
}
}
if (!empty($failures)) {

View file

@ -1,5 +1,5 @@
<?php
// created: 2023-04-18 17:00:00
// created: 2023-06-30 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' => 'de30837895f67175b7fbc04274a837a6',
'./README.md' => 'b20a248fa6702bc317e0b5db7d784a01',
'./README.md' => 'b823d42607bf6d9dc4b1b06c4b7bb862',
'./RoboFile.php' => '045b82c1df69553824d0e4ffcce6e03c',
'./SugarSecurity.php' => '47e316b2d408e8c5192c8ea4a4f921b3',
'./TreeData.php' => '32873e20cb5fd33f9d1cdaf18c3cac5c',
@ -507,13 +507,13 @@ $md5_string = array (
'./build/push_output.sh' => 'cde8cd38e3b0c4e988ec4be7d81faa89',
'./build/travis-ci-apache' => 'e1e212c4eaf679b6ec620cd0b12f4571',
'./campaign_tracker.php' => '321e43ca8b664e6ca57ae5589e8c0667',
'./composer.json' => '2823f5a7f99159cec8dab6b36249e0fb',
'./composer.lock' => 'ad7c44c6eb91e2484a68386053ada8a8',
'./composer.json' => '0b6a07a2f2dc9f19d3e0a5075cbe03f4',
'./composer.lock' => '8e5a6b4ddabcb66a207be0e41bd2ea10',
'./cron.php' => '0b8b6bd839a2232a8da074b31feaa708',
'./crossdomain.xml' => '24b7711640c652b21aa89c9d83d6ec13',
'./data/BeanFactory.php' => '3007bf65ebc77baa76c338ce6a068790',
'./data/Link.php' => '6a1f4a706142e6231f8ee46f261341c0',
'./data/Link2.php' => '1e2ee0bfd94ff12c0a3b9323059a47ed',
'./data/Link2.php' => '952dd8bca38c01d0b33cc244ec1988dd',
'./data/Relationships/EmailAddressRelationship.php' => 'e2d4f642961cf992c931e57d02e0d122',
'./data/Relationships/M2MRelationship.php' => '8643dac151d21e5ae9266501e9e1cd4a',
'./data/Relationships/One2MBeanRelationship.php' => 'f3dd91a6af8770161ff996009522566d',
@ -584,7 +584,7 @@ $md5_string = array (
'./include/HTTP_WebDAV_Server/dav.txt' => 'c5235ed64efa685da638c6dcdb6a9708',
'./include/HTTP_WebDAV_Server/license.txt' => 'a45bb1bbeed9e26b26c5763df1d3913d',
'./include/HtmlSanitizer.php' => 'efcd753e725f16eb9212bc3bb2ed2cff',
'./include/Imap/Imap2Handler.php' => '1a3f7e4cbf9fc332add2d6386b7df0cd',
'./include/Imap/Imap2Handler.php' => 'c424e06320bc116e553d1e7d554596c1',
'./include/Imap/ImapHandler.php' => '29e289d005995cde4a35144bfe176fb0',
'./include/Imap/ImapHandlerException.php' => '43d045dace421f51ad30eab02e1d1e91',
'./include/Imap/ImapHandlerFactory.php' => '15a2ffca9e48e3cf74270dda4e36e46c',
@ -613,7 +613,7 @@ $md5_string = array (
'./include/ListView/ListViewDisplay.php' => '516709b2a7e1d11ab5193369ecd1d7d8',
'./include/ListView/ListViewEval.tpl' => '15d45a3ed170599634d26860dc2e9e56',
'./include/ListView/ListViewFacade.php' => '9b0f0b4cec02511bebbc62beef368744',
'./include/ListView/ListViewGeneric.tpl' => '225d86344ddc00b4b00bd6716d23ac12',
'./include/ListView/ListViewGeneric.tpl' => '3ea2ae00e443e76b71b5897e8ad750bf',
'./include/ListView/ListViewNoMassUpdate.tpl' => '4e692ef66605010d17a42eb91f3025d5',
'./include/ListView/ListViewPagination.tpl' => '33063ccce1750e85762c3f0910c29a6a',
'./include/ListView/ListViewSearchLink.tpl' => '9cd943804ef3db4fa47ba41c99f5a12f',
@ -670,7 +670,7 @@ $md5_string = array (
'./include/MySugar/MySugar.php' => 'eaffdea2231df9ec4a457fb57d499ca4',
'./include/MySugar/dashboardstyle.css' => '4cce65e52281263e484140a1d4b8d2e2',
'./include/MySugar/javascript/AddRemoveDashboardPages.js' => '6baf925bfcaa6c4ac01326af22c8e7c6',
'./include/MySugar/javascript/MySugar.js' => 'f6162f9799abadfdef9c5ea2668808e7',
'./include/MySugar/javascript/MySugar.js' => '444aaa6ddfaa7bf54c89a81e3e8a4775',
'./include/MySugar/javascript/retrievePage.js' => '9c43b636b78782599b68b28d56e89260',
'./include/MySugar/retrieve_dash_page.php' => 'b91b58907f646579ad9b31b7f8efbfa5',
'./include/MySugar/tpls/MySugar.tpl' => '5468feea08f92fed498550cab00050a6',
@ -1036,7 +1036,7 @@ $md5_string = array (
'./include/SugarFields/Parsers/SearchFormMetaParser.php' => '732eecf76268b82b84667f6d00a905f5',
'./include/SugarFields/SugarFieldHandler.php' => '73b2605cef98e6b0b03880d299a49e92',
'./include/SugarFolders/SugarFolderEmptyException.php' => 'd8052a2f3abf6ff8db9563bf3e22842e',
'./include/SugarFolders/SugarFolders.php' => 'a2323abcfb7ead79b307e05c8739512c',
'./include/SugarFolders/SugarFolders.php' => '9fc96d6c3892227dc8b2c96e3d658c5d',
'./include/SugarHtml/SugarHtml.php' => 'b457a731768480ce81d6e709d920e2cb',
'./include/SugarHttpClient.php' => 'bf0aedbad0c73763186e37fb9107d3d7',
'./include/SugarLogger/LoggerManager.php' => 'd30492d39dc1aecce2e9cabdc4c148e8',
@ -1340,7 +1340,7 @@ $md5_string = array (
'./include/contextMenus/menuDefs/sugarObject.php' => '119e653126765edb0358ab54697b862a',
'./include/contextMenus/menuDefs/sugarPerson.php' => '215d244d2fbd4bce5facc8fe2091cc27',
'./include/controller/Controller.php' => '0ee78cfd4c12448eec89ea50b7ea143b',
'./include/database/DBManager.php' => 'd43d19f2e402b1d9eb2f8a13d2162e90',
'./include/database/DBManager.php' => 'a2f15ea473bd2364d62e8156dc535855',
'./include/database/DBManagerFactory.php' => 'ba1e996ceb661905208e38df2459b095',
'./include/database/FreeTDSManager.php' => '23ec109e38260e0ffa2a1676d486fd62',
'./include/database/MssqlManager.php' => '8ec8ad4bd3df1c19aa96b228f3b356a7',
@ -2536,7 +2536,7 @@ $md5_string = array (
'./jssource/minify.php' => '600c69c3e25f59bfc0e9063ea9618fce',
'./jssource/minify_utils.php' => 'e9aee7259f10a5538515a5765eada51a',
'./jssource/src_files/include/EditView/Panels.js' => '55e80d03192cb162403943eef1b23541',
'./jssource/src_files/include/MySugar/javascript/MySugar.js' => 'f8b9a23c8e6b4e29d14ff30af10f7740',
'./jssource/src_files/include/MySugar/javascript/MySugar.js' => '7e21681bc59131fe176396577e3f4732',
'./jssource/src_files/include/SubPanel/SubPanelTiles.js' => 'e7038bb725c238341feee8798d1a456a',
'./jssource/src_files/include/SugarCharts/Jit/FlashCanvas/canvas2png.js' => '4c95a8c2071e0d5b4ae1531a790f1492',
'./jssource/src_files/include/SugarCharts/Jit/FlashCanvas/flashcanvas.js' => 'b4345bb87df60d29e8283ae780c72a25',
@ -2821,7 +2821,7 @@ $md5_string = array (
'./lib/Search/SearchEngine.php' => '92775fe01a004fb58f1bf6edcc9f3dc8',
'./lib/Search/SearchModules.php' => '5261f4a9ab7a7d690618aefa08c6ca76',
'./lib/Search/SearchQuery.php' => '523292cc81871ec25ac17a7ab96bc888',
'./lib/Search/SearchResults.php' => 'bdcdd0018e1fa375dc9c0344dd00b14e',
'./lib/Search/SearchResults.php' => '6cd36a7346c7d4ac47d80b16ae77ced6',
'./lib/Search/SearchWrapper.php' => '2aaaa78656373bbdb2f0187a208d60eb',
'./lib/Search/SqlSearch/SimpleSqlSearchEngine.php' => 'db160c7c333582c7028a59f2bed03fcb',
'./lib/Search/UI/MVC/Controller.php' => '9f60e08a0b86295e12202689345d3410',
@ -2948,7 +2948,7 @@ $md5_string = array (
'./modules/ACL/install_actions.php' => 'b534ed369fb1ef22d41670cec842a5c7',
'./modules/ACL/language/en_us.lang.php' => 'a23ed1fea223a17993d5396bc1b85894',
'./modules/ACL/metadata/subpaneldefs.php' => 'eeb92f8d430ef3fcc134cf83dc972497',
'./modules/ACL/remove_actions.php' => 'ef5cfced421481c113e0e04ee640c3d8',
'./modules/ACL/remove_actions.php' => '731a8b23f3122f48bab9e24fab9f6b5a',
'./modules/ACL/vardefs.php' => 'a0e51e5d5a49b1f89af75ff58abd8df0',
'./modules/ACLActions/ACLAction.php' => '500f61c33f282390379fecdfef0e1e87',
'./modules/ACLActions/Forms.php' => 'd41d8cd98f00b204e9800998ecf8427e',
@ -3306,7 +3306,7 @@ $md5_string = array (
'./modules/AOR_Charts/lib/pChart/palettes/spring.color' => '402a1ac723252a591bf554a813b9c839',
'./modules/AOR_Charts/lib/pChart/palettes/summer.color' => 'f509da217991bb5525ce9cad1d5ab053',
'./modules/AOR_Charts/vardefs.php' => '4c0016a658d31732ee3d74928fab0121',
'./modules/AOR_Conditions/AOR_Condition.php' => '6b9d1838f0dd7031ad3deaa68d4c9aa8',
'./modules/AOR_Conditions/AOR_Condition.php' => '3a30b35d8a1a99386afc66c262585150',
'./modules/AOR_Conditions/conditionLines.js' => 'e80c394e97e31d96222f49932dc1e32c',
'./modules/AOR_Conditions/conditionLines.php' => 'ce1aac0705b29a126b6908e23e03488f',
'./modules/AOR_Conditions/language/en_us.lang.php' => 'de9cb666a10041cc14cc03081ee7912a',
@ -3568,7 +3568,7 @@ $md5_string = array (
'./modules/AOW_Actions/actions/actionCreateRecord.php' => '537fbede6eeb62ac3ba1e5e77c6e4ada',
'./modules/AOW_Actions/actions/actionModifyRecord.php' => 'a382c7b13f2896df64d70055ad92b2d0',
'./modules/AOW_Actions/actions/actionSendEmail.js' => 'e919423e47a93740dc522e812815c156',
'./modules/AOW_Actions/actions/actionSendEmail.php' => '0680b4972c9fe678bcd2f532955fba33',
'./modules/AOW_Actions/actions/actionSendEmail.php' => '155c8f5fb7262ceef58198c1d3bf6544',
'./modules/AOW_Actions/actions/templateParser.php' => '1996d6efbdacf1c9c78748b72ecfca03',
'./modules/AOW_Actions/actions.php' => 'd8adb0eee6cbd721ca25e8efb759421f',
'./modules/AOW_Actions/language/en_us.lang.php' => '0d1e99def1d60f44638ef51d64f3bf01',
@ -3595,11 +3595,11 @@ $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' => '08c0f9f3a9a15bc332e4bc1b77b1808c',
'./modules/AOW_WorkFlow/AOW_WorkFlow.php' => 'ac98d91589e0628306acbcd3d9a294b5',
'./modules/AOW_WorkFlow/Dashlets/AOW_WorkFlowDashlet/AOW_WorkFlowDashlet.meta.php' => '307d5c5c4e36070f26fcd7019a7c3ce7',
'./modules/AOW_WorkFlow/Dashlets/AOW_WorkFlowDashlet/AOW_WorkFlowDashlet.php' => '9b68831e41b81207bf2e3a1a42b266b2',
'./modules/AOW_WorkFlow/Menu.php' => 'bda4b71d876e065f7661bce4a91bde57',
'./modules/AOW_WorkFlow/aow_utils.php' => 'b8166bfc1cb01fda5a09de7e755af2d5',
'./modules/AOW_WorkFlow/aow_utils.php' => 'e46873aaca840bdeac8455891f1acad7',
'./modules/AOW_WorkFlow/controller.php' => 'ae23e9e4808160716c4d010463150421',
'./modules/AOW_WorkFlow/language/en_us.lang.php' => '3257fefa8880da77ef4c90c08fab9dad',
'./modules/AOW_WorkFlow/metadata/SearchFields.php' => '125fca8f181fd8c4fbb159fd71096bd7',
@ -3664,7 +3664,7 @@ $md5_string = array (
'./modules/Activities/tpls/PopupHeader.tpl' => 'a5d6e208e7df413a1247c17b59402e41',
'./modules/Activities/views/view.list.php' => '2f8f97ee242f1c60f80f18c23456c4e5',
'./modules/Activities/views/view.modulelistmenu.php' => 'b287fb1055865e6fe47ad46d584e054a',
'./modules/Administration/AOPAdmin.php' => '52db79bb630ad53239ac17c5e260a61a',
'./modules/Administration/AOPAdmin.php' => '92232ba583dd65ade7fe09e0191816b6',
'./modules/Administration/AOPAdmin.tpl' => '04391325ff3ba9d2d16d427f0a60d0ab',
'./modules/Administration/AOSAdmin.php' => 'd7e75c25af0a4e4a9bd954280b7450ec',
'./modules/Administration/AOSAdmin.tpl' => 'ee8d38886e9253512b0d9db8d9613b5a',
@ -3764,7 +3764,7 @@ $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' => '634ef77b8cd3ef0bb22c7eb2c062e65e',
'./modules/Administration/language/en_us.lang.php' => '16250032a9bae6621ac7e0727df462fc',
'./modules/Administration/metadata/SearchFields.php' => '678fb87cfc3b3e95d7e7ea8a72d8da16',
'./modules/Administration/metadata/adminpaneldefs.php' => '31fee9f25c4a34fca0e18fed684af9fb',
'./modules/Administration/ncc_config.php' => '643e7a46ad14a6aed7431c6679362b95',
@ -4988,7 +4988,7 @@ $md5_string = array (
'./modules/InboundEmail/Delete.php' => '2dec384b7a0c8bc29bf2dcfdfc26506c',
'./modules/InboundEmail/EditGroupFolder.php' => 'd7c41e935f01bfe5b6ce52c2f0385c9b',
'./modules/InboundEmail/InboundEmail.js' => 'f5d19901b247cdc225a999b08204cf45',
'./modules/InboundEmail/InboundEmail.php' => '72d8092646ec8cceadfa847738821046',
'./modules/InboundEmail/InboundEmail.php' => '84f6de127e294b6b56044a850022569a',
'./modules/InboundEmail/Menu.php' => 'bfb4c000e482ae7206a9c0dea76acafe',
'./modules/InboundEmail/Overview.php' => 'e12117e0d20035b2c04dad6526783f07',
'./modules/InboundEmail/Popup.php' => 'b37711aaab32543d3a6a1fb0386c679e',
@ -5940,7 +5940,7 @@ $md5_string = array (
'./modules/Tasks/Menu.php' => 'dd889bd7b6befa5c2c9ed2543435260f',
'./modules/Tasks/MyTasks.html' => '3e6a9d06bfca5b158f1d8e05d73c7bf6',
'./modules/Tasks/MyTasks.php' => 'e3d1e02f845912e74ce4e7d3e96c86ae',
'./modules/Tasks/Save.php' => 'f5f80cefe8f94b9e387293d53e8840e4',
'./modules/Tasks/Save.php' => '023fe2d40d15f6080f6f05820e0ac00f',
'./modules/Tasks/Task.php' => 'dc6f93a0df9a345f417afa1bc7e825df',
'./modules/Tasks/TasksQuickCreate.php' => 'c9cf50c4c2051463805e357fddc7cc33',
'./modules/Tasks/field_arrays.php' => 'f623385316cb5b80050c38b385167e68',
@ -6298,7 +6298,7 @@ $md5_string = array (
'./service/core/NusoapSoap.php' => 'cec8959f6a250bd1689c1af51eed4552',
'./service/core/PHP5Soap.php' => 'a152ca4fe059ffc21c8f2101ae2ba111',
'./service/core/REST/SugarRest.php' => '61a5c0e296a5f8112e09f0b13dc29fa7',
'./service/core/REST/SugarRestJSON.php' => '5be6f81139aab2261d5132bf76bf919c',
'./service/core/REST/SugarRestJSON.php' => '516b1906bdd720a45383f388afeba372',
'./service/core/REST/SugarRestRSS.php' => '711b7f6663ccbc3086ec86bef2fb7816',
'./service/core/SoapHelperWebService.php' => 'bb90e940144f545c4d55aa88e1949591',
'./service/core/SugarRestService.php' => '7e6907640352f9baee4330d533523654',
@ -6331,7 +6331,7 @@ $md5_string = array (
'./service/v3_1/registry.php' => 'c7690074b2106e368881e0fb7f728fcf',
'./service/v3_1/rest.php' => '3607b4865ee496046f1a6583f40c23e7',
'./service/v3_1/soap.php' => 'cedfe09f86b6a9e921940924786d68e9',
'./service/v4/SugarWebServiceImplv4.php' => '0a0f9f40ad06f96019a4b21c86e4c7f3',
'./service/v4/SugarWebServiceImplv4.php' => 'b0e608eded4075895bd081f7505030b8',
'./service/v4/SugarWebServiceUtilv4.php' => '8e1845f12e5efdb7d18bf8c06f4457f5',
'./service/v4/registry.php' => '394acc8429a616f708447824677aa86f',
'./service/v4/rest.php' => 'b2d139794047a63a0123ab7436edc1ec',
@ -6355,7 +6355,7 @@ $md5_string = array (
'./soap.php' => 'e28988c2e0b8e2c484587b537a710525',
'./sugar_version.json' => 'bdfbcefae2f9af559bef6a36367df7bb',
'./sugar_version.php' => 'db7b6c8d51f87879fce1e6172eedfbed',
'./suitecrm_version.php' => 'b2203e609053399bc053aa7df09524eb',
'./suitecrm_version.php' => '5e9e8e1cc1572dccf3ef723aa72ad05b',
'./themes/SuiteP/css/Dawn/color-palette.scss' => 'e64677d79e1d68c069bdc2dc661c4f99',
'./themes/SuiteP/css/Dawn/icons.scss' => 'd59f8c5855e7a8df09542a663835a196',
'./themes/SuiteP/css/Dawn/select.ico' => '22393ad23f16c3f1462455bae8f20279',
@ -7780,7 +7780,7 @@ $md5_string = array (
'./themes/SuiteP/include/EditView/header.tpl' => '132ace198c0a390b2000408fdde3457f',
'./themes/SuiteP/include/EditView/tab_panel_content.tpl' => 'e74279dc0e6d4185121b699d9d76750f',
'./themes/SuiteP/include/ListView/ListViewDCMenu.tpl' => 'bc847c86bae071f507e486acfd05fa31',
'./themes/SuiteP/include/ListView/ListViewGeneric.tpl' => '67001b6016d7a4065d33cbeed3e049d1',
'./themes/SuiteP/include/ListView/ListViewGeneric.tpl' => 'f78eb9f4d804fd9c82007852ab026c1b',
'./themes/SuiteP/include/ListView/ListViewNoMassUpdate.tpl' => '4f238f8e41ce9479193be0cf537728a6',
'./themes/SuiteP/include/ListView/ListViewPagination.tpl' => '80ff62f8b828bde2ee846d42206dc00f',
'./themes/SuiteP/include/ListView/ListViewPaginationBottom.tpl' => '11147ef51e845a60fe1b29ab1b304d2b',

View file

@ -292,7 +292,7 @@ class Imap2Handler implements ImapHandlerInterface
{
$this->logCall(__FUNCTION__, func_get_args());
$mbh = imap2_open($mailbox, $username, $password, $options, $n_retries, $params);
$mbh = Connection::open($mailbox, $username, $password, $options, $n_retries, $params);
$this->setStream($mbh);
if (empty($mbh) || !is_a($mbh, Connection::class)) {
@ -1204,7 +1204,7 @@ class Imap2Handler implements ImapHandlerInterface
$pageLast = $pageOffSet + $pageSize;
$sequence = "$pageOffSet:$pageLast";
$sorteUids = $this->getSortedMessageIds('ARRIVAL', $pageOffSet, $pageLast);
$sorteUids = $this->getSortedMessageIds('ARRIVAL', $pageOffSet, $pageLast, '');
$sequence = implode(',', $sorteUids);
$mailList = $this->$fetchMethod($sequence, FT_UID);

View file

@ -66,7 +66,7 @@
{assign var="moduleName" value = $moduleList.$currentModule}
{assign var="hideTable" value=false}
{if count($data) == 0}
{if !isset($data) || (count($data) == 0)}
{assign var="hideTable" value=true}
<div class="list view listViewEmpty">
{if $displayEmptyDataMesssages}

View file

@ -51,7 +51,7 @@ ajaxStatus.showStatus(SUGAR.language.get('app_strings','LBL_LOADING'));if(!url){
else if(url=='predefined_chart'){url='index.php?action=DynamicAction&DynamicAction=displayDashlet&session_commit=1&module='+module+'&to_pdf=1&id='+id;scriptUrl='index.php?action=DynamicAction&DynamicAction=getPredefinedChartScript&session_commit=1&module='+module+'&to_pdf=1&id='+id;is_chart_dashlet=true;}
if(dynamic){url+='&dynamic=true';}
SUGAR.mySugar.currentDashlet=document.getElementById('dashlet_entire_'+id);$.ajax({"method":"GET","url":url}).done(function(data,textStatus,jqXHR){var updateDashlet=null;if($(data).find('#dashlet_entire_'+id).length==0){updateDashlet=$(data).find('.bd-center').html();}else{updateDashlet=$(data).find('#dashlet_entire_'+id+' .bd-center').html();}
$('#dashlet_entire_'+id).find('.bd-center').html(updateDashlet);ajaxStatus.hideStatus();});return false;},setChooser:function(){var displayColumnsDef=[];var hideTabsDef=[];var left_td=document.getElementById('display_tabs_td');var right_td=document.getElementById('hide_tabs_td');var displayTabs=left_td.getElementsByTagName('select')[0];var hideTabs=right_td.getElementsByTagName('select')[0];for(i=0;i<displayTabs.options.length;i++){displayColumnsDef.push(displayTabs.options[i].value);}
$('#dashlet_entire_'+id).find('.bd-center').html(updateDashlet);ajaxStatus.hideStatus();});$('#dashlet_header_'+SUGAR.mySugar.configureDashletId).load(url+' #dashlet_header_'+SUGAR.mySugar.configureDashletId);return false;},setChooser:function(){var displayColumnsDef=[];var hideTabsDef=[];var left_td=document.getElementById('display_tabs_td');var right_td=document.getElementById('hide_tabs_td');var displayTabs=left_td.getElementsByTagName('select')[0];var hideTabs=right_td.getElementsByTagName('select')[0];for(i=0;i<displayTabs.options.length;i++){displayColumnsDef.push(displayTabs.options[i].value);}
if(typeof hideTabs!='undefined'){for(i=0;i<hideTabs.options.length;i++){hideTabsDef.push(hideTabs.options[i].value);}}
document.getElementById('displayColumnsDef').value=displayColumnsDef.join('|');document.getElementById('hideTabsDef').value=hideTabsDef.join('|');},deleteDashlet:function(id){if(confirm(SUGAR.language.get('app_strings','LBL_REMOVE_DASHLET_CONFIRM'))){ajaxStatus.showStatus(SUGAR.language.get('app_strings','LBL_REMOVING_DASHLET'));del=function(){var success=function(data){dashlet=document.getElementById('dashlet_'+id);dashlet.parentNode.removeChild(dashlet);ajaxStatus.showStatus(SUGAR.language.get('app_strings','LBL_REMOVED_DASHLET'));window.setTimeout('ajaxStatus.hideStatus()',2000);};var cObj=YAHOO.util.Connect.asyncRequest('GET','index.php?to_pdf=1&module='+module+'&action=DynamicAction&DynamicAction=deleteDashlet&activePage='+activeTab+'&id='+id,{success:success,failure:success},null);};var anim=new YAHOO.util.Anim('dashlet_entire_'+id,{height:{to:1}},.5);anim.onComplete.subscribe(del);document.getElementById('dashlet_entire_'+id).style.overflow='hidden';anim.animate();return false;}
return false;},addDashlet:function(id,type,type_module,pageNum,pageTabElement){var _pageNum=typeof pageNum=='undefined'?false:pageNum;var _pageTabElement=typeof pageTabElement=='undefined'?false:pageTabElement;ajaxStatus.hideStatus();columns=SUGAR.mySugar.getLayout();var num_dashlets=columns[0].length;if(typeof columns[1]==undefined){num_dashlets=num_dashlets+columns[1].length;}

View file

@ -793,7 +793,7 @@ class SugarFolder
continue;
}
$isGroup = $item->isgroup ?? '';
$isGroup = $item['isgroup'] ?? '';
if ($isGroup === 1) {
$secureReturn[] = $item;
}

View file

@ -3027,6 +3027,7 @@ abstract class DBManager
*/
public function getDataChanges(SugarBean &$bean, array $field_filter = null)
{
$bean->fixUpFormatting();
$changed_values = array();
$fetched_row = array();

View file

@ -265,6 +265,9 @@ initMySugar = function () {
ajaxStatus.hideStatus();
});
$('#dashlet_header_' + SUGAR.mySugar.configureDashletId).load(url + ' #dashlet_header_' + SUGAR.mySugar.configureDashletId);
return false;
},

View file

@ -224,6 +224,9 @@ class SearchResults
LoggerManager::getLogger()->warn('Unresolved related ID for field: ' . $relField);
}
if (!$relId) {
$relId = '';
}
return $relId;
}

View file

@ -50,7 +50,7 @@ if (is_admin($current_user)) {
foreach ($actionarr as $actionobj) {
if (!isset($beanList[$actionobj->category]) || !file_exists($beanFiles[$beanList[$actionobj->category]])) {
if (!isset($_REQUEST['upgradeWizard'])) {
echo 'Removing for ' . $actionobj->category . '<br>';
echo sprintf('Removing "%s" ACL for module "%s"<br>', $actionobj->name, $actionobj->category);
}
$foundOne = true;
ACLAction::removeActions($actionobj->category);

View file

@ -122,11 +122,11 @@ class AOR_Condition extends Basic
}
}
}
if ($field_name == 'parenthesis' && $post_data[$key . $field_name][$i] == 'END') {
if (!isset($lastParenthesisStartConditionId)) {
if ($field_name === 'parenthesis' && $post_data[$key . $field_name][$i] !== 'START') {
if (!isset($lastParenthesisStartConditionIds)) {
throw new Exception('a closure parenthesis has no starter pair');
}
$condition->parenthesis = $lastParenthesisStartConditionId;
$condition->parenthesis = array_pop($lastParenthesisStartConditionIds);
} else {
$condition->$field_name = $post_data[$key . $field_name][$i];
}
@ -149,8 +149,8 @@ class AOR_Condition extends Basic
}
$condition->aor_report_id = $parent->id;
$conditionId = $condition->save();
if ($condition->parenthesis == 'START') {
$lastParenthesisStartConditionId = $conditionId;
if ($condition->parenthesis === 'START') {
$lastParenthesisStartConditionIds[] = $conditionId;
}
}
}

View file

@ -486,7 +486,7 @@ class actionSendEmail extends actionBase
$mail->handleAttachments($attachments);
$mail->prepForOutbound();
if (empty($emailTo)) {
if ((empty($emailTo)) || (!is_array($emailTo))) {
return false;
}
foreach ($emailTo as $to) {
@ -502,6 +502,13 @@ class actionSendEmail extends actionBase
$mail->AddBCC($email);
}
}
if (!is_array($emailCc)) {
$emailCc = [];
}
if (!is_array($emailBcc)) {
$emailBcc = [];
}
//now create email
if ($mail->Send()) {

View file

@ -411,6 +411,58 @@ class AOW_WorkFlow extends Basic
$condition_module,
$query
);
} else if (isset($data['source']) && $data['source'] == 'non-db' && $data['type'] == 'relate' && !empty($data['link'])) {
$rel = $data['link'];
if (!isset($query['join'][$rel])) {
if ($condition_module->load_relationship($rel)) {
$join = $condition_module->$rel->getJoin([
'join_type' => 'LEFT JOIN',
'join_table_alias' => str_replace('.', '_', $rel),
'left_join_table_alias' => $table_alias,
'right_join_table_alias' => $table_alias
], true);
$query['join'][$rel] = $join['join'];
$query['select'][] = $join['select'] . " AS '" . str_replace('.', '_', $rel) . "_id'";
}
}
$relObject = $condition_module->$rel;
if (!empty($relObject)) {
if ($relObject->getRelationshipObject()->type == 'one-to-many') {
$field = $table_alias . '.' . $data['id_name'];
} else {
$targetTable = $relObject->getRelationshipObject()->getRelationshipTable();
$field = $targetTable . '.' . $data['id_name'];
}
} else {
$field = $table_alias . '.' . $condition->field;
}
} else if (isset($data['source']) && $data['source'] == 'non-db' && $data['type'] == 'relate') {
$relModule = $data['module'];
$relBean = BeanFactory::getBean($relModule);
$relAlias = $data['id'];
$id_name = $data['id_name'];
$parentFieldDef = $condition_module->getFieldDefinition($data['id_name']);
if (!empty($parentFieldDef['source']) && $parentFieldDef['source'] == 'custom_fields') {
$query = $this->build_flow_custom_query_join(
$table_alias,
$table_alias . '_cstm',
$condition_module,
$query
);
$table_alias = $table_alias . '_cstm';
}
$primaryKey = $relBean->getPrimaryFieldDefinition();
if (!isset($query['join'][$relAlias])) {
$query['join'][$relAlias] = ' LEFT JOIN ' . $relBean->getTableName()
. ' ' . $relAlias . ' ON ' . $table_alias . '.' . $id_name . ' = ' . $relAlias . '.' . $primaryKey['name'];
}
$field = $relAlias . '.' . $data['rname'];
$relFieldDef = $relBean->getFieldDefinition($data['rname']);
if (isset($relFieldDef['db_concat_fields'])) {
$field = $this->db->concat($relAlias, $relFieldDef['db_concat_fields']);
}
} else {
$field = $table_alias . '.' . $condition->field;
}

View file

@ -384,10 +384,6 @@ function getModuleField(
$vardef['type'] = 'varchar';
}
if (isset($vardef['precision'])) {
unset($vardef['precision']);
}
//$vardef['precision'] = $locale->getPrecedentPreference('default_currency_significant_digits', $current_user);
if ($vardef['type'] == 'datetime') {

View file

@ -126,7 +126,7 @@ if (isset($_REQUEST['do']) && $_REQUEST['do'] == 'save') {
* We save the case_status_changes array as json since the way config changes are persisted to config.php
* means that removing entries is tricky. json simplifies this.
*/
$cfg->config['aop']['case_status_changes'] = json_encode(array_combine($_POST['if_status'], $_POST['then_status']));
$cfg->config['aop']['case_status_changes'] = json_encode(array_combine($_POST['if_status'] ?? [], $_POST['then_status'] ?? []));
$cfg->saveConfig();
header('Location: index.php?module=Administration&action=index');
exit();

View file

@ -585,6 +585,9 @@ $mod_strings = array(
'LBL_UW_UPGRADE_SUCCESSFUL' => "<b>Upgrade applied successfully!</b><br>\n",
'LBL_UW_UPLOAD_MODULE' => 'Module',
'LBL_UW_TYPE_THEME' => 'Theme',
'LBL_UW_TYPE_MODULE' => 'Module',
'LBL_UW_MODE_INSTALL' => 'Installed',
'LBL_UW_MODE_UNINSTALL' => 'Uninstalled',
'LBL_UW_UPLOAD_SUCCESS' => " has been uploaded.<br>",
'LBL_VISIBLE_PANELS' => 'Displayed Subpanels',
'LBL_VISIBLE_TABS' => 'Displayed Modules',

View file

@ -6904,7 +6904,7 @@ class InboundEmail extends SugarBean
/** @var User $owner */
$owner = BeanFactory::getBean('Users', $createdBy);
$emailSignatures = $owner->getPreference('account_signatures', 'Emails');
$emailSignatures = $owner->getPreference('account_signatures', 'Emails') ?? '';
$emailSignatures = sugar_unserialize(base64_decode($emailSignatures));
$signatureId = $emailSignatures[$inboundEmailId] ?? '';
@ -8598,16 +8598,7 @@ eoq;
*/
protected function getImapHandlerType(): string
{
global $log;
$handlerType = 'native';
if (!empty($this->auth_type) && $this->auth_type === 'oauth') {
$handlerType = 'imap2';
}
$log->debug('Using imap handler type: ' . $handlerType);
return $handlerType;
return 'imap2';
}
/**

View file

@ -91,13 +91,13 @@ if (!$focus->ACLAccess('Save')) {
if (isCloseAndCreateNewPressed()) {
$focus->status = 'Completed';
}
if (!isset($_POST['date_due_flag'])) {
$focus->date_due_flag = 0;
if (isset($_POST['date_due'])) {
$focus->date_due_flag = 1;
}
if (!isset($_POST['date_start_flag'])) {
$focus->date_start_flag = 0;
if (isset($_POST['date_start'])) {
$focus->date_start_flag = 1;
}
if ($focus->date_due_flag != 'off' && $focus->date_due_flag != 1) {
if ($focus->date_due_flag !== 'off' && $focus->date_due_flag !== 1) {
$focus->date_due = '';
$focus->time_due = '';
}

View file

@ -91,6 +91,9 @@ class SugarRestJSON extends SugarRest{
$json = getJSONObj();
$data = $json->decode($json_data);
if(!is_array($data))$data = array($data);
if (!isset($data['application_name']) && isset($data['application'])){
$data['application_name'] = $data['application'];
}
$res = call_user_func_array(array( $this->implementation, $method),$data);
$GLOBALS['log']->info('End: SugarRestJSON->serve');
return $res;

View file

@ -70,9 +70,13 @@ class SugarWebServiceImplv4 extends SugarWebServiceImplv3_1
* - user_default_team_id, user_is_admin, user_default_dateformat, user_default_timeformat
* @exception 'SoapFault' -- The SOAP error, if any
*/
public function login($user_auth, $application = null, $name_value_list = array())
public function login($user_auth, $application = null, $name_value_list = array(), ...$args)
{
$GLOBALS['log']->info("Begin: SugarWebServiceImpl->login({$user_auth['user_name']}, $application, ". print_r($name_value_list, true) .")");
$application_name = $args['application_name'] ?? '';
if ($application_name === '' && $application === null){
$GLOBALS['log']->info("Application name not set. Please set using 'application_name' or 'application'. ");
}
$GLOBALS['log']->info("Begin: SugarWebServiceImpl->login({$user_auth['user_name']}, $application_name, ". print_r($name_value_list, true) .")");
global $sugar_config, $system_config;
$error = new SoapError();
$user = BeanFactory::newBean('Users');

View file

@ -3,5 +3,5 @@ if (!defined('sugarEntry') || !sugarEntry) {
die('Not A Valid Entry Point');
}
$suitecrm_version = '7.13.3';
$suitecrm_timestamp = '2023-04-24 12:00:00';
$suitecrm_version = '7.13.4';
$suitecrm_timestamp = '2023-07-11 12:00:00';

View file

@ -47,15 +47,6 @@ use Exception;
*/
class WebDriver extends \Codeception\Module\WebDriver
{
public function _initialize()
{
$config = $this->_getConfig();
$this->config['host'] = $config['host'];
$this->config['port'] = $config['port'];
parent::_initialize();
}
protected function initialWindowSize()
{
$config = $this->_getConfig();

View file

@ -14,5 +14,23 @@ modules:
- \SuiteCRM\Test\Driver\WebDriver
config:
\SuiteCRM\Test\Driver\WebDriver:
url: "https://demo.suiteondemand.com"
url: '%INSTANCE_URL%'
browser: '%BROWSER%'
host: '%WEBDRIVER_HOST%'
port: '%WEBDRIVER_PORT%'
env:
chrome:
modules:
config:
\SuiteCRM\Test\Driver\WebDriver:
browser: chrome
firefox:
modules:
config:
\SuiteCRM\Test\Driver\WebDriver:
browser: firefox
edge:
modules:
config:
\SuiteCRM\Test\Driver\WebDriver:
browser: MicrosoftEdge

View file

@ -2,6 +2,7 @@
// Here you can initialize variables that will be available to your tests
/* bootstrap composer's autoloader */
chdir(__DIR__.'/../../');
require_once __DIR__ . '/../../vendor/autoload.php';
global $sugar_config, $db;

View file

@ -1,5 +1,6 @@
<?php
/* bootstrap composer's autoloader */
chdir(__DIR__.'/../../');
require_once __DIR__.'/../../vendor/autoload.php';
global $sugar_config, $db;
require_once __DIR__ .'/../../include/utils.php';

View file

@ -8,7 +8,23 @@ modules:
- Filesystem
config:
\SuiteCRM\Test\Driver\WebDriver:
url: "https://demo.suiteondemand.com/"
browser: chrome
url: '%INSTANCE_URL%'
browser: '%BROWSER%'
restart: true
wait: 1
env:
chrome:
modules:
config:
\SuiteCRM\Test\Driver\WebDriver:
browser: chrome
firefox:
modules:
config:
\SuiteCRM\Test\Driver\WebDriver:
browser: firefox
edge:
modules:
config:
\SuiteCRM\Test\Driver\WebDriver:
browser: MicrosoftEdge

4
tests/unit.suite.yml Normal file
View file

@ -0,0 +1,4 @@
bootstrap: _bootstrap.php
modules:
enabled:
- Asserts

View file

@ -1,7 +1,7 @@
<?php
// Here you can initialize variables that will be available to your test
//echo "CWD:" . getcwd() . "\n";
chdir('../');
chdir(__DIR__.'/../../');
if (!defined('sugarEntry')) {
define('sugarEntry', true);
define('SUITE_PHPUNIT_RUNNER', true);

View file

@ -70,7 +70,7 @@
{sugar_include type="smarty" file=$form.headerTpl}
{/if}
{if count($data) == 0}
{if !isset($data) || (count($data) == 0)}
{assign var="hideTable" value=true}
<div class="list view listViewEmpty">
{if $showFilterIcon}