diff --git a/composer.json b/composer.json index 8771ebdaa..24a76e25a 100644 --- a/composer.json +++ b/composer.json @@ -64,7 +64,8 @@ "phpmyadmin/sql-parser": "^5.3", "aws/aws-sdk-php": "~3.0", "cretueusebiu/laravel-javascript": "^0.2.1", - "stevenmaguire/oauth2-microsoft": "^2.2" + "stevenmaguire/oauth2-microsoft": "^2.2", + "phpseclib/mcrypt_compat": "^2.0" }, "require-dev": { "guzzlehttp/guzzle": "^6.3", diff --git a/composer.lock b/composer.lock index 252b18ed7..e570dc1fc 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "0cfdbd7bd38cb8bdeebe9625a7d66455", + "content-hash": "5bcf521c2f8df8459b05200fbdef3ed7", "packages": [ { "name": "aws/aws-crt-php", @@ -2357,6 +2357,73 @@ ], "time": "2021-04-09T13:42:10+00:00" }, + { + "name": "paragonie/constant_time_encoding", + "version": "v2.4.0", + "source": { + "type": "git", + "url": "https://github.com/paragonie/constant_time_encoding.git", + "reference": "f34c2b11eb9d2c9318e13540a1dbc2a3afbd939c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/paragonie/constant_time_encoding/zipball/f34c2b11eb9d2c9318e13540a1dbc2a3afbd939c", + "reference": "f34c2b11eb9d2c9318e13540a1dbc2a3afbd939c", + "shasum": "" + }, + "require": { + "php": "^7|^8" + }, + "require-dev": { + "phpunit/phpunit": "^6|^7|^8|^9", + "vimeo/psalm": "^1|^2|^3|^4" + }, + "type": "library", + "autoload": { + "psr-4": { + "ParagonIE\\ConstantTime\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Paragon Initiative Enterprises", + "email": "security@paragonie.com", + "homepage": "https://paragonie.com", + "role": "Maintainer" + }, + { + "name": "Steve 'Sc00bz' Thomas", + "email": "steve@tobtu.com", + "homepage": "https://www.tobtu.com", + "role": "Original Developer" + } + ], + "description": "Constant-time Implementations of RFC 4648 Encoding (Base-64, Base-32, Base-16)", + "keywords": [ + "base16", + "base32", + "base32_decode", + "base32_encode", + "base64", + "base64_decode", + "base64_encode", + "bin2hex", + "encoding", + "hex", + "hex2bin", + "rfc4648" + ], + "support": { + "email": "info@paragonie.com", + "issues": "https://github.com/paragonie/constant_time_encoding/issues", + "source": "https://github.com/paragonie/constant_time_encoding" + }, + "time": "2020-12-06T15:14:20+00:00" + }, { "name": "paragonie/random_compat", "version": "v9.99.100", @@ -3045,6 +3112,185 @@ ], "time": "2021-02-05T14:33:29+00:00" }, + { + "name": "phpseclib/mcrypt_compat", + "version": "2.0.1", + "source": { + "type": "git", + "url": "https://github.com/phpseclib/mcrypt_compat.git", + "reference": "299da4c7e7e41c8d4964e894a90ca4c96175846b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpseclib/mcrypt_compat/zipball/299da4c7e7e41c8d4964e894a90ca4c96175846b", + "reference": "299da4c7e7e41c8d4964e894a90ca4c96175846b", + "shasum": "" + }, + "require": { + "php": ">=5.6.1", + "phpseclib/phpseclib": ">=3.0.12 <4.0.0" + }, + "provide": { + "ext-mcrypt": "5.6.40" + }, + "require-dev": { + "phpunit/phpunit": "^5.7|^6.0|^9.4" + }, + "suggest": { + "ext-openssl": "Will enable faster cryptographic operations" + }, + "type": "library", + "autoload": { + "files": [ + "lib/mcrypt.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jim Wigginton", + "email": "terrafrost@php.net", + "homepage": "http://phpseclib.sourceforge.net" + } + ], + "description": "PHP 5.x/7.x polyfill for mcrypt extension", + "keywords": [ + "cryptograpy", + "encryption", + "mcrypt", + "polyfill" + ], + "support": { + "email": "terrafrost@php.net", + "issues": "https://github.com/phpseclib/mcrypt_compat/issues", + "source": "https://github.com/phpseclib/mcrypt_compat" + }, + "funding": [ + { + "url": "https://www.patreon.com/phpseclib", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpseclib/mcrypt_compat", + "type": "tidelift" + } + ], + "time": "2021-11-29T02:38:47+00:00" + }, + { + "name": "phpseclib/phpseclib", + "version": "3.0.12", + "source": { + "type": "git", + "url": "https://github.com/phpseclib/phpseclib.git", + "reference": "89bfb45bd8b1abc3b37e910d57f5dbd3174f40fb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/89bfb45bd8b1abc3b37e910d57f5dbd3174f40fb", + "reference": "89bfb45bd8b1abc3b37e910d57f5dbd3174f40fb", + "shasum": "" + }, + "require": { + "paragonie/constant_time_encoding": "^1|^2", + "paragonie/random_compat": "^1.4|^2.0|^9.99.99", + "php": ">=5.6.1" + }, + "require-dev": { + "phing/phing": "~2.7", + "phpunit/phpunit": "^5.7|^6.0|^9.4", + "squizlabs/php_codesniffer": "~2.0" + }, + "suggest": { + "ext-gmp": "Install the GMP (GNU Multiple Precision) extension in order to speed up arbitrary precision integer arithmetic operations.", + "ext-libsodium": "SSH2/SFTP can make use of some algorithms provided by the libsodium-php extension.", + "ext-mcrypt": "Install the Mcrypt extension in order to speed up a few other cryptographic operations.", + "ext-openssl": "Install the OpenSSL extension in order to speed up a wide variety of cryptographic operations." + }, + "type": "library", + "autoload": { + "files": [ + "phpseclib/bootstrap.php" + ], + "psr-4": { + "phpseclib3\\": "phpseclib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jim Wigginton", + "email": "terrafrost@php.net", + "role": "Lead Developer" + }, + { + "name": "Patrick Monnerat", + "email": "pm@datasphere.ch", + "role": "Developer" + }, + { + "name": "Andreas Fischer", + "email": "bantu@phpbb.com", + "role": "Developer" + }, + { + "name": "Hans-Jürgen Petrich", + "email": "petrich@tronic-media.com", + "role": "Developer" + }, + { + "name": "Graham Campbell", + "email": "graham@alt-three.com", + "role": "Developer" + } + ], + "description": "PHP Secure Communications Library - Pure-PHP implementations of RSA, AES, SSH2, SFTP, X.509 etc.", + "homepage": "http://phpseclib.sourceforge.net", + "keywords": [ + "BigInteger", + "aes", + "asn.1", + "asn1", + "blowfish", + "crypto", + "cryptography", + "encryption", + "rsa", + "security", + "sftp", + "signature", + "signing", + "ssh", + "twofish", + "x.509", + "x509" + ], + "support": { + "issues": "https://github.com/phpseclib/phpseclib/issues", + "source": "https://github.com/phpseclib/phpseclib/tree/3.0.12" + }, + "funding": [ + { + "url": "https://github.com/terrafrost", + "type": "github" + }, + { + "url": "https://www.patreon.com/phpseclib", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpseclib/phpseclib", + "type": "tidelift" + } + ], + "time": "2021-11-28T23:46:03+00:00" + }, { "name": "predis/predis", "version": "v1.1.1", @@ -8143,5 +8389,5 @@ "php": ">=7.1" }, "platform-dev": [], - "plugin-api-version": "1.1.0" + "plugin-api-version": "2.0.0" } diff --git a/database/factories/ApplicationFactory.php b/database/factories/ApplicationFactory.php index c545b3e11..74ba1720d 100644 --- a/database/factories/ApplicationFactory.php +++ b/database/factories/ApplicationFactory.php @@ -96,6 +96,18 @@ $factory->state(\ProcessMaker\Model\Application::class, 'draft', function (Faker ]; }); +$factory->state(\ProcessMaker\Model\Application::class, 'paused', function (Faker $faker) { + $user = factory(\ProcessMaker\Model\User::class)->create(); + + return [ + 'APP_NUMBER' => $faker->unique()->numberBetween(1000), + 'APP_STATUS_ID' => 1, + 'APP_STATUS' => 'PAUSED', + 'APP_INIT_USER' => $user->USR_UID, + 'APP_INIT_USER_ID' => $user->USR_ID, + ]; +}); + $factory->state(\ProcessMaker\Model\Application::class, 'completed', function (Faker $faker) { return [ 'APP_NUMBER' => $faker->unique()->numberBetween(1000), diff --git a/gulliver/system/class.bootstrap.php b/gulliver/system/class.bootstrap.php index e2c1ca36f..c33a86317 100644 --- a/gulliver/system/class.bootstrap.php +++ b/gulliver/system/class.bootstrap.php @@ -2789,4 +2789,15 @@ class Bootstrap ]; self::registerMonolog($channel, $level, $message, $context); } + + /** + * Build the options for a cookie, according to the system configuration and values optionally sent to this method + * + * @param array $options + * @return array + */ + public static function buildCookieOptions(array $options = []) + { + return System::buildCookieOptions($options); + } } diff --git a/resources/assets/js/admin/Modals/ModalPreview.vue b/resources/assets/js/admin/Modals/ModalPreview.vue index 1013426a7..b08f2b58b 100644 --- a/resources/assets/js/admin/Modals/ModalPreview.vue +++ b/resources/assets/js/admin/Modals/ModalPreview.vue @@ -29,12 +29,7 @@
- - +
{{ props.row.USERNAME_DISPLAY_FORMAT }} @@ -110,8 +105,7 @@ export default { DRAFT: this.$i18n.t("ID_IN_DRAFT"), PAUSED: this.$i18n.t("ID_PAUSED"), UNASSIGNED: this.$i18n.t("ID_UNASSIGNED"), - }, - showUserTooltip: true + } } }, mounted() { @@ -256,29 +250,31 @@ export default { formatUser(data) { var dataFormat = [], userDataFormat; - if (data.user_tooltip && !_.isEmpty(data.user_tooltip)) { - this.showUserTooltip = true; - userDataFormat = utils.userNameDisplayFormat({ - userName: data.user_tooltip.usr_firstname, - firstName: data.user_tooltip.usr_lastname, - lastName: data.user_tooltip.usr_username, - format: window.config.FORMATS.format || null - }); - dataFormat.push({ - USERNAME_DISPLAY_FORMAT: userDataFormat, - EMAIL: data.user_tooltip.usr_email, - POSITION: data.user_tooltip.usr_position, - AVATAR: userDataFormat !== "" ? window.config.SYS_SERVER_AJAX + - window.config.SYS_URI + - `users/users_ViewPhotoGrid?pUID=${data.user_tooltip.usr_id}` : "", - UNASSIGNED: userDataFormat !== "" ? true : false - }); - } else if (data.dummy_task && !_.isEmpty(data.dummy_task)) { - this.showUserTooltip = false; - dataFormat = data.dummy_task.type + ': ' + data.dummy_task.name; - } else { - this.showUserTooltip = false; - dataFormat = this.$i18n.t("ID_ANONYMOUS_USER"); + switch (data.key_name) { + case 'user_tooltip': + userDataFormat = utils.userNameDisplayFormat({ + userName: data.user_tooltip.usr_firstname, + firstName: data.user_tooltip.usr_lastname, + lastName: data.user_tooltip.usr_username, + format: window.config.FORMATS.format || null + }); + dataFormat.push({ + USERNAME_DISPLAY_FORMAT: userDataFormat, + EMAIL: data.user_tooltip.usr_email, + POSITION: data.user_tooltip.usr_position, + AVATAR: userDataFormat !== "" ? window.config.SYS_SERVER_AJAX + + window.config.SYS_URI + + `users/users_ViewPhotoGrid?pUID=${data.user_tooltip.usr_id}` : "", + UNASSIGNED: userDataFormat !== "" ? true : false, + SHOW_TOOLTIP: true + }); + break; + case 'dummy_task': + dataFormat = data.dummy_task.type + ': ' + data.dummy_task.name; + break; + default: + dataFormat = ""; + break; } return dataFormat; } diff --git a/resources/assets/js/components/vuetable/CurrentUserCell.vue b/resources/assets/js/components/vuetable/CurrentUserCell.vue index e4fc4e264..0a64b14fc 100644 --- a/resources/assets/js/components/vuetable/CurrentUserCell.vue +++ b/resources/assets/js/components/vuetable/CurrentUserCell.vue @@ -1,5 +1,5 @@