From 6a55b93d4e5b69fedeabb583b851c0b1acb10581 Mon Sep 17 00:00:00 2001 From: Matt Lorimer Date: Fri, 19 Nov 2021 10:45:27 +0000 Subject: [PATCH] SuiteCRM 7.10.34 Release --- README.md | 2 +- composer.lock | 493 +++++++++++++++--- files.md5 | 42 +- include/SugarFolders/SugarFolders.php | 15 +- include/language/en_us.lang.php | 6 + include/utils/file_utils.php | 22 + modules/Configurator/Configurator.php | 127 ++++- modules/Configurator/tpls/EditView.tpl | 5 +- modules/Import/tpls/step2.tpl | 4 +- modules/Import/views/view.confirm.php | 14 +- modules/Import/views/view.step3.php | 11 +- suitecrm_version.php | 4 +- tests/bootstrap.php | 2 + .../include/SugarFolders/SugarFolderTest.php | 9 - tests/unit/phpunit/modules/Cases/CaseTest.php | 2 - .../phpunit/modules/Meetings/MeetingTest.php | 5 +- 16 files changed, 628 insertions(+), 135 deletions(-) diff --git a/README.md b/README.md index b7c7f892d44..5f0cce5d5fa 100755 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ -# SuiteCRM 7.10.33 +# SuiteCRM 7.10.34 [![Build Status](https://travis-ci.org/salesagility/SuiteCRM.svg?branch=7.10.x)](https://travis-ci.org/salesagility/SuiteCRM) [![codecov](https://codecov.io/gh/salesagility/SuiteCRM/branch/7.10.x/graph/badge.svg)](https://codecov.io/gh/salesagility/SuiteCRM/branch/7.10.x) diff --git a/composer.lock b/composer.lock index a2d5b990602..8bed3cc0367 100644 --- a/composer.lock +++ b/composer.lock @@ -6,6 +6,82 @@ ], "content-hash": "de48c1351e816dda827717bab04cf5b1", "packages": [ + { + "name": "composer/semver", + "version": "3.2.6", + "source": { + "type": "git", + "url": "https://github.com/composer/semver.git", + "reference": "83e511e247de329283478496f7a1e114c9517506" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/semver/zipball/83e511e247de329283478496f7a1e114c9517506", + "reference": "83e511e247de329283478496f7a1e114c9517506", + "shasum": "" + }, + "require": { + "php": "^5.3.2 || ^7.0 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^0.12.54", + "symfony/phpunit-bridge": "^4.2 || ^5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\Semver\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nils Adermann", + "email": "naderman@naderman.de", + "homepage": "http://www.naderman.de" + }, + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + }, + { + "name": "Rob Bast", + "email": "rob.bast@gmail.com", + "homepage": "http://robbast.nl" + } + ], + "description": "Semver library that offers utilities, version constraint parsing and validation.", + "keywords": [ + "semantic", + "semver", + "validation", + "versioning" + ], + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2021-10-25T11:34:17+00:00" + }, { "name": "consolidation/annotated-command", "version": "2.12.1", @@ -396,32 +472,32 @@ }, { "name": "consolidation/robo", - "version": "1.4.13", + "version": "1.5.0", "source": { "type": "git", "url": "https://github.com/consolidation/Robo.git", - "reference": "fd28dcca1b935950ece26e63541fbdeeb09f7343" + "reference": "12bf6b608057604a283e9e597edfed36ba071631" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/consolidation/Robo/zipball/fd28dcca1b935950ece26e63541fbdeeb09f7343", - "reference": "fd28dcca1b935950ece26e63541fbdeeb09f7343", + "url": "https://api.github.com/repos/consolidation/Robo/zipball/12bf6b608057604a283e9e597edfed36ba071631", + "reference": "12bf6b608057604a283e9e597edfed36ba071631", "shasum": "" }, "require": { - "consolidation/annotated-command": "^2.12.1|^4.1", + "consolidation/annotated-command": "^2.12.1 || ^4.1", "consolidation/config": "^1.2.1", - "consolidation/log": "^1.1.1|^2", - "consolidation/output-formatters": "^3.5.1|^4.1", - "consolidation/self-update": "^1.1.5", + "consolidation/log": "^1.1.1 || ^2", + "consolidation/output-formatters": "^3.5.1 || ^4.1", + "consolidation/self-update": "^1.1.5 || ^2", "grasmash/yaml-expander": "^1.4", "league/container": "^2.4.1", "php": ">=5.5.0", - "symfony/console": "^2.8|^3|^4", - "symfony/event-dispatcher": "^2.5|^3|^4", - "symfony/filesystem": "^2.5|^3|^4", - "symfony/finder": "^2.5|^3|^4|^5", - "symfony/process": "^2.5|^3|^4" + "symfony/console": "^2.8 || ^3 || ^4", + "symfony/event-dispatcher": "^2.5 || ^3 || ^4", + "symfony/filesystem": "^2.5 || ^3 || ^4", + "symfony/finder": "^2.5 || ^3 || ^4 || ^5", + "symfony/process": "^2.5 || ^3 || ^4" }, "replace": { "codegyre/robo": "< 1.0" @@ -507,23 +583,24 @@ } ], "description": "Modern task runner", - "time": "2020-10-11T04:51:34+00:00" + "time": "2021-10-08T03:51:31+00:00" }, { "name": "consolidation/self-update", - "version": "1.2.0", + "version": "2.0.0", "source": { "type": "git", "url": "https://github.com/consolidation/self-update.git", - "reference": "dba6b2c0708f20fa3ba8008a2353b637578849b4" + "reference": "7d6877f8006c51069e1469a9c57b1435640f74b7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/consolidation/self-update/zipball/dba6b2c0708f20fa3ba8008a2353b637578849b4", - "reference": "dba6b2c0708f20fa3ba8008a2353b637578849b4", + "url": "https://api.github.com/repos/consolidation/self-update/zipball/7d6877f8006c51069e1469a9c57b1435640f74b7", + "reference": "7d6877f8006c51069e1469a9c57b1435640f74b7", "shasum": "" }, "require": { + "composer/semver": "^3.2", "php": ">=5.5.0", "symfony/console": "^2.8|^3|^4|^5", "symfony/filesystem": "^2.5|^3|^4|^5" @@ -534,7 +611,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.x-dev" + "dev-main": "2.x-dev" } }, "autoload": { @@ -557,7 +634,7 @@ } ], "description": "Provides a self:update command for Symfony Console applications.", - "time": "2020-04-13T02:49:20+00:00" + "time": "2021-10-05T23:29:47+00:00" }, { "name": "container-interop/container-interop", @@ -711,6 +788,10 @@ "dot", "notation" ], + "support": { + "issues": "https://github.com/dflydev/dflydev-dot-access-data/issues", + "source": "https://github.com/dflydev/dflydev-dot-access-data/tree/master" + }, "time": "2017-01-20T21:14:22+00:00" }, { @@ -761,20 +842,24 @@ "keywords": [ "html" ], + "support": { + "issues": "https://github.com/ezyang/htmlpurifier/issues", + "source": "https://github.com/ezyang/htmlpurifier/tree/master" + }, "time": "2020-06-29T00:56:53+00:00" }, { "name": "firebase/php-jwt", - "version": "v5.4.0", + "version": "v5.5.1", "source": { "type": "git", "url": "https://github.com/firebase/php-jwt.git", - "reference": "d2113d9b2e0e349796e72d2a63cf9319100382d2" + "reference": "83b609028194aa042ea33b5af2d41a7427de80e6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/firebase/php-jwt/zipball/d2113d9b2e0e349796e72d2a63cf9319100382d2", - "reference": "d2113d9b2e0e349796e72d2a63cf9319100382d2", + "url": "https://api.github.com/repos/firebase/php-jwt/zipball/83b609028194aa042ea33b5af2d41a7427de80e6", + "reference": "83b609028194aa042ea33b5af2d41a7427de80e6", "shasum": "" }, "require": { @@ -814,7 +899,7 @@ "jwt", "php" ], - "time": "2021-06-23T19:00:23+00:00" + "time": "2021-11-08T20:18:51+00:00" }, { "name": "google/recaptcha", @@ -861,6 +946,11 @@ "recaptcha", "spam" ], + "support": { + "forum": "https://groups.google.com/forum/#!forum/recaptcha", + "issues": "https://github.com/google/recaptcha/issues", + "source": "https://github.com/google/recaptcha" + }, "time": "2020-03-31T17:50:54+00:00" }, { @@ -908,6 +998,10 @@ } ], "description": "Expands internal property references in PHP arrays file.", + "support": { + "issues": "https://github.com/grasmash/expander/issues", + "source": "https://github.com/grasmash/expander/tree/master" + }, "time": "2017-12-21T22:14:55+00:00" }, { @@ -960,16 +1054,16 @@ }, { "name": "guzzlehttp/psr7", - "version": "1.8.2", + "version": "1.8.3", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "dc960a912984efb74d0a90222870c72c87f10c91" + "reference": "1afdd860a2566ed3c2b0b4a3de6e23434a79ec85" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/dc960a912984efb74d0a90222870c72c87f10c91", - "reference": "dc960a912984efb74d0a90222870c72c87f10c91", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/1afdd860a2566ed3c2b0b4a3de6e23434a79ec85", + "reference": "1afdd860a2566ed3c2b0b4a3de6e23434a79ec85", "shasum": "" }, "require": { @@ -1006,13 +1100,34 @@ "MIT" ], "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, { "name": "Michael Dowling", "email": "mtdowling@gmail.com", "homepage": "https://github.com/mtdowling" }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://github.com/sagikazarmark" + }, { "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", "homepage": "https://github.com/Tobion" } ], @@ -1027,7 +1142,21 @@ "uri", "url" ], - "time": "2021-04-26T09:17:50+00:00" + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/psr7", + "type": "tidelift" + } + ], + "time": "2021-10-05T13:56:00+00:00" }, { "name": "gymadarasz/ace", @@ -1055,6 +1184,9 @@ } ], "description": "ACE editor fork for composer", + "support": { + "source": "https://github.com/gymadarasz/ace-builds/tree/v1.2.3.stable" + }, "time": "2016-01-30T19:22:47+00:00" }, { @@ -1083,6 +1215,9 @@ } ], "description": "imagesloaded jquery plugin fork", + "support": { + "source": "https://github.com/gymadarasz/imagesloaded/tree/master" + }, "time": "2016-01-29T19:34:06+00:00" }, { @@ -1189,6 +1324,10 @@ "domain parsing", "url parsing" ], + "support": { + "issues": "https://github.com/jeremykendall/php-domain-parser/issues", + "source": "https://github.com/jeremykendall/php-domain-parser" + }, "time": "2017-09-28T15:52:11+00:00" }, { @@ -1255,6 +1394,10 @@ "json", "schema" ], + "support": { + "issues": "https://github.com/justinrainbow/json-schema/issues", + "source": "https://github.com/justinrainbow/json-schema/tree/5.2.11" + }, "time": "2021-07-22T09:24:00+00:00" }, { @@ -1430,6 +1573,10 @@ "event", "listener" ], + "support": { + "issues": "https://github.com/thephpleague/event/issues", + "source": "https://github.com/thephpleague/event/tree/master" + }, "time": "2018-11-26T11:52:41+00:00" }, { @@ -1507,6 +1654,10 @@ "secure", "server" ], + "support": { + "issues": "https://github.com/thephpleague/oauth2-server/issues", + "source": "https://github.com/thephpleague/oauth2-server/tree/5.1.x" + }, "time": "2017-11-29T21:47:00+00:00" }, { @@ -1575,6 +1726,11 @@ "url", "ws" ], + "support": { + "forum": "https://groups.google.com/forum/#!forum/thephpleague", + "issues": "https://github.com/thephpleague/uri/issues", + "source": "https://github.com/thephpleague/uri/tree/4.x" + }, "time": "2017-10-17T10:28:56+00:00" }, { @@ -1621,6 +1777,10 @@ "router", "routing" ], + "support": { + "issues": "https://github.com/nikic/FastRoute/issues", + "source": "https://github.com/nikic/FastRoute/tree/master" + }, "time": "2018-02-13T20:26:39+00:00" }, { @@ -1671,6 +1831,11 @@ "onelogin", "saml" ], + "support": { + "email": "sixto.garcia@onelogin.com", + "issues": "https://github.com/onelogin/php-saml/issues", + "source": "https://github.com/onelogin/php-saml/" + }, "time": "2019-11-25T17:30:07+00:00" }, { @@ -1720,6 +1885,11 @@ "pseudorandom", "random" ], + "support": { + "email": "info@paragonie.com", + "issues": "https://github.com/paragonie/random_compat/issues", + "source": "https://github.com/paragonie/random_compat" + }, "time": "2021-04-17T09:33:01+00:00" }, { @@ -1788,6 +1958,10 @@ } ], "description": "PHPMailer is a full-featured email creation and transfer class for PHP", + "support": { + "issues": "https://github.com/PHPMailer/PHPMailer/issues", + "source": "https://github.com/PHPMailer/PHPMailer/tree/v6.5.1" + }, "funding": [ { "url": "https://github.com/Synchro", @@ -1998,6 +2172,9 @@ "request", "response" ], + "support": { + "source": "https://github.com/php-fig/http-message/tree/master" + }, "time": "2016-08-06T14:39:51+00:00" }, { @@ -2045,6 +2222,9 @@ "psr", "psr-3" ], + "support": { + "source": "https://github.com/php-fig/log/tree/1.1.4" + }, "time": "2021-05-03T11:20:27+00:00" }, { @@ -2123,6 +2303,10 @@ "xml", "xmldsig" ], + "support": { + "issues": "https://github.com/robrichards/xmlseclibs/issues", + "source": "https://github.com/robrichards/xmlseclibs/tree/3.1.1" + }, "time": "2020-09-05T13:00:25+00:00" }, { @@ -2196,31 +2380,30 @@ "micro", "router" ], + "support": { + "issues": "https://github.com/slimphp/Slim/issues", + "source": "https://github.com/slimphp/Slim/tree/3.x" + }, "time": "2019-11-28T17:40:33+00:00" }, { "name": "smarty/smarty", - "version": "v2.6.31", + "version": "v2.6.33", "source": { "type": "git", "url": "https://github.com/smarty-php/smarty.git", - "reference": "4ab9757b492f08a38f68123a6e7c1df7110bbc49" + "reference": "533fa2abe308dcc009c7bdab977d530b32408346" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/smarty-php/smarty/zipball/4ab9757b492f08a38f68123a6e7c1df7110bbc49", - "reference": "4ab9757b492f08a38f68123a6e7c1df7110bbc49", + "url": "https://api.github.com/repos/smarty-php/smarty/zipball/533fa2abe308dcc009c7bdab977d530b32408346", + "reference": "533fa2abe308dcc009c7bdab977d530b32408346", "shasum": "" }, "require": { "php": ">=5.2" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.6.x-dev" - } - }, "autoload": { "classmap": [ "libs/Smarty.class.php", @@ -2247,7 +2430,7 @@ "keywords": [ "templating" ], - "time": "2017-11-03T06:39:13+00:00" + "time": "2021-10-23T12:46:52+00:00" }, { "name": "soundasleep/html2text", @@ -2297,6 +2480,11 @@ "php", "text" ], + "support": { + "email": "support@jevon.org", + "issues": "https://github.com/soundasleep/html2text/issues", + "source": "https://github.com/soundasleep/html2text/tree/master" + }, "time": "2017-04-19T22:01:50+00:00" }, { @@ -2682,6 +2870,9 @@ "configuration", "options" ], + "support": { + "source": "https://github.com/symfony/options-resolver/tree/v3.4.47" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -2996,6 +3187,9 @@ ], "description": "Symfony Validator Component", "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/validator/tree/v3.4.47" + }, "funding": [ { "url": "https://symfony.com/sponsor", @@ -3110,6 +3304,9 @@ "tinymce", "wysiwyg" ], + "support": { + "source": "https://github.com/tinymce/tinymce-dist/tree/4.9.11" + }, "time": "2020-07-13T05:29:19+00:00" }, { @@ -3165,20 +3362,24 @@ "middleware", "psr-7" ], + "support": { + "issues": "https://github.com/tuupola/slim-jwt-auth/issues", + "source": "https://github.com/tuupola/slim-jwt-auth/tree/2.x" + }, "time": "2018-04-03T06:12:18+00:00" }, { "name": "vlucas/phpdotenv", - "version": "v3.6.8", + "version": "v3.6.9", "source": { "type": "git", "url": "https://github.com/vlucas/phpdotenv.git", - "reference": "5e679f7616db829358341e2d5cccbd18773bdab8" + "reference": "a1bf4c9853d90ade427b4efe35355fc41b3d6988" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/5e679f7616db829358341e2d5cccbd18773bdab8", - "reference": "5e679f7616db829358341e2d5cccbd18773bdab8", + "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/a1bf4c9853d90ade427b4efe35355fc41b3d6988", + "reference": "a1bf4c9853d90ade427b4efe35355fc41b3d6988", "shasum": "" }, "require": { @@ -3189,7 +3390,7 @@ "require-dev": { "ext-filter": "*", "ext-pcre": "*", - "phpunit/phpunit": "^4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20" + "phpunit/phpunit": "^4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.21" }, "suggest": { "ext-filter": "Required to use the boolean validator.", @@ -3213,13 +3414,11 @@ "authors": [ { "name": "Graham Campbell", - "email": "graham@alt-three.com", - "homepage": "https://gjcampbell.co.uk/" + "email": "hello@gjcampbell.co.uk" }, { "name": "Vance Lucas", - "email": "vance@vancelucas.com", - "homepage": "https://vancelucas.com/" + "email": "vance@vancelucas.com" } ], "description": "Loads environment variables from `.env` to `getenv()`, `$_ENV` and `$_SERVER` automagically.", @@ -3238,7 +3437,7 @@ "type": "tidelift" } ], - "time": "2021-01-20T14:39:46+00:00" + "time": "2021-10-02T19:07:56+00:00" }, { "name": "voku/anti-xss", @@ -3295,6 +3494,10 @@ "security", "xss" ], + "support": { + "issues": "https://github.com/voku/anti-xss/issues", + "source": "https://github.com/voku/anti-xss/tree/php_old" + }, "time": "2018-04-26T18:43:51+00:00" }, { @@ -3365,6 +3568,10 @@ "utf-8", "utf8" ], + "support": { + "issues": "https://github.com/voku/portable-utf8/issues", + "source": "https://github.com/voku/portable-utf8/tree/master" + }, "time": "2017-10-08T23:25:51+00:00" }, { @@ -3418,16 +3625,16 @@ }, { "name": "zbateson/mail-mime-parser", - "version": "1.3.2", + "version": "1.3.3", "source": { "type": "git", "url": "https://github.com/zbateson/mail-mime-parser.git", - "reference": "8eb590750772849189c7fa30ed52bcdcd2c9d1ef" + "reference": "244b70963945293b5225da2553239a06987d1a11" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zbateson/mail-mime-parser/zipball/8eb590750772849189c7fa30ed52bcdcd2c9d1ef", - "reference": "8eb590750772849189c7fa30ed52bcdcd2c9d1ef", + "url": "https://api.github.com/repos/zbateson/mail-mime-parser/zipball/244b70963945293b5225da2553239a06987d1a11", + "reference": "244b70963945293b5225da2553239a06987d1a11", "shasum": "" }, "require": { @@ -3475,20 +3682,26 @@ "parser", "php-imap" ], - "time": "2021-07-08T19:06:28+00:00" + "funding": [ + { + "url": "https://github.com/zbateson", + "type": "github" + } + ], + "time": "2021-11-06T00:47:49+00:00" }, { "name": "zbateson/mb-wrapper", - "version": "1.0.1", + "version": "1.1.0", "source": { "type": "git", "url": "https://github.com/zbateson/mb-wrapper.git", - "reference": "721b3dfbf7ab75fee5ac60a542d7923ffe59ef6d" + "reference": "547d73a04912728cf0bb772d43e5a17e63cdf168" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zbateson/mb-wrapper/zipball/721b3dfbf7ab75fee5ac60a542d7923ffe59ef6d", - "reference": "721b3dfbf7ab75fee5ac60a542d7923ffe59ef6d", + "url": "https://api.github.com/repos/zbateson/mb-wrapper/zipball/547d73a04912728cf0bb772d43e5a17e63cdf168", + "reference": "547d73a04912728cf0bb772d43e5a17e63cdf168", "shasum": "" }, "require": { @@ -3497,7 +3710,7 @@ "symfony/polyfill-mbstring": "^1.9" }, "require-dev": { - "phpunit/phpunit": "^4.8 || ^5.7 || ^6.5" + "sanmai/phpunit-legacy-adapter": "^6.3 || ^8" }, "suggest": { "ext-iconv": "For best support/performance", @@ -3532,7 +3745,13 @@ "multibyte", "string" ], - "time": "2020-10-21T22:14:27+00:00" + "funding": [ + { + "url": "https://github.com/zbateson", + "type": "github" + } + ], + "time": "2021-11-09T18:05:07+00:00" }, { "name": "zbateson/stream-decorators", @@ -3583,6 +3802,16 @@ "stream", "uuencode" ], + "support": { + "issues": "https://github.com/zbateson/stream-decorators/issues", + "source": "https://github.com/zbateson/stream-decorators/tree/1.0.6" + }, + "funding": [ + { + "url": "https://github.com/zbateson", + "type": "github" + } + ], "time": "2021-07-08T19:01:59+00:00" }, { @@ -3624,6 +3853,9 @@ "framework", "zend" ], + "support": { + "source": "https://github.com/zf1/zend-cache/tree/release-1.12.11" + }, "time": "2015-04-30T11:07:42+00:00" }, { @@ -3662,6 +3894,9 @@ "framework", "zend" ], + "support": { + "source": "https://github.com/zf1/zend-crypt/tree/release-1.12.18" + }, "time": "2017-07-12T00:38:34+00:00" }, { @@ -3699,6 +3934,9 @@ "framework", "zend" ], + "support": { + "source": "https://github.com/zf1/zend-exception/tree/release-1.12.11" + }, "time": "2015-04-30T11:10:20+00:00" }, { @@ -3744,6 +3982,9 @@ "gdata", "zend" ], + "support": { + "source": "https://github.com/zf1/zend-gdata/tree/release-1.12.18" + }, "time": "2017-07-12T00:37:51+00:00" }, { @@ -3784,6 +4025,9 @@ "http", "zend" ], + "support": { + "source": "https://github.com/zf1/zend-http/tree/master" + }, "time": "2017-07-12T00:28:01+00:00" }, { @@ -3822,6 +4066,9 @@ "loader", "zend" ], + "support": { + "source": "https://github.com/zf1/zend-loader/tree/release-1.12.12" + }, "time": "2017-07-11T23:30:42+00:00" }, { @@ -3865,6 +4112,9 @@ "locale", "zend" ], + "support": { + "source": "https://github.com/zf1/zend-locale/tree/release-1.12.12" + }, "time": "2017-07-11T23:32:54+00:00" }, { @@ -3903,6 +4153,9 @@ "mime", "zend" ], + "support": { + "source": "https://github.com/zf1/zend-mime/tree/release-1.12.11" + }, "time": "2015-04-30T11:08:38+00:00" }, { @@ -3947,6 +4200,9 @@ "oauth", "zend" ], + "support": { + "source": "https://github.com/zf1/zend-oauth/tree/release-1.12.11" + }, "time": "2015-04-30T11:10:25+00:00" }, { @@ -3988,6 +4244,9 @@ "registry", "zend" ], + "support": { + "source": "https://github.com/zf1/zend-registry/tree/master" + }, "time": "2017-07-11T23:55:24+00:00" }, { @@ -4026,6 +4285,9 @@ "search", "zend" ], + "support": { + "source": "https://github.com/zf1/zend-search/tree/release-1.12.11" + }, "time": "2015-04-30T11:08:53+00:00" }, { @@ -4067,6 +4329,9 @@ "search", "zend" ], + "support": { + "source": "https://github.com/zf1/zend-search-lucene/tree/master" + }, "time": "2017-07-12T00:31:21+00:00" }, { @@ -4113,6 +4378,9 @@ "uri", "zend" ], + "support": { + "source": "https://github.com/zf1/zend-uri/tree/release-1.12.11" + }, "time": "2015-04-30T11:09:34+00:00" }, { @@ -4158,6 +4426,9 @@ "validate", "zend" ], + "support": { + "source": "https://github.com/zf1/zend-validate/tree/release-1.12.18" + }, "time": "2017-07-12T00:41:31+00:00" }, { @@ -4195,6 +4466,9 @@ "version", "zend" ], + "support": { + "source": "https://github.com/zf1/zend-version/tree/master" + }, "time": "2017-07-12T00:54:38+00:00" }, { @@ -4233,6 +4507,10 @@ "xml", "zend" ], + "support": { + "issues": "https://github.com/zf1/zend-xml/issues", + "source": "https://github.com/zf1/zend-xml/tree/release-1.12.15" + }, "time": "2017-07-11T23:59:06+00:00" } ], @@ -4780,16 +5058,16 @@ }, { "name": "guzzlehttp/promises", - "version": "1.4.1", + "version": "1.5.1", "source": { "type": "git", "url": "https://github.com/guzzle/promises.git", - "reference": "8e7d04f1f6450fef59366c399cfad4b9383aa30d" + "reference": "fe752aedc9fd8fcca3fe7ad05d419d32998a06da" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/8e7d04f1f6450fef59366c399cfad4b9383aa30d", - "reference": "8e7d04f1f6450fef59366c399cfad4b9383aa30d", + "url": "https://api.github.com/repos/guzzle/promises/zipball/fe752aedc9fd8fcca3fe7ad05d419d32998a06da", + "reference": "fe752aedc9fd8fcca3fe7ad05d419d32998a06da", "shasum": "" }, "require": { @@ -4801,7 +5079,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.4-dev" + "dev-master": "1.5-dev" } }, "autoload": { @@ -4817,17 +5095,46 @@ "MIT" ], "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, { "name": "Michael Dowling", "email": "mtdowling@gmail.com", "homepage": "https://github.com/mtdowling" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" } ], "description": "Guzzle promises library", "keywords": [ "promise" ], - "time": "2021-03-07T09:25:29+00:00" + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/promises", + "type": "tidelift" + } + ], + "time": "2021-10-22T20:56:57+00:00" }, { "name": "hamcrest/hamcrest-php", @@ -4980,16 +5287,16 @@ }, { "name": "mikey179/vfsstream", - "version": "v1.6.9", + "version": "v1.6.10", "source": { "type": "git", "url": "https://github.com/bovigo/vfsStream.git", - "reference": "2257e326dc3d0f50e55d0a90f71e37899f029718" + "reference": "250c0825537d501e327df879fb3d4cd751933b85" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bovigo/vfsStream/zipball/2257e326dc3d0f50e55d0a90f71e37899f029718", - "reference": "2257e326dc3d0f50e55d0a90f71e37899f029718", + "url": "https://api.github.com/repos/bovigo/vfsStream/zipball/250c0825537d501e327df879fb3d4cd751933b85", + "reference": "250c0825537d501e327df879fb3d4cd751933b85", "shasum": "" }, "require": { @@ -5022,7 +5329,7 @@ ], "description": "Virtual file system to mock the real file system in unit tests.", "homepage": "http://vfs.bovigo.org/", - "time": "2021-07-16T08:08:02+00:00" + "time": "2021-09-25T08:05:01+00:00" }, { "name": "mockery/mockery", @@ -6098,6 +6405,20 @@ ], "description": "Symfony BrowserKit Component", "homepage": "https://symfony.com", + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], "time": "2020-10-24T10:57:07+00:00" }, { @@ -6146,6 +6467,20 @@ ], "description": "Symfony CssSelector Component", "homepage": "https://symfony.com", + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], "time": "2020-10-24T10:57:07+00:00" }, { @@ -6198,6 +6533,20 @@ ], "description": "Symfony DomCrawler Component", "homepage": "https://symfony.com", + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], "time": "2020-10-24T10:57:07+00:00" }, { diff --git a/files.md5 b/files.md5 index 858a27628c5..8440b4fbf7e 100755 --- a/files.md5 +++ b/files.md5 @@ -1,5 +1,5 @@ '69a1e7b3d7755a2a63499a16ddae81cf', './Api/Core/Config/slim.php' => 'b134e68765e6a1403577e2a5a06322b8', @@ -51,7 +51,6 @@ $md5_string = array ( './Api/V8/JsonApi/Response/PaginationResponse.php' => 'd3c9ddc25c1cd5f82f0635025e717f64', './Api/V8/JsonApi/Response/RelationshipResponse.php' => '8a9824924da4a9ef5640ce9ec1e9c7cb', './Api/V8/Middleware/ParamsMiddleware.php' => 'd05b267a88e6a36a2558cd8931961861', - './Api/V8/OAuth2/.gitignore' => '80f2f13fb781b4992a84fe4da4fda3d2', './Api/V8/OAuth2/Entity/AccessTokenEntity.php' => '1b53023bd78223ddac6400d29af48d96', './Api/V8/OAuth2/Entity/ClientEntity.php' => '248eb82b0426a4671e3cd64693f8527d', './Api/V8/OAuth2/Entity/RefreshTokenEntity.php' => '64d0cf96978dd4bf7e8bc837580eed7c', @@ -116,7 +115,7 @@ $md5_string = array ( './ModuleInstall/PackageManager/tpls/PackageManagerLicense.tpl' => 'df5e267d1df5ce08fb9406e42d5b4816', './ModuleInstall/PackageManager/tpls/PackageManagerScripts.tpl' => '98e396c0aa57329731fda19c790fffb2', './ModuleInstall/extensions.php' => '87596ad3f28a39c996a5551cad3b5cab', - './README.md' => '3fc46c38fce81b7aa4e54e94e8151a8c', + './README.md' => '2945c7eb2a50df410d9bbcfd65a3e2ef', './RoboFile.php' => '045b82c1df69553824d0e4ffcce6e03c', './SugarSecurity.php' => '47e316b2d408e8c5192c8ea4a4f921b3', './TreeData.php' => '32873e20cb5fd33f9d1cdaf18c3cac5c', @@ -506,7 +505,7 @@ $md5_string = array ( './Zend/Version.php' => 'e313ef824309253dcfab90ff1d38ac86', './campaign_tracker.php' => '321e43ca8b664e6ca57ae5589e8c0667', './composer.json' => '23a2894e04aac300bb832241fc2b352e', - './composer.lock' => 'c81b9ca0686fe63b57414ad6e7d44f9c', + './composer.lock' => '3d470051e463bc5e7e6e0a89fc357d45', './cron.php' => '0b8b6bd839a2232a8da074b31feaa708', './crossdomain.xml' => '24b7711640c652b21aa89c9d83d6ec13', './data/BeanFactory.php' => '84b7c36b6a59ea8c5c4069659cc72950', @@ -520,7 +519,7 @@ $md5_string = array ( './data/Relationships/One2OneRelationship.php' => 'c46d3067d5651fbc928763600d5e1a51', './data/Relationships/RelationshipFactory.php' => 'f657e59f0ec38f6b6fb276261a095a2d', './data/Relationships/SugarRelationship.php' => '888cafd8937b15f3fc2ab3a4b5c1a79e', - './data/SugarBean.php' => '39cea40c6250e6cef2705e1d7cc40802', + './data/SugarBean.php' => '570930b7f8bc50c1d063ebb6c8ac170b', './deprecated.php' => 'f5f507fd6314f38d29c97e2cc2c62239', './dictionary.php' => 'b7c1370fb75a2940c04db74627c4462c', './download.php' => 'f2d366039d134ac463ff1e75634ce509', @@ -1178,7 +1177,7 @@ $md5_string = array ( './include/SugarFields/Parsers/SearchFormMetaParser.php' => 'f19d734f12f7bdb7293e9eb6d1d82c78', './include/SugarFields/SugarFieldHandler.php' => 'c65abef980ae501bb2c12029075536bc', './include/SugarFolders/SugarFolderEmptyException.php' => 'd8052a2f3abf6ff8db9563bf3e22842e', - './include/SugarFolders/SugarFolders.php' => '814a1c92c31426226a41487accc06c96', + './include/SugarFolders/SugarFolders.php' => '43718e154ffb68d39bc44643df05cf46', './include/SugarHtml/SugarHtml.php' => '3eb46e8d638bfb640492f3b389e13461', './include/SugarHttpClient.php' => 'bf0aedbad0c73763186e37fb9107d3d7', './include/SugarLogger/LoggerManager.php' => '814e63a1a644b08f5964293a2c87b3cb', @@ -1483,12 +1482,12 @@ $md5_string = array ( './include/contextMenus/menuDefs/sugarPerson.php' => '215d244d2fbd4bce5facc8fe2091cc27', './include/controller/Controller.php' => 'f9453da773d4db9165aaf4906466d1cf', './include/database/DBHelper.php' => '7d600a22fb4e06c45d80f6e0183ada2d', - './include/database/DBManager.php' => '2817eadf4f2366545193a8d2e483195d', + './include/database/DBManager.php' => '4f2f331c51dc7c9ad0485f5e34b59bf9', './include/database/DBManagerFactory.php' => '8cca13010c76045f0a54bd01042d4e2d', './include/database/FreeTDSHelper.php' => 'bb9c0ba6a08f9b8f629b8f2372588e42', './include/database/FreeTDSManager.php' => '23ec109e38260e0ffa2a1676d486fd62', './include/database/MssqlHelper.php' => '0aecb70de5c96e5d6a29b5c1b85656ba', - './include/database/MssqlManager.php' => '115a81f91f1ddf6ebfba8ffca5839fad', + './include/database/MssqlManager.php' => '8c89266db230ce8664eac1d280f7b22c', './include/database/MysqlHelper.php' => '67a76b722a7e6e63f3e4abb31b756bde', './include/database/MysqlManager.php' => 'e291bd0e38fde596a8bd1f6c75688eaa', './include/database/MysqliManager.php' => '31cf1de8eba53e933ea116870129da12', @@ -1729,7 +1728,6 @@ $md5_string = array ( './include/javascript/jsAlerts.php' => 'f77c3881be8b27f6c990ea6c48249386', './include/javascript/jsclass_async.js' => 'd82028e460c2402da3d27799716db024', './include/javascript/jsclass_base.js' => '563f94e590550cd1ec0bad3ef8f15f83', - './include/javascript/jstree/.gitignore' => '85bb64da0a3f37203f2ce6ed3a090f71', './include/javascript/jstree/LICENSE-MIT' => '2689d689a685c1426f0a94be57055f9b', './include/javascript/jstree/README.md' => 'b098a09c20d733b0893749f436106d7d', './include/javascript/jstree/bower.json' => 'b43411dc3387660f5662ff075d2fe230', @@ -2499,7 +2497,7 @@ $md5_string = array ( './include/javascript/yui/build/yuitest/yuitest_core.js' => 'ed5230a0f4a885d8ea51c2fe78895d07', './include/javascript/yui/ygDDList.js' => '0cd9051a220de7e8c79bf5b9cccce10f', './include/json_config.php' => '6f367df3b76b387d9c7e80b7e59056a0', - './include/language/en_us.lang.php' => 'eecfd00612ac62039dc5d067b580a4fb', + './include/language/en_us.lang.php' => 'b2924ee3be5f5accc147fa882a94e6e3', './include/language/en_us.notify_template.html' => 'c6a897ace7af46a44889dfab1a9d44c5', './include/language/getJSLanguage.php' => '1bc910bd5a9953fbf443d3d97fddbffa', './include/language/jsLanguage.php' => 'a4f5810e3d1a3c4d0aad0c63b6860beb', @@ -2559,7 +2557,6 @@ $md5_string = array ( './include/resource/ResourceManager.php' => '34e55efa7bb235cb9f823f887b998497', './include/social/facebook/facebook.class.php' => 'a05e1f2158d36c28b7db08c675c4cebb', './include/social/facebook/facebook.js' => '8d2e3b14e60042cb7d32b7f9d2e306a0', - './include/social/facebook/facebook_sdk/.gitignore' => 'c70225b31dfd58749ffe8a1596368282', './include/social/facebook/facebook_sdk/changelog.md' => '31fce8336dd5a3f061686f19e19bd56d', './include/social/facebook/facebook_sdk/composer.json' => '5d17b681de9984e9af98629c2404f0a4', './include/social/facebook/facebook_sdk/examples/example.php' => 'e1cd21e8bae7f83fc07b9ab7b5b708f9', @@ -2635,7 +2632,7 @@ $md5_string = array ( './include/utils/db_utils.php' => '7fa7c67aec162fd9da259a1f33cef514', './include/utils/encryption_utils.php' => 'cf87e84efe3764464056e6473aac9c79', './include/utils/external_cache.php' => '7439d9b6252e242a9c852ecb58df44ec', - './include/utils/file_utils.php' => '9142714ee0573312e0e780ccad744e88', + './include/utils/file_utils.php' => 'b795e50d631c7d46d6b018541a4400c5', './include/utils/layout_utils.php' => '6c63c0b044545d05b5c3d82568b7559d', './include/utils/logic_utils.php' => '5749c75e624b8b97edd775f8211955c7', './include/utils/mvc_utils.php' => '6c59ad12165b40967ac51e6f644975b0', @@ -2927,7 +2924,6 @@ $md5_string = array ( './lib/API/JsonApi/v1/Resource/ResourceIdentifier.php' => 'b970064d6e903d3986b1e709b2ed14ca', './lib/API/JsonApi/v1/Resource/SuiteBeanResource.php' => '70039bac401d7af441505cd9f78a9dd9', './lib/API/JsonApi/v1/schema.json' => '1fe1aa9365e189712bedc71ee875bfd7', - './lib/API/OAuth2/.gitignore' => 'f72bf08fa0efca7ed747c5e6c55ccf03', './lib/API/OAuth2/.htaccess' => '4fe6db46ff1074349c8ffbb840c30de9', './lib/API/OAuth2/Entities/AccessTokenEntity.php' => '7ae1d3fb58d93978e8802c6107c9b593', './lib/API/OAuth2/Entities/AuthCodeEntity.php' => 'a706d552fe2a097564054bb53ba395dd', @@ -3759,7 +3755,7 @@ $md5_string = array ( './modules/AOS_PDF_Templates/formLetter.php' => '4208ff5eb5b092af149e1c06d2558d4b', './modules/AOS_PDF_Templates/formLetterPdf.php' => '1a43a553ed3ff0053c9e382832d2055b', './modules/AOS_PDF_Templates/generatePdf.php' => '7cedb7cc68d0dbaf97c1eeb89eb8f6de', - './modules/AOS_PDF_Templates/language/en_us.lang.php' => '3db4859b9704f37f308eda030143c518', + './modules/AOS_PDF_Templates/language/en_us.lang.php' => '17172f9553e94c7d52319d8980bbd393', './modules/AOS_PDF_Templates/metadata/SearchFields.php' => '236f33a75cc59a902e6d86e2326948b5', './modules/AOS_PDF_Templates/metadata/dashletviewdefs.php' => '53c60c5458d3420866439841f33e20c0', './modules/AOS_PDF_Templates/metadata/detailviewdefs.php' => '2270eb15fbc4e90436c97d1db2bd612f', @@ -4496,7 +4492,7 @@ $md5_string = array ( './modules/Charts/code/Chart_pipeline_by_sales_stage.php' => 'c6e9ee42ba57acb8ed5d2c9d5961eca4', './modules/Charts/code/predefined_charts.php' => '634c4f0a5c99b0f67b8cc4278d2888b6', './modules/Charts/language/en_us.lang.php' => '2013acc7fd28efad48cff3d3dc365c0e', - './modules/Configurator/Configurator.php' => '862cf400f72ca52e0e355598dd3af96a', + './modules/Configurator/Configurator.php' => 'c5861ed1ca036d16145a946f18f45297', './modules/Configurator/Forms.php' => '6bdf86ac20d4dfe2d137bc71f7dc0570', './modules/Configurator/LogView.php' => '64da13ee9bf50c75afbc16375c3283be', './modules/Configurator/Menu.php' => '1f69df3f11b60426def8f47a7cbce4fa', @@ -4505,7 +4501,7 @@ $md5_string = array ( './modules/Configurator/controller.php' => 'bc04ddd64be107db3a3155cab6d366d8', './modules/Configurator/language/en_us.lang.php' => 'c23671214db5659edeaf649b246b8fa8', './modules/Configurator/metadata/SugarpdfSettingsdefs.php' => 'ca8649f8b1554e8aec32fe8440ff781e', - './modules/Configurator/tpls/EditView.tpl' => '471dca5dca7ba38af4880e190c1a7b91', + './modules/Configurator/tpls/EditView.tpl' => '95db9efe07fce13f8f4c20437028116e', './modules/Configurator/tpls/SugarpdfSettings.tpl' => 'c97732698b0ba12862887d64a3aa6c6c', './modules/Configurator/tpls/SugarpdfSettingsFields.tpl' => '56a0d22112e9add023d94f0bd8a0e237', './modules/Configurator/tpls/addFontResult.tpl' => 'beac4b7b439e1030c9e117f0fb26d4e4', @@ -4695,7 +4691,7 @@ $md5_string = array ( './modules/Documents/views/view.detail.php' => 'eac3d5189949259727d9a1037f0e0070', './modules/Documents/views/view.edit.php' => '93a9ae0bd73f083e9279a1be2244f33d', './modules/Documents/views/view.extdoc.php' => 'a596ceb8005df2241ae53b4146bfc8f5', - './modules/DynamicFields/DynamicField.php' => '478dd69f0e1c248983c764c6b7e716aa', + './modules/DynamicFields/DynamicField.php' => '8642d8c4a448b9520e2e86914d70f6f0', './modules/DynamicFields/FieldCases.php' => '8d4db031d6ec058dfe3c88e9b2457be8', './modules/DynamicFields/FieldViewer.php' => '08819376ba21279a5535d69d79ced743', './modules/DynamicFields/FieldsMetaData.php' => 'abecda4be388410a423469cd620122ed', @@ -5223,21 +5219,21 @@ $md5_string = array ( './modules/Import/tpls/listview.tpl' => 'ff88ce50f647b6aa34db2e293136c675', './modules/Import/tpls/listviewpaginator.tpl' => '5b610271b4339973ebe7e4b91db8c9bf', './modules/Import/tpls/step1.tpl' => '0a7f0d07671d8376abdd6e351a140dc0', - './modules/Import/tpls/step2.tpl' => '322e031c8566bc0fecaf4b8f4c12003a', + './modules/Import/tpls/step2.tpl' => '436721f5e9bdcd7366f6fcd5d9c18c59', './modules/Import/tpls/step3.tpl' => '0fc61d15e73a97daa586b4de350ecdb7', './modules/Import/tpls/undo.tpl' => '540c0609ac93f7aa47ab4e96f937c657', './modules/Import/tpls/wizardWrapper.tpl' => '374fbc931fc6d3689a8eb013aee872e1', './modules/Import/vardefs.php' => '4ac6a307f85bc9d772c080cd00846798', './modules/Import/views/ImportListView.php' => '768fc56c82c9b6497ff7a34131d3fcfc', './modules/Import/views/ImportView.php' => '4eda5455c39b6b3a3f095ef002b61710', - './modules/Import/views/view.confirm.php' => '654929157ab5ae3d60a7fe795c2db31a', + './modules/Import/views/view.confirm.php' => '620c30fc9a5176be755ce79e7fe48865', './modules/Import/views/view.dupcheck.php' => 'fb226cd3953b931e72400eb3a3ec5403', './modules/Import/views/view.error.php' => '33840ae6a99a6913715d60da1917e146', './modules/Import/views/view.extdupcheck.php' => '49a87e84532e868e632387033e745038', './modules/Import/views/view.last.php' => 'dd767d6243f3ee8818f07fb422b3d499', './modules/Import/views/view.step1.php' => '7f515a1fc6c2c182c24d6af3c65d73b3', './modules/Import/views/view.step2.php' => '30d49b03050d05f5605dc935ea87fd9a', - './modules/Import/views/view.step3.php' => 'fcb36271f73fdc163bf0fd7452aff1d2', + './modules/Import/views/view.step3.php' => '45a3e7fbc2ecc487f168517622c9b5a7', './modules/Import/views/view.step4.php' => '8694e2f07e6ddc9128af648d42aa802d', './modules/Import/views/view.undo.php' => '0f11a824c733c819214ef88f666358b5', './modules/InboundEmail/AOPInboundEmail.php' => '2c74ce41273c1982b221a8862dfcc997', @@ -5920,7 +5916,7 @@ $md5_string = array ( './modules/Schedulers/Save.php' => 'f074612e8858b16ed63efc57aa47c689', './modules/Schedulers/Scheduler.php' => 'cafa253347a12b914f3c8abfee7e6461', './modules/Schedulers/Schedulers.js' => '9450466198ec79f9d11b6f2b11c44624', - './modules/Schedulers/_AddJobsHere.php' => 'f3b489bc29f37e17f96425cee397fa4e', + './modules/Schedulers/_AddJobsHere.php' => '1204fffcec2290f810f4feb721bcec81', './modules/Schedulers/field_arrays.php' => 'e2671fc2306b56af3562b1b092ae05af', './modules/Schedulers/language/en_us.lang.php' => 'b94cb3903f461e9bfdeba54cf8015736', './modules/Schedulers/metadata/SearchFields.php' => '89dec0da90e39ab857fcd1bbf6c3423a', @@ -6358,7 +6354,7 @@ $md5_string = array ( './modules/Users/tpls/EditViewHeader.tpl' => '099f5e4896d623b64d44f243c33941b2', './modules/Users/tpls/QuickEditFooter.tpl' => 'b7a9c930f9e885fcc51b7da358411c31', './modules/Users/tpls/wizard.tpl' => 'acafbe8bf6a878386c99694798c79174', - './modules/Users/vardefs.php' => 'b2eef83cd83e885aee01dd2f75afc18c', + './modules/Users/vardefs.php' => 'e442489d83d7749c1555418b1fd80b69', './modules/Users/views/view.detail.php' => 'b3ff99efac48a47a4654df64ba1cbe1d', './modules/Users/views/view.edit.php' => '80a046d019b1aaf66bd4200bc831efe1', './modules/Users/views/view.list.php' => 'e314cc246214b55bf32383050a297f59', @@ -6581,7 +6577,7 @@ $md5_string = array ( './soap.php' => 'e28988c2e0b8e2c484587b537a710525', './sugar_version.json' => 'bdfbcefae2f9af559bef6a36367df7bb', './sugar_version.php' => 'db7b6c8d51f87879fce1e6172eedfbed', - './suitecrm_version.php' => '06faf6ccf7d4608f9098c06add7374b5', + './suitecrm_version.php' => '8038561cf0d7daf2f4434655fa3e4661', './themes/SuiteP/css/Dawn/color-palette.scss' => 'f85621a6c8b0cd015a8c4703e83e519b', './themes/SuiteP/css/Dawn/icons.scss' => 'd59f8c5855e7a8df09542a663835a196', './themes/SuiteP/css/Dawn/style.css' => '96e228603dfc1458e19c4d07013f2ef3', diff --git a/include/SugarFolders/SugarFolders.php b/include/SugarFolders/SugarFolders.php index e11e7eaa098..d1e64f43b80 100755 --- a/include/SugarFolders/SugarFolders.php +++ b/include/SugarFolders/SugarFolders.php @@ -247,10 +247,7 @@ public function checkEmailExistForFolder($id) $res = $this->db->query($query); $a = $this->db->fetchByAssoc($res); - if ($a['c'] > 0) { - return true; - } - return false; + return $a['c'] > 0; } /** @@ -708,10 +705,6 @@ public function addBean(SugarBean $bean) " AND deleted = 0"; $result = $this->db->fetchByAssoc($this->db->query($q)); - if ($result === false){ - $GLOBALS['log']->debug("Error in query to check for existing email folders"); - return false; - } if($result) { $GLOBALS['log']->debug("*** FOLDERS: addBean() is trying to create an already existing relationship"); @@ -1302,8 +1295,10 @@ public function save($addSubscriptions = true) } // if parent_id is set, update parent's has_child flag - $query3 = "UPDATE folders SET has_child = 1 WHERE id = " . $this->db->quoted($this->parent_folder); - $r3 = $this->db->query($query3); + if (!empty($this->parent_folder)) { + $query3 = "UPDATE folders SET has_child = 1 WHERE id = " . $this->db->quoted($this->parent_folder); + $r3 = $this->db->query($query3); + } } else { $query = "UPDATE folders SET " . "name = " . $this->db->quoted($this->name) . ", " . diff --git a/include/language/en_us.lang.php b/include/language/en_us.lang.php index 139ffba29fa..45b49300b0c 100755 --- a/include/language/en_us.lang.php +++ b/include/language/en_us.lang.php @@ -3683,3 +3683,9 @@ $app_strings['IMAP_HANDLER_ERROR_NO_KEY'] = 'Key not found.'; $app_strings['IMAP_HANDLER_ERROR_KEY_SAVE'] = 'Key saving error.'; $app_strings['IMAP_HANDLER_ERROR_UNKNOWN'] = 'Unknown error'; + + +$app_strings['ERR_INVALID_FILE_NAME'] = 'Invalid file name:'; +$app_strings['LBL_LOGGER_VALID_FILENAME_CHARACTERS'] = 'This can only be alphanumeric characters, plus \'.\' , \'-\' and \'_\''; +$app_strings['LBL_LOGGER_INVALID_FILENAME'] = 'Invalid import file name'; + diff --git a/include/utils/file_utils.php b/include/utils/file_utils.php index 10892426ce2..ebd9f1e97be 100755 --- a/include/utils/file_utils.php +++ b/include/utils/file_utils.php @@ -477,3 +477,25 @@ function cleanDirName($name) { return str_replace(array("\\", "/", "."), "", $name); } + +/** + * Check if has valid file name + * @param string $fieldName + * @param string $value + * @return bool + */ +function hasValidFileName($fieldName, $value) { + + if (empty($value)){ + LoggerManager::getLogger()->error("Invalid filename for $fieldName : '$value'."); + return false; + } + + $isValid = preg_match('/^[\w\-.]+(\.\w+)?$/', $value); + if ($isValid === false || $isValid < 1) { + LoggerManager::getLogger()->error("Invalid filename for $fieldName : '$value'."); + return false; + } + + return true; +} diff --git a/modules/Configurator/Configurator.php b/modules/Configurator/Configurator.php index 9a7dec60d82..2cf67c5d788 100755 --- a/modules/Configurator/Configurator.php +++ b/modules/Configurator/Configurator.php @@ -91,20 +91,17 @@ public function loadConfig() public function populateFromPost() { $sugarConfig = SugarConfig::getInstance(); + + $this->checkLoggerFileName(); + foreach ($_POST as $key => $value) { - if ($key == "logger_file_ext") { + if ($key === "logger_file_ext" || $key === 'logger_file_name') { if ($value === '') { $GLOBALS['log']->security("Log file extension can't be blank."); continue; } - - $trim_value = preg_replace('/.*\.([^\.]+)$/', '\1', $value); - $badext = array_map('strtolower', $this->config['upload_badext']); - if (in_array(strtolower($trim_value), $badext)) { - $GLOBALS['log']->security("Invalid log file extension: trying to use invalid file extension '$value'."); - continue; - } } + if (isset($this->config[$key]) || in_array($key, $this->allow_undefined)) { if (strcmp((string)$value, 'true') == 0) { $value = true; @@ -122,6 +119,119 @@ public function populateFromPost() } } + public function checkLoggerFileName() + { + + $logFileName = ''; + if (!empty($_POST['logger_file_name'])) { + $logFileName = $_POST['logger_file_name']; + } + + $logFileExt = ''; + if (!empty($_POST['logger_file_ext'])) { + $logFileExt = $_POST['logger_file_ext']; + } + + $logFileExt = $this->prependDot($logFileExt); + + + $fullName = $logFileName . $logFileExt; + $_POST['logger_file_name'] = $logFileName; + $_POST['logger_file_ext'] = $logFileExt; + $valid = true; + + if (!hasValidFileName('logger_file_name', $logFileName) || + !$this->hasValidExtension('logger_file_name', $logFileName) + ) { + LoggerManager::getLogger()->security("Setting logger_file_name to ''."); + $_POST['logger_file_name'] = ''; + $valid = false; + } + + if (!$this->hasValidExtension('logger_file_ext', $logFileExt)) { + $_POST['logger_file_ext'] = ''; + LoggerManager::getLogger()->security("Setting logger_file_ext to ''."); + $valid = false; + } + + if (!$valid) { + return; + } + + if (!hasValidFileName('logger_full_name', $fullName) || + !$this->hasValidExtension('logger_full_name', $fullName) + ) { + LoggerManager::getLogger()->security("Setting logger_file_name and logger_file_ext to ''."); + $_POST['logger_file_name'] = ''; + $_POST['logger_file_ext'] = ''; + } + } + + /** + * Trim value + * @param string $value + * @return string + */ + public function trimValue($value) + { + return preg_replace('/.*\.([^\.]+)$/', '\1', $value); + } + + /** + * Prepend dot + * @param string $value + * @return string + */ + public function prependDot($value) + { + + if (empty($value)) { + return $value; + } + + if ($value[0] === '.') { + return $value; + } + + return '.' . $value; + } + + /** + * Check if has valid extension + * @param string $fieldName + * @param string $value + * @return bool + */ + public function hasValidExtension($fieldName, $value) + { + + if ($value === '.' || empty($value)) { + LoggerManager::getLogger()->security("Invalid ext $fieldName : '$value'."); + + return false; + } + + $badExt = array_map('strtolower', $this->config['upload_badext']); + + $parts = explode('.', $value); + + if (empty($parts)) { + LoggerManager::getLogger()->security("Invalid ext $fieldName : '$value'."); + + return false; + } + + $ext = array_pop($parts); + + if (in_array(strtolower($this->trimValue($ext)), $badExt, true)) { + LoggerManager::getLogger()->security("Invalid $fieldName: '$value'."); + + return false; + } + + return true; + } + public function handleOverride($fromParseLoggerSettings = false) { global $sugar_config, $sugar_version; @@ -289,6 +399,7 @@ public function checkTempImage($path) $this->error = $error; return false; } + return $path; } diff --git a/modules/Configurator/tpls/EditView.tpl b/modules/Configurator/tpls/EditView.tpl index 83164472a6c..442502ac067 100755 --- a/modules/Configurator/tpls/EditView.tpl +++ b/modules/Configurator/tpls/EditView.tpl @@ -365,7 +365,10 @@ {$MOD.LBL_LOGGER_FILENAME} - + + +
{$APP.LBL_LOGGER_VALID_FILENAME_CHARACTERS}
+ {$MOD.LBL_LOGGER_FILE_EXTENSION} {$MOD.LBL_LOGGER_FILENAME_SUFFIX} diff --git a/modules/Import/tpls/step2.tpl b/modules/Import/tpls/step2.tpl index 15c7d062e2f..60ec0736d62 100755 --- a/modules/Import/tpls/step2.tpl +++ b/modules/Import/tpls/step2.tpl @@ -82,7 +82,7 @@   -  {sugar_help text=$MOD.LBL_FILE_UPLOAD_WIDGET_HELP} +
{sugar_help text=$MOD.LBL_FILE_UPLOAD_WIDGET_HELP}
{$APP.LBL_LOGGER_VALID_FILENAME_CHARACTERS}
 
@@ -181,5 +181,5 @@ + diff --git a/modules/Import/views/view.confirm.php b/modules/Import/views/view.confirm.php index cd0614bc766..269159ccd29 100755 --- a/modules/Import/views/view.confirm.php +++ b/modules/Import/views/view.confirm.php @@ -67,7 +67,19 @@ public function display() { global $mod_strings, $app_strings, $current_user; global $sugar_config, $locale; - + + if (isset($_FILES['userfile']['name']) && !hasValidFileName('import_upload_file_name', $_FILES['userfile']['name'])) { + LoggerManager::getLogger()->fatal('Invalid import file name'); + echo $app_strings['LBL_LOGGER_INVALID_FILENAME']; + return; + } + + if (isset($_REQUEST['tmp_file']) && !hasValidFileName('import_upload_file_name', $_REQUEST['tmp_file'])) { + LoggerManager::getLogger()->fatal('Invalid import file name'); + echo $app_strings['LBL_LOGGER_INVALID_FILENAME']; + return; + } + $this->ss->assign("IMPORT_MODULE", $_REQUEST['import_module']); $this->ss->assign("TYPE", (!empty($_REQUEST['type']) ? $_REQUEST['type'] : "import")); $this->ss->assign("SOURCE_ID", $_REQUEST['source_id']); diff --git a/modules/Import/views/view.step3.php b/modules/Import/views/view.step3.php index 44ec4ab264f..e3079b81660 100755 --- a/modules/Import/views/view.step3.php +++ b/modules/Import/views/view.step3.php @@ -128,6 +128,15 @@ public function display() return; } + + if (isset($uploadFileName) && !hasValidFileName('import_upload_file_name', str_replace('upload://', '', $uploadFileName))) { + echo $app_strings['LBL_LOGGER_INVALID_FILENAME']; + echo $uploadFileName; + LoggerManager::getLogger()->fatal('Invalid import file name'); + return; + } + + if (strpos($uploadFileName, 'phar://') !== false) { return; } @@ -519,7 +528,7 @@ protected function _getCSS() background: transparent url('index.php?entryPoint=getImage&themeName=Sugar&themeName=Sugar&imageName=sugar-yui-sprites.png') no-repeat 0 -90px; padding-left: 10px; cursor: pointer; - display: inline; + display: inline; } span.expand{ diff --git a/suitecrm_version.php b/suitecrm_version.php index 3da34a566af..27f24fe70e4 100755 --- a/suitecrm_version.php +++ b/suitecrm_version.php @@ -3,5 +3,5 @@ die('Not A Valid Entry Point'); } -$suitecrm_version = '7.10.33'; -$suitecrm_timestamp = '2021-09-24 17:00:00'; +$suitecrm_version = '7.10.34'; +$suitecrm_timestamp = '2021-11-19 17:00:00'; diff --git a/tests/bootstrap.php b/tests/bootstrap.php index d22acc54865..a8d2f08d603 100644 --- a/tests/bootstrap.php +++ b/tests/bootstrap.php @@ -37,6 +37,8 @@ * display the words "Powered by SugarCRM" and "Supercharged by SuiteCRM". */ +chdir(__DIR__.'/../'); + /* bootstrap composer's autoloader */ require_once __DIR__ . '/../vendor/autoload.php'; diff --git a/tests/unit/phpunit/include/SugarFolders/SugarFolderTest.php b/tests/unit/phpunit/include/SugarFolders/SugarFolderTest.php index e58d9973092..0918a01b45f 100644 --- a/tests/unit/phpunit/include/SugarFolders/SugarFolderTest.php +++ b/tests/unit/phpunit/include/SugarFolders/SugarFolderTest.php @@ -295,9 +295,6 @@ public function testCopyBean() $this->assertTrue($saved); - // reset saved - $saved = false; - $parentFolderTwo = new SugarFolder($user); $fields = array( @@ -341,9 +338,6 @@ public function testMoveFolder() $this->assertTrue($saved); - // reset saved - $saved = false; - $parentFolderTwo = new SugarFolder($user); $fields = array( @@ -355,9 +349,6 @@ public function testMoveFolder() $this->assertTrue($saved); - // reset saved - $saved = false; - $childFolder = new SugarFolder($user); $fields = array( diff --git a/tests/unit/phpunit/modules/Cases/CaseTest.php b/tests/unit/phpunit/modules/Cases/CaseTest.php index 28aa2021589..a441d5f26d5 100644 --- a/tests/unit/phpunit/modules/Cases/CaseTest.php +++ b/tests/unit/phpunit/modules/Cases/CaseTest.php @@ -214,8 +214,6 @@ public function testsave() $aCase = BeanFactory::newBean('Cases'); $aCase->name = 'test'; $aCase->priority = 'P1'; - $aCase->sentAssignmentNotifications = []; - $aCase->sentAssignmentNotifications[] = $notify_user->id; $aCase->save(); diff --git a/tests/unit/phpunit/modules/Meetings/MeetingTest.php b/tests/unit/phpunit/modules/Meetings/MeetingTest.php index bb1534339ea..4cf1edf24e0 100644 --- a/tests/unit/phpunit/modules/Meetings/MeetingTest.php +++ b/tests/unit/phpunit/modules/Meetings/MeetingTest.php @@ -243,6 +243,8 @@ public function testcreate_notification_email() public function testsend_assignment_notifications() { + $notify_user = new User(1); + $meeting = BeanFactory::newBean('Meetings'); $meeting->date_start = '2016-02-11 17:30:00'; @@ -252,9 +254,6 @@ public function testsend_assignment_notifications() $admin = BeanFactory::newBean('Administration'); $admin->retrieveSettings(); - $sendNotifications = false; - - $notify_user = new User(1); // Execute the method and test that it works and doesn't throw an exception. try {