Merged in bugfix/HOR-4498 (pull request #6443)

HOR-4498

Approved-by: Julio Cesar Laura Avendaño <contact@julio-laura.com>
This commit is contained in:
Paula Quispe
2018-04-16 16:02:57 +00:00
committed by Julio Cesar Laura Avendaño
16 changed files with 311 additions and 295 deletions

View File

@@ -39,7 +39,7 @@
"monolog/monolog": "1.19.0",
"geshi/geshi": "dev-master",
"libchart/libchart": "1.4.0",
"phpmailer/phpmailer": "5.2.*",
"phpmailer/phpmailer": "5.2.4",
"pear/archive_tar": "1.4.*",
"pear/console_getopt": "1.4.*",
"TYPO3/class-alias-loader": "^1.0",

323
composer.lock generated
View File

@@ -4,8 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
"This file is @generated automatically"
],
"hash": "ca4e31d385248c976ef1b88d6f6c725f",
"content-hash": "674fafac9f49f8b6da9f7a0189549eb1",
"content-hash": "41742709993d30b70991d5277781b2d8",
"packages": [
{
"name": "bshaffer/oauth2-server-php",
@@ -48,7 +47,7 @@
"oauth",
"oauth2"
],
"time": "2013-08-12 16:35:58"
"time": "2013-08-12T16:35:58+00:00"
},
{
"name": "colosa/MichelangeloFE",
@@ -67,7 +66,7 @@
"keywords": [
"js app ProcessMaker"
],
"time": "2017-09-05 17:01:30"
"time": "2018-01-27T00:51:59+00:00"
},
{
"name": "colosa/pmDynaform",
@@ -83,7 +82,7 @@
"keywords": [
"js lib ProcessMaker Dynaforms"
],
"time": "2017-09-05 17:02:30"
"time": "2017-11-30T19:21:05+00:00"
},
{
"name": "colosa/pmUI",
@@ -99,7 +98,7 @@
"keywords": [
"js lib ProcessMaker UI"
],
"time": "2017-08-10 14:57:39"
"time": "2017-10-17T17:56:43+00:00"
},
{
"name": "dapphp/securimage",
@@ -146,7 +145,7 @@
"captcha",
"security"
],
"time": "2016-12-04 17:45:57"
"time": "2016-12-04T17:45:57+00:00"
},
{
"name": "doctrine/inflector",
@@ -213,7 +212,7 @@
"singularize",
"string"
],
"time": "2015-11-06 14:35:42"
"time": "2015-11-06T14:35:42+00:00"
},
{
"name": "erusev/parsedown",
@@ -255,7 +254,7 @@
"markdown",
"parser"
],
"time": "2017-05-14 14:47:48"
"time": "2017-05-14T14:47:48+00:00"
},
{
"name": "geshi/geshi",
@@ -295,7 +294,7 @@
],
"description": "Generic Syntax Highlighter",
"homepage": "http://qbnz.com/highlighter/",
"time": "2017-07-30 00:08:49"
"time": "2017-07-30T00:08:49+00:00"
},
{
"name": "google/apiclient",
@@ -329,7 +328,7 @@
"src/"
]
},
"notification-url": "https://packagist.org/downloads/",
"notification-url": "http://packagist.org/downloads/",
"license": [
"Apache-2.0"
],
@@ -338,7 +337,7 @@
"keywords": [
"google"
],
"time": "2015-10-16 22:11:08"
"time": "2015-10-16T22:11:08+00:00"
},
{
"name": "laravel/framework",
@@ -467,7 +466,7 @@
"framework",
"laravel"
],
"time": "2017-08-30 09:26:16"
"time": "2017-08-30T09:26:16+00:00"
},
{
"name": "league/flysystem",
@@ -550,7 +549,7 @@
"sftp",
"storage"
],
"time": "2017-08-06 17:41:04"
"time": "2017-08-06T17:41:04+00:00"
},
{
"name": "libchart/libchart",
@@ -578,7 +577,7 @@
],
"authors": [
{
"name": "Jean-Marc Tr??meaux",
"name": "Jean-Marc Trémeaux",
"homepage": "http://naku.dohcrew.com/",
"role": "Developer"
},
@@ -596,7 +595,7 @@
"line charts",
"pie charts"
],
"time": "2013-10-19 22:21:30"
"time": "2013-10-19T22:21:30+00:00"
},
{
"name": "luracast/restler",
@@ -604,12 +603,12 @@
"source": {
"type": "git",
"url": "https://github.com/Luracast/Restler.git",
"reference": "581d8d6dc5d37f439765f89725a92f85e98f1826"
"reference": "cd0c21b4f7c0a99261ad618e90a5263483e78007"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/Luracast/Restler/zipball/581d8d6dc5d37f439765f89725a92f85e98f1826",
"reference": "581d8d6dc5d37f439765f89725a92f85e98f1826",
"url": "https://api.github.com/repos/Luracast/Restler/zipball/cd0c21b4f7c0a99261ad618e90a5263483e78007",
"reference": "cd0c21b4f7c0a99261ad618e90a5263483e78007",
"shasum": ""
},
"require": {
@@ -675,7 +674,7 @@
"rest",
"server"
],
"time": "2017-01-11 03:42:36"
"time": "2017-01-11T03:42:36+00:00"
},
{
"name": "monolog/monolog",
@@ -753,7 +752,7 @@
"logging",
"psr-3"
],
"time": "2016-04-12 18:29:35"
"time": "2016-04-12T18:29:35+00:00"
},
{
"name": "mtdowling/cron-expression",
@@ -797,7 +796,7 @@
"cron",
"schedule"
],
"time": "2017-01-23 04:29:33"
"time": "2017-01-23T04:29:33+00:00"
},
{
"name": "nesbot/carbon",
@@ -850,7 +849,7 @@
"datetime",
"time"
],
"time": "2017-01-16 07:55:07"
"time": "2017-01-16T07:55:07+00:00"
},
{
"name": "paragonie/random_compat",
@@ -898,7 +897,7 @@
"pseudorandom",
"random"
],
"time": "2017-03-13 16:27:32"
"time": "2017-03-13T16:27:32+00:00"
},
{
"name": "pear/archive_tar",
@@ -964,7 +963,7 @@
"archive",
"tar"
],
"time": "2017-06-11 17:28:11"
"time": "2017-06-11T17:28:11+00:00"
},
{
"name": "pear/console_getopt",
@@ -1011,7 +1010,7 @@
}
],
"description": "More info available on: http://pear.php.net/package/Console_Getopt",
"time": "2015-07-20 20:28:12"
"time": "2015-07-20T20:28:12+00:00"
},
{
"name": "pear/pear-core-minimal",
@@ -1055,7 +1054,7 @@
}
],
"description": "Minimal set of PEAR core files to be used as composer dependency",
"time": "2017-02-28 16:46:11"
"time": "2017-02-28T16:46:11+00:00"
},
{
"name": "pear/pear_exception",
@@ -1110,59 +1109,35 @@
"keywords": [
"exception"
],
"time": "2015-02-10 20:07:52"
"time": "2015-02-10T20:07:52+00:00"
},
{
"name": "phpmailer/phpmailer",
"version": "v5.2.25",
"version": "v5.2.4",
"source": {
"type": "git",
"url": "https://github.com/PHPMailer/PHPMailer.git",
"reference": "2baf20b01690fba8cf720c1ebcf9b988eda50915"
"reference": "adb0197c106fad05c1fab28dbed5437133836c44"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/2baf20b01690fba8cf720c1ebcf9b988eda50915",
"reference": "2baf20b01690fba8cf720c1ebcf9b988eda50915",
"url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/adb0197c106fad05c1fab28dbed5437133836c44",
"reference": "adb0197c106fad05c1fab28dbed5437133836c44",
"shasum": ""
},
"require": {
"ext-ctype": "*",
"php": ">=5.0.0"
},
"require-dev": {
"doctrine/annotations": "1.2.*",
"jms/serializer": "0.16.*",
"phpdocumentor/phpdocumentor": "2.*",
"phpunit/phpunit": "4.8.*",
"symfony/debug": "2.8.*",
"symfony/filesystem": "2.8.*",
"symfony/translation": "2.8.*",
"symfony/yaml": "2.8.*",
"zendframework/zend-cache": "2.5.1",
"zendframework/zend-config": "2.5.1",
"zendframework/zend-eventmanager": "2.5.1",
"zendframework/zend-filter": "2.5.1",
"zendframework/zend-i18n": "2.5.1",
"zendframework/zend-json": "2.5.1",
"zendframework/zend-math": "2.5.1",
"zendframework/zend-serializer": "2.5.*",
"zendframework/zend-servicemanager": "2.5.*",
"zendframework/zend-stdlib": "2.5.1"
},
"suggest": {
"league/oauth2-google": "Needed for Google XOAUTH2 authentication"
"phpdocumentor/phpdocumentor": "*",
"phpunit/phpunit": "*"
},
"type": "library",
"autoload": {
"classmap": [
"class.phpmailer.php",
"class.phpmaileroauth.php",
"class.phpmaileroauthgoogle.php",
"class.smtp.php",
"class.pop3.php",
"extras/EasyPeasyICS.php",
"extras/ntlm_sasl_client.php"
"class.smtp.php"
]
},
"notification-url": "https://packagist.org/downloads/",
@@ -1187,7 +1162,7 @@
}
],
"description": "PHPMailer is a full-featured email creation and transfer class for PHP",
"time": "2017-08-28 11:12:07"
"time": "2013-02-21T11:44:28+00:00"
},
{
"name": "psr/log",
@@ -1225,7 +1200,7 @@
"psr",
"psr-3"
],
"time": "2012-12-21 11:40:51"
"time": "2012-12-21T11:40:51+00:00"
},
{
"name": "ralouphie/getallheaders",
@@ -1265,7 +1240,7 @@
}
],
"description": "A polyfill for getallheaders.",
"time": "2016-02-11 07:05:27"
"time": "2016-02-11T07:05:27+00:00"
},
{
"name": "ramsey/uuid",
@@ -1347,7 +1322,7 @@
"identifier",
"uuid"
],
"time": "2017-08-04 13:39:04"
"time": "2017-08-04T13:39:04+00:00"
},
{
"name": "swiftmailer/swiftmailer",
@@ -1401,7 +1376,7 @@
"mail",
"mailer"
],
"time": "2017-05-01 15:54:03"
"time": "2017-05-01T15:54:03+00:00"
},
{
"name": "symfony/console",
@@ -1469,7 +1444,7 @@
],
"description": "Symfony Console Component",
"homepage": "https://symfony.com",
"time": "2017-08-27 14:52:21"
"time": "2017-08-27T14:52:21+00:00"
},
{
"name": "symfony/css-selector",
@@ -1522,7 +1497,7 @@
],
"description": "Symfony CssSelector Component",
"homepage": "https://symfony.com",
"time": "2017-07-29 21:54:42"
"time": "2017-07-29T21:54:42+00:00"
},
{
"name": "symfony/debug",
@@ -1578,7 +1553,7 @@
],
"description": "Symfony Debug Component",
"homepage": "https://symfony.com",
"time": "2017-08-27 14:52:21"
"time": "2017-08-27T14:52:21+00:00"
},
{
"name": "symfony/event-dispatcher",
@@ -1641,7 +1616,7 @@
],
"description": "Symfony EventDispatcher Component",
"homepage": "https://symfony.com",
"time": "2017-07-29 21:54:42"
"time": "2017-07-29T21:54:42+00:00"
},
{
"name": "symfony/finder",
@@ -1690,7 +1665,7 @@
],
"description": "Symfony Finder Component",
"homepage": "https://symfony.com",
"time": "2017-07-29 21:54:42"
"time": "2017-07-29T21:54:42+00:00"
},
{
"name": "symfony/http-foundation",
@@ -1743,7 +1718,7 @@
],
"description": "Symfony HttpFoundation Component",
"homepage": "https://symfony.com",
"time": "2017-08-10 07:07:06"
"time": "2017-08-10T07:07:06+00:00"
},
{
"name": "symfony/http-kernel",
@@ -1829,7 +1804,7 @@
],
"description": "Symfony HttpKernel Component",
"homepage": "https://symfony.com",
"time": "2017-08-28 22:35:03"
"time": "2017-08-28T22:35:03+00:00"
},
{
"name": "symfony/polyfill-mbstring",
@@ -1888,7 +1863,7 @@
"portable",
"shim"
],
"time": "2017-06-14 15:44:48"
"time": "2017-06-14T15:44:48+00:00"
},
{
"name": "symfony/process",
@@ -1937,7 +1912,7 @@
],
"description": "Symfony Process Component",
"homepage": "https://symfony.com",
"time": "2017-07-29 21:54:42"
"time": "2017-07-29T21:54:42+00:00"
},
{
"name": "symfony/routing",
@@ -2015,7 +1990,7 @@
"uri",
"url"
],
"time": "2017-07-29 21:54:42"
"time": "2017-07-29T21:54:42+00:00"
},
{
"name": "symfony/translation",
@@ -2080,7 +2055,7 @@
],
"description": "Symfony Translation Component",
"homepage": "https://symfony.com",
"time": "2017-07-29 21:54:42"
"time": "2017-07-29T21:54:42+00:00"
},
{
"name": "symfony/var-dumper",
@@ -2148,7 +2123,7 @@
"debug",
"dump"
],
"time": "2017-08-27 14:52:21"
"time": "2017-08-27T14:52:21+00:00"
},
{
"name": "tijsverkoyen/css-to-inline-styles",
@@ -2195,7 +2170,7 @@
],
"description": "CssToInlineStyles is a class that enables you to convert HTML-pages/files into HTML-pages/files with inline styles. This is very useful when you're sending emails.",
"homepage": "https://github.com/tijsverkoyen/CssToInlineStyles",
"time": "2016-09-20 12:50:39"
"time": "2016-09-20T12:50:39+00:00"
},
{
"name": "typo3/class-alias-loader",
@@ -2253,7 +2228,7 @@
"classloader",
"composer"
],
"time": "2015-10-06 10:25:44"
"time": "2015-10-06T10:25:44+00:00"
},
{
"name": "vlucas/phpdotenv",
@@ -2303,7 +2278,7 @@
"env",
"environment"
],
"time": "2016-09-01 10:05:43"
"time": "2016-09-01T10:05:43+00:00"
}
],
"packages-dev": [
@@ -2360,7 +2335,7 @@
"assertion",
"validation"
],
"time": "2017-05-04 02:00:24"
"time": "2017-05-04T02:00:24+00:00"
},
{
"name": "behat/behat",
@@ -2442,7 +2417,7 @@
"symfony",
"testing"
],
"time": "2017-05-15 16:49:16"
"time": "2017-05-15T16:49:16+00:00"
},
{
"name": "behat/gherkin",
@@ -2501,7 +2476,7 @@
"gherkin",
"parser"
],
"time": "2017-08-30 11:04:43"
"time": "2017-08-30T11:04:43+00:00"
},
{
"name": "behat/mink",
@@ -2559,7 +2534,7 @@
"testing",
"web"
],
"time": "2016-03-05 08:26:18"
"time": "2016-03-05T08:26:18+00:00"
},
{
"name": "behat/mink-selenium2-driver",
@@ -2620,7 +2595,7 @@
"testing",
"webdriver"
],
"time": "2016-03-05 09:10:18"
"time": "2016-03-05T09:10:18+00:00"
},
{
"name": "behat/transliterator",
@@ -2664,7 +2639,7 @@
"slug",
"transliterator"
],
"time": "2017-04-04 11:38:05"
"time": "2017-04-04T11:38:05+00:00"
},
{
"name": "clue/graph",
@@ -2709,7 +2684,7 @@
"network",
"vertex"
],
"time": "2015-03-07 18:11:31"
"time": "2015-03-07T18:11:31+00:00"
},
{
"name": "container-interop/container-interop",
@@ -2740,7 +2715,7 @@
],
"description": "Promoting the interoperability of container objects (DIC, SL, etc.)",
"homepage": "https://github.com/container-interop/container-interop",
"time": "2017-02-14 19:40:03"
"time": "2017-02-14T19:40:03+00:00"
},
{
"name": "doctrine/instantiator",
@@ -2794,7 +2769,7 @@
"constructor",
"instantiate"
],
"time": "2015-06-14 21:17:01"
"time": "2015-06-14T21:17:01+00:00"
},
{
"name": "facebook/webdriver",
@@ -2846,7 +2821,7 @@
"selenium",
"webdriver"
],
"time": "2017-04-28 14:54:49"
"time": "2017-04-28T14:54:49+00:00"
},
{
"name": "florianwolters/component-core-stringutils",
@@ -2891,7 +2866,7 @@
"string",
"wrapper"
],
"time": "2013-07-01 10:24:07"
"time": "2013-07-01T10:24:07+00:00"
},
{
"name": "florianwolters/component-util-reflection",
@@ -2935,7 +2910,7 @@
"reflection",
"utility"
],
"time": "2013-03-19 16:42:41"
"time": "2013-03-19T16:42:41+00:00"
},
{
"name": "florianwolters/component-util-singleton",
@@ -2986,7 +2961,7 @@
"singleton",
"utility"
],
"time": "2013-06-29 12:35:22"
"time": "2013-06-29T12:35:22+00:00"
},
{
"name": "graphp/algorithms",
@@ -3036,11 +3011,11 @@
"prim",
"shortest path"
],
"time": "2015-03-08 10:12:01"
"time": "2015-03-08T10:12:01+00:00"
},
{
"name": "guzzle/guzzle",
"version": "v3.1.2",
"version": "3.1.2",
"source": {
"type": "git",
"url": "https://github.com/guzzle/guzzle.git",
@@ -3050,86 +3025,10 @@
"type": "zip",
"url": "https://api.github.com/repos/guzzle/guzzle/zipball/7901ea7d27373d0cc85eac6f6694e4c2ced90a26",
"reference": "7901ea7d27373d0cc85eac6f6694e4c2ced90a26",
"shasum": ""
},
"require": {
"ext-curl": "*",
"php": ">=5.3.2",
"symfony/event-dispatcher": ">=2.1"
},
"replace": {
"guzzle/batch": "self.version",
"guzzle/cache": "self.version",
"guzzle/common": "self.version",
"guzzle/http": "self.version",
"guzzle/inflection": "self.version",
"guzzle/iterator": "self.version",
"guzzle/log": "self.version",
"guzzle/parser": "self.version",
"guzzle/plugin": "self.version",
"guzzle/plugin-async": "self.version",
"guzzle/plugin-backoff": "self.version",
"guzzle/plugin-cache": "self.version",
"guzzle/plugin-cookie": "self.version",
"guzzle/plugin-curlauth": "self.version",
"guzzle/plugin-history": "self.version",
"guzzle/plugin-log": "self.version",
"guzzle/plugin-md5": "self.version",
"guzzle/plugin-mock": "self.version",
"guzzle/plugin-oauth": "self.version",
"guzzle/service": "self.version",
"guzzle/stream": "self.version"
},
"require-dev": {
"doctrine/common": "*",
"monolog/monolog": "1.*",
"phpunit/phpunit": "3.7.*",
"symfony/class-loader": "*",
"zend/zend-cache1": "1.12",
"zend/zend-log1": "1.12",
"zendframework/zend-cache": "2.0.*",
"zendframework/zend-log": "2.0.*"
"shasum": "25bc38119541c151c455c3140b4dc388d7ec4187"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "3.1-dev"
}
},
"autoload": {
"psr-0": {
"Guzzle\\Tests": "tests/",
"Guzzle": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Michael Dowling",
"email": "mtdowling@gmail.com",
"homepage": "https://github.com/mtdowling"
},
{
"name": "Guzzle Community",
"homepage": "https://github.com/guzzle/guzzle/contributors"
}
],
"description": "Guzzle is a PHP HTTP client library and framework for building RESTful web service clients",
"homepage": "http://guzzlephp.org/",
"keywords": [
"client",
"curl",
"framework",
"http",
"http client",
"rest",
"web service"
],
"abandoned": "guzzlehttp/guzzle",
"time": "2013-01-28 00:07:40"
"abandoned": "guzzlehttp/guzzle"
},
{
"name": "instaclick/php-webdriver",
@@ -3188,7 +3087,7 @@
"webdriver",
"webtest"
],
"time": "2017-06-30 04:02:48"
"time": "2017-06-30T04:02:48+00:00"
},
{
"name": "lmc/steward",
@@ -3263,7 +3162,7 @@
"testing",
"webdriver"
],
"time": "2017-06-05 23:56:28"
"time": "2017-06-05T23:56:28+00:00"
},
{
"name": "myclabs/deep-copy",
@@ -3305,7 +3204,7 @@
"object",
"object graph"
],
"time": "2017-04-12 18:52:22"
"time": "2017-04-12T18:52:22+00:00"
},
{
"name": "nette/caching",
@@ -3374,7 +3273,7 @@
"nette",
"sqlite"
],
"time": "2017-08-18 15:20:18"
"time": "2017-08-18T15:20:18+00:00"
},
{
"name": "nette/finder",
@@ -3430,7 +3329,7 @@
],
"description": "Nette Finder: Files Searching",
"homepage": "https://nette.org",
"time": "2017-07-10 23:47:08"
"time": "2017-07-10T23:47:08+00:00"
},
{
"name": "nette/reflection",
@@ -3494,7 +3393,7 @@
"nette",
"reflection"
],
"time": "2017-07-11 19:28:57"
"time": "2017-07-11T19:28:57+00:00"
},
{
"name": "nette/utils",
@@ -3573,7 +3472,7 @@
"utility",
"validation"
],
"time": "2017-08-20 17:32:29"
"time": "2017-08-20T17:32:29+00:00"
},
{
"name": "ondram/ci-detector",
@@ -3626,7 +3525,7 @@
"teamcity",
"travis"
],
"time": "2017-05-26 16:39:57"
"time": "2017-05-26T16:39:57+00:00"
},
{
"name": "phpdocumentor/reflection-common",
@@ -3680,7 +3579,7 @@
"reflection",
"static analysis"
],
"time": "2015-12-27 11:43:31"
"time": "2015-12-27T11:43:31+00:00"
},
{
"name": "phpdocumentor/reflection-docblock",
@@ -3725,7 +3624,7 @@
}
],
"description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
"time": "2017-08-08 06:39:58"
"time": "2017-08-08T06:39:58+00:00"
},
{
"name": "phpdocumentor/type-resolver",
@@ -3772,7 +3671,7 @@
"email": "me@mikevanriel.com"
}
],
"time": "2017-06-03 08:32:36"
"time": "2017-06-03T08:32:36+00:00"
},
{
"name": "phpspec/prophecy",
@@ -3835,7 +3734,7 @@
"spy",
"stub"
],
"time": "2017-09-04 11:05:03"
"time": "2017-09-04T11:05:03+00:00"
},
{
"name": "phpunit/php-code-coverage",
@@ -3898,7 +3797,7 @@
"testing",
"xunit"
],
"time": "2017-04-02 07:44:40"
"time": "2017-04-02T07:44:40+00:00"
},
{
"name": "phpunit/php-file-iterator",
@@ -3945,7 +3844,7 @@
"filesystem",
"iterator"
],
"time": "2016-10-03 07:40:28"
"time": "2016-10-03T07:40:28+00:00"
},
{
"name": "phpunit/php-text-template",
@@ -3986,7 +3885,7 @@
"keywords": [
"template"
],
"time": "2015-06-21 13:50:34"
"time": "2015-06-21T13:50:34+00:00"
},
{
"name": "phpunit/php-timer",
@@ -4035,7 +3934,7 @@
"keywords": [
"timer"
],
"time": "2017-02-26 11:10:40"
"time": "2017-02-26T11:10:40+00:00"
},
{
"name": "phpunit/php-token-stream",
@@ -4084,7 +3983,7 @@
"keywords": [
"tokenizer"
],
"time": "2017-02-27 10:12:30"
"time": "2017-02-27T10:12:30+00:00"
},
{
"name": "phpunit/phpunit",
@@ -4166,7 +4065,7 @@
"testing",
"xunit"
],
"time": "2017-06-21 08:11:54"
"time": "2017-06-21T08:11:54+00:00"
},
{
"name": "phpunit/phpunit-mock-objects",
@@ -4225,7 +4124,7 @@
"mock",
"xunit"
],
"time": "2017-06-30 09:13:00"
"time": "2017-06-30T09:13:00+00:00"
},
{
"name": "psr/container",
@@ -4274,7 +4173,7 @@
"container-interop",
"psr"
],
"time": "2017-02-14 16:28:37"
"time": "2017-02-14T16:28:37+00:00"
},
{
"name": "sebastian/code-unit-reverse-lookup",
@@ -4319,7 +4218,7 @@
],
"description": "Looks up which function or method a line of code belongs to",
"homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/",
"time": "2017-03-04 06:30:41"
"time": "2017-03-04T06:30:41+00:00"
},
{
"name": "sebastian/comparator",
@@ -4383,7 +4282,7 @@
"compare",
"equality"
],
"time": "2017-01-29 09:50:25"
"time": "2017-01-29T09:50:25+00:00"
},
{
"name": "sebastian/diff",
@@ -4435,7 +4334,7 @@
"keywords": [
"diff"
],
"time": "2017-05-22 07:24:03"
"time": "2017-05-22T07:24:03+00:00"
},
{
"name": "sebastian/environment",
@@ -4485,7 +4384,7 @@
"environment",
"hhvm"
],
"time": "2016-11-26 07:53:53"
"time": "2016-11-26T07:53:53+00:00"
},
{
"name": "sebastian/exporter",
@@ -4552,7 +4451,7 @@
"export",
"exporter"
],
"time": "2016-11-19 08:54:04"
"time": "2016-11-19T08:54:04+00:00"
},
{
"name": "sebastian/global-state",
@@ -4603,7 +4502,7 @@
"keywords": [
"global state"
],
"time": "2015-10-12 03:26:01"
"time": "2015-10-12T03:26:01+00:00"
},
{
"name": "sebastian/object-enumerator",
@@ -4649,7 +4548,7 @@
],
"description": "Traverses array structures and object graphs to enumerate all referenced objects",
"homepage": "https://github.com/sebastianbergmann/object-enumerator/",
"time": "2017-02-18 15:18:39"
"time": "2017-02-18T15:18:39+00:00"
},
{
"name": "sebastian/recursion-context",
@@ -4702,7 +4601,7 @@
],
"description": "Provides functionality to recursively process PHP variables",
"homepage": "http://www.github.com/sebastianbergmann/recursion-context",
"time": "2016-11-19 07:33:16"
"time": "2016-11-19T07:33:16+00:00"
},
{
"name": "sebastian/resource-operations",
@@ -4744,7 +4643,7 @@
],
"description": "Provides a list of PHP built-in functions that operate on resources",
"homepage": "https://www.github.com/sebastianbergmann/resource-operations",
"time": "2015-07-28 20:34:47"
"time": "2015-07-28T20:34:47+00:00"
},
{
"name": "sebastian/version",
@@ -4787,7 +4686,7 @@
],
"description": "Library that helps with managing the version number of Git-hosted PHP projects",
"homepage": "https://github.com/sebastianbergmann/version",
"time": "2016-10-03 07:35:21"
"time": "2016-10-03T07:35:21+00:00"
},
{
"name": "squizlabs/php_codesniffer",
@@ -4838,7 +4737,7 @@
"phpcs",
"standards"
],
"time": "2017-07-18 01:12:32"
"time": "2017-07-18T01:12:32+00:00"
},
{
"name": "symfony/class-loader",
@@ -4894,7 +4793,7 @@
],
"description": "Symfony ClassLoader Component",
"homepage": "https://symfony.com",
"time": "2017-07-29 21:54:42"
"time": "2017-07-29T21:54:42+00:00"
},
{
"name": "symfony/config",
@@ -4956,7 +4855,7 @@
],
"description": "Symfony Config Component",
"homepage": "https://symfony.com",
"time": "2017-08-03 08:59:45"
"time": "2017-08-03T08:59:45+00:00"
},
{
"name": "symfony/dependency-injection",
@@ -5026,7 +4925,7 @@
],
"description": "Symfony DependencyInjection Component",
"homepage": "https://symfony.com",
"time": "2017-08-28 22:20:37"
"time": "2017-08-28T22:20:37+00:00"
},
{
"name": "symfony/filesystem",
@@ -5075,7 +4974,7 @@
],
"description": "Symfony Filesystem Component",
"homepage": "https://symfony.com",
"time": "2017-07-29 21:54:42"
"time": "2017-07-29T21:54:42+00:00"
},
{
"name": "symfony/options-resolver",
@@ -5129,7 +5028,7 @@
"configuration",
"options"
],
"time": "2017-07-29 21:54:42"
"time": "2017-07-29T21:54:42+00:00"
},
{
"name": "symfony/stopwatch",
@@ -5178,7 +5077,7 @@
],
"description": "Symfony Stopwatch Component",
"homepage": "https://symfony.com",
"time": "2017-07-29 21:54:42"
"time": "2017-07-29T21:54:42+00:00"
},
{
"name": "symfony/yaml",
@@ -5233,7 +5132,7 @@
],
"description": "Symfony Yaml Component",
"homepage": "https://symfony.com",
"time": "2017-07-29 21:54:42"
"time": "2017-07-29T21:54:42+00:00"
},
{
"name": "webmozart/assert",
@@ -5283,7 +5182,7 @@
"check",
"validate"
],
"time": "2016-11-23 20:04:58"
"time": "2016-11-23T20:04:58+00:00"
},
{
"name": "wimg/php-compatibility",
@@ -5335,7 +5234,7 @@
"phpcs",
"standards"
],
"time": "2017-08-07 19:39:05"
"time": "2017-08-07T19:39:05+00:00"
}
],
"aliases": [],

View File

@@ -440,8 +440,16 @@ function executePlugins()
// -> Execute functions
if (!empty($cronFiles)) {
setExecutionMessage('Executing registered cron files for Workspace: ' . config("system.workspace"));
/**
* @var \ProcessMaker\Plugins\Interfaces\CronFile $cronFile
*/
foreach($cronFiles as $cronFile) {
executeCustomCronFunction(PATH_PLUGINS . $cronFile->namespace . PATH_SEP . 'bin' . PATH_SEP . $cronFile->cronFile . '.php', $cronFile->cronFile);
$path = PATH_PLUGINS . $cronFile->getNamespace() . PATH_SEP . 'bin' . PATH_SEP . $cronFile->getCronFile() . '.php';
if (file_exists($path)) {
executeCustomCronFunction($path, $cronFile->getCronFile());
} else {
setExecutionMessage('File ' . $cronFile->getCronFile() . '.php ' . 'does not exist.');
}
}
}

View File

@@ -1480,21 +1480,22 @@ class PMPluginRegistry
/**
* Register a cron file in the singleton
*
* @param unknown_type $namespace
* @param unknown_type $cronFile
* @param string $pluginName
* @param string $cronFileToRegister
*/
public function registerCronFile($namespace, $cronFile)
public function registerCronFile($pluginName, $cronFileToRegister)
{
$found = false;
foreach ($this->_aCronFiles as $row => $detail) {
if ($cronFile == $detail->cronFile && $namespace == $detail->namespace) {
$detail->cronFile = $cronFile;
foreach ($this->_aCronFiles as $cronFile) {
if ($cronFile instanceof cronFile &&
$cronFileToRegister === $cronFile->cronFile &&
$pluginName === $cronFile->namespace) {
$cronFile->cronFile = $cronFileToRegister;
$found = true;
}
}
if (!$found) {
$cronFile = new cronFile($namespace, $cronFile);
$this->_aCronFiles[] = $cronFile;
$this->_aCronFiles[] = new cronFile($pluginName, $cronFileToRegister);
}
}

View File

@@ -803,7 +803,7 @@ class ProcessMap
if ($val->equalStepIdTo($aRow['STEP_UID_OBJ'])) {
$sTitle = $val->getStepTitle();
if (trim($val->getSetupStepPage()) != '') {
$urlEdit = "externalStepEdit('" . $aRow['STEP_UID'] . "', '" . $val->sSetupStepPage . "');";
$urlEdit = "externalStepEdit('" . $aRow['STEP_UID'] . "', '" . $val->getSetupStepPage() . "');";
$linkEditValue = 'Edit';
} else {
$urlEdit = "";

View File

@@ -109,6 +109,8 @@ class PluginsRegistryMapBuilder
$tMap->addColumn('PLUGIN_REST_SERVICE', 'PluginRestService', 'string', CreoleTypes::LONGVARCHAR, false, null);
$tMap->addColumn('PLUGIN_CRON_FILES', 'PluginCronFiles', 'string', CreoleTypes::LONGVARCHAR, false, null);
$tMap->addColumn('PLUGIN_TASK_EXTENDED_PROPERTIES', 'PluginTaskExtendedProperties', 'string', CreoleTypes::LONGVARCHAR, false, null);
$tMap->addColumn('PLUGIN_ATTRIBUTES', 'PluginAttributes', 'string', CreoleTypes::LONGVARCHAR, false, null);

View File

@@ -159,6 +159,12 @@ abstract class BasePluginsRegistry extends BaseObject implements Persistent
*/
protected $plugin_rest_service;
/**
* The value for the plugin_cron_files field.
* @var string
*/
protected $plugin_cron_files;
/**
* The value for the plugin_task_extended_properties field.
* @var string
@@ -427,6 +433,17 @@ abstract class BasePluginsRegistry extends BaseObject implements Persistent
return $this->plugin_rest_service;
}
/**
* Get the [plugin_cron_files] column value.
*
* @return string
*/
public function getPluginCronFiles()
{
return $this->plugin_cron_files;
}
/**
* Get the [plugin_task_extended_properties] column value.
*
@@ -933,6 +950,28 @@ abstract class BasePluginsRegistry extends BaseObject implements Persistent
} // setPluginRestService()
/**
* Set the value of [plugin_cron_files] column.
*
* @param string $v new value
* @return void
*/
public function setPluginCronFiles($v)
{
// Since the native PHP type for this column is string,
// we will cast the input to a string (if it is not).
if ($v !== null && !is_string($v)) {
$v = (string) $v;
}
if ($this->plugin_cron_files !== $v) {
$this->plugin_cron_files = $v;
$this->modifiedColumns[] = PluginsRegistryPeer::PLUGIN_CRON_FILES;
}
} // setPluginCronFiles()
/**
* Set the value of [plugin_task_extended_properties] column.
*
@@ -1038,16 +1077,18 @@ abstract class BasePluginsRegistry extends BaseObject implements Persistent
$this->plugin_rest_service = $rs->getString($startcol + 21);
$this->plugin_task_extended_properties = $rs->getString($startcol + 22);
$this->plugin_cron_files = $rs->getString($startcol + 22);
$this->plugin_attributes = $rs->getString($startcol + 23);
$this->plugin_task_extended_properties = $rs->getString($startcol + 23);
$this->plugin_attributes = $rs->getString($startcol + 24);
$this->resetModified();
$this->setNew(false);
// FIXME - using NUM_COLUMNS may be clearer.
return $startcol + 24; // 24 = PluginsRegistryPeer::NUM_COLUMNS - PluginsRegistryPeer::NUM_LAZY_LOAD_COLUMNS).
return $startcol + 25; // 25 = PluginsRegistryPeer::NUM_COLUMNS - PluginsRegistryPeer::NUM_LAZY_LOAD_COLUMNS).
} catch (Exception $e) {
throw new PropelException("Error populating PluginsRegistry object", $e);
@@ -1318,9 +1359,12 @@ abstract class BasePluginsRegistry extends BaseObject implements Persistent
return $this->getPluginRestService();
break;
case 22:
return $this->getPluginTaskExtendedProperties();
return $this->getPluginCronFiles();
break;
case 23:
return $this->getPluginTaskExtendedProperties();
break;
case 24:
return $this->getPluginAttributes();
break;
default:
@@ -1365,8 +1409,9 @@ abstract class BasePluginsRegistry extends BaseObject implements Persistent
$keys[19] => $this->getPluginCss(),
$keys[20] => $this->getPluginJs(),
$keys[21] => $this->getPluginRestService(),
$keys[22] => $this->getPluginTaskExtendedProperties(),
$keys[23] => $this->getPluginAttributes(),
$keys[22] => $this->getPluginCronFiles(),
$keys[23] => $this->getPluginTaskExtendedProperties(),
$keys[24] => $this->getPluginAttributes(),
);
return $result;
}
@@ -1465,9 +1510,12 @@ abstract class BasePluginsRegistry extends BaseObject implements Persistent
$this->setPluginRestService($value);
break;
case 22:
$this->setPluginTaskExtendedProperties($value);
$this->setPluginCronFiles($value);
break;
case 23:
$this->setPluginTaskExtendedProperties($value);
break;
case 24:
$this->setPluginAttributes($value);
break;
} // switch()
@@ -1582,11 +1630,15 @@ abstract class BasePluginsRegistry extends BaseObject implements Persistent
}
if (array_key_exists($keys[22], $arr)) {
$this->setPluginTaskExtendedProperties($arr[$keys[22]]);
$this->setPluginCronFiles($arr[$keys[22]]);
}
if (array_key_exists($keys[23], $arr)) {
$this->setPluginAttributes($arr[$keys[23]]);
$this->setPluginTaskExtendedProperties($arr[$keys[23]]);
}
if (array_key_exists($keys[24], $arr)) {
$this->setPluginAttributes($arr[$keys[24]]);
}
}
@@ -1688,6 +1740,10 @@ abstract class BasePluginsRegistry extends BaseObject implements Persistent
$criteria->add(PluginsRegistryPeer::PLUGIN_REST_SERVICE, $this->plugin_rest_service);
}
if ($this->isColumnModified(PluginsRegistryPeer::PLUGIN_CRON_FILES)) {
$criteria->add(PluginsRegistryPeer::PLUGIN_CRON_FILES, $this->plugin_cron_files);
}
if ($this->isColumnModified(PluginsRegistryPeer::PLUGIN_TASK_EXTENDED_PROPERTIES)) {
$criteria->add(PluginsRegistryPeer::PLUGIN_TASK_EXTENDED_PROPERTIES, $this->plugin_task_extended_properties);
}
@@ -1792,6 +1848,8 @@ abstract class BasePluginsRegistry extends BaseObject implements Persistent
$copyObj->setPluginRestService($this->plugin_rest_service);
$copyObj->setPluginCronFiles($this->plugin_cron_files);
$copyObj->setPluginTaskExtendedProperties($this->plugin_task_extended_properties);
$copyObj->setPluginAttributes($this->plugin_attributes);

View File

@@ -25,7 +25,7 @@ abstract class BasePluginsRegistryPeer
const CLASS_DEFAULT = 'classes.model.PluginsRegistry';
/** The total number of columns. */
const NUM_COLUMNS = 24;
const NUM_COLUMNS = 25;
/** The number of lazy-loaded columns. */
const NUM_LAZY_LOAD_COLUMNS = 0;
@@ -97,6 +97,9 @@ abstract class BasePluginsRegistryPeer
/** the column name for the PLUGIN_REST_SERVICE field */
const PLUGIN_REST_SERVICE = 'PLUGINS_REGISTRY.PLUGIN_REST_SERVICE';
/** the column name for the PLUGIN_CRON_FILES field */
const PLUGIN_CRON_FILES = 'PLUGINS_REGISTRY.PLUGIN_CRON_FILES';
/** the column name for the PLUGIN_TASK_EXTENDED_PROPERTIES field */
const PLUGIN_TASK_EXTENDED_PROPERTIES = 'PLUGINS_REGISTRY.PLUGIN_TASK_EXTENDED_PROPERTIES';
@@ -114,10 +117,10 @@ abstract class BasePluginsRegistryPeer
* e.g. self::$fieldNames[self::TYPE_PHPNAME][0] = 'Id'
*/
private static $fieldNames = array (
BasePeer::TYPE_PHPNAME => array ('PrUid', 'PluginNamespace', 'PluginDescription', 'PluginClassName', 'PluginFriendlyName', 'PluginFile', 'PluginFolder', 'PluginSetupPage', 'PluginCompanyLogo', 'PluginWorkspaces', 'PluginVersion', 'PluginEnable', 'PluginPrivate', 'PluginMenus', 'PluginFolders', 'PluginTriggers', 'PluginPmFunctions', 'PluginRedirectLogin', 'PluginSteps', 'PluginCss', 'PluginJs', 'PluginRestService', 'PluginTaskExtendedProperties', 'PluginAttributes', ),
BasePeer::TYPE_COLNAME => array (PluginsRegistryPeer::PR_UID, PluginsRegistryPeer::PLUGIN_NAMESPACE, PluginsRegistryPeer::PLUGIN_DESCRIPTION, PluginsRegistryPeer::PLUGIN_CLASS_NAME, PluginsRegistryPeer::PLUGIN_FRIENDLY_NAME, PluginsRegistryPeer::PLUGIN_FILE, PluginsRegistryPeer::PLUGIN_FOLDER, PluginsRegistryPeer::PLUGIN_SETUP_PAGE, PluginsRegistryPeer::PLUGIN_COMPANY_LOGO, PluginsRegistryPeer::PLUGIN_WORKSPACES, PluginsRegistryPeer::PLUGIN_VERSION, PluginsRegistryPeer::PLUGIN_ENABLE, PluginsRegistryPeer::PLUGIN_PRIVATE, PluginsRegistryPeer::PLUGIN_MENUS, PluginsRegistryPeer::PLUGIN_FOLDERS, PluginsRegistryPeer::PLUGIN_TRIGGERS, PluginsRegistryPeer::PLUGIN_PM_FUNCTIONS, PluginsRegistryPeer::PLUGIN_REDIRECT_LOGIN, PluginsRegistryPeer::PLUGIN_STEPS, PluginsRegistryPeer::PLUGIN_CSS, PluginsRegistryPeer::PLUGIN_JS, PluginsRegistryPeer::PLUGIN_REST_SERVICE, PluginsRegistryPeer::PLUGIN_TASK_EXTENDED_PROPERTIES, PluginsRegistryPeer::PLUGIN_ATTRIBUTES, ),
BasePeer::TYPE_FIELDNAME => array ('PR_UID', 'PLUGIN_NAMESPACE', 'PLUGIN_DESCRIPTION', 'PLUGIN_CLASS_NAME', 'PLUGIN_FRIENDLY_NAME', 'PLUGIN_FILE', 'PLUGIN_FOLDER', 'PLUGIN_SETUP_PAGE', 'PLUGIN_COMPANY_LOGO', 'PLUGIN_WORKSPACES', 'PLUGIN_VERSION', 'PLUGIN_ENABLE', 'PLUGIN_PRIVATE', 'PLUGIN_MENUS', 'PLUGIN_FOLDERS', 'PLUGIN_TRIGGERS', 'PLUGIN_PM_FUNCTIONS', 'PLUGIN_REDIRECT_LOGIN', 'PLUGIN_STEPS', 'PLUGIN_CSS', 'PLUGIN_JS', 'PLUGIN_REST_SERVICE', 'PLUGIN_TASK_EXTENDED_PROPERTIES', 'PLUGIN_ATTRIBUTES', ),
BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, )
BasePeer::TYPE_PHPNAME => array ('PrUid', 'PluginNamespace', 'PluginDescription', 'PluginClassName', 'PluginFriendlyName', 'PluginFile', 'PluginFolder', 'PluginSetupPage', 'PluginCompanyLogo', 'PluginWorkspaces', 'PluginVersion', 'PluginEnable', 'PluginPrivate', 'PluginMenus', 'PluginFolders', 'PluginTriggers', 'PluginPmFunctions', 'PluginRedirectLogin', 'PluginSteps', 'PluginCss', 'PluginJs', 'PluginRestService', 'PluginCronFiles', 'PluginTaskExtendedProperties', 'PluginAttributes', ),
BasePeer::TYPE_COLNAME => array (PluginsRegistryPeer::PR_UID, PluginsRegistryPeer::PLUGIN_NAMESPACE, PluginsRegistryPeer::PLUGIN_DESCRIPTION, PluginsRegistryPeer::PLUGIN_CLASS_NAME, PluginsRegistryPeer::PLUGIN_FRIENDLY_NAME, PluginsRegistryPeer::PLUGIN_FILE, PluginsRegistryPeer::PLUGIN_FOLDER, PluginsRegistryPeer::PLUGIN_SETUP_PAGE, PluginsRegistryPeer::PLUGIN_COMPANY_LOGO, PluginsRegistryPeer::PLUGIN_WORKSPACES, PluginsRegistryPeer::PLUGIN_VERSION, PluginsRegistryPeer::PLUGIN_ENABLE, PluginsRegistryPeer::PLUGIN_PRIVATE, PluginsRegistryPeer::PLUGIN_MENUS, PluginsRegistryPeer::PLUGIN_FOLDERS, PluginsRegistryPeer::PLUGIN_TRIGGERS, PluginsRegistryPeer::PLUGIN_PM_FUNCTIONS, PluginsRegistryPeer::PLUGIN_REDIRECT_LOGIN, PluginsRegistryPeer::PLUGIN_STEPS, PluginsRegistryPeer::PLUGIN_CSS, PluginsRegistryPeer::PLUGIN_JS, PluginsRegistryPeer::PLUGIN_REST_SERVICE, PluginsRegistryPeer::PLUGIN_CRON_FILES, PluginsRegistryPeer::PLUGIN_TASK_EXTENDED_PROPERTIES, PluginsRegistryPeer::PLUGIN_ATTRIBUTES, ),
BasePeer::TYPE_FIELDNAME => array ('PR_UID', 'PLUGIN_NAMESPACE', 'PLUGIN_DESCRIPTION', 'PLUGIN_CLASS_NAME', 'PLUGIN_FRIENDLY_NAME', 'PLUGIN_FILE', 'PLUGIN_FOLDER', 'PLUGIN_SETUP_PAGE', 'PLUGIN_COMPANY_LOGO', 'PLUGIN_WORKSPACES', 'PLUGIN_VERSION', 'PLUGIN_ENABLE', 'PLUGIN_PRIVATE', 'PLUGIN_MENUS', 'PLUGIN_FOLDERS', 'PLUGIN_TRIGGERS', 'PLUGIN_PM_FUNCTIONS', 'PLUGIN_REDIRECT_LOGIN', 'PLUGIN_STEPS', 'PLUGIN_CSS', 'PLUGIN_JS', 'PLUGIN_REST_SERVICE', 'PLUGIN_CRON_FILES', 'PLUGIN_TASK_EXTENDED_PROPERTIES', 'PLUGIN_ATTRIBUTES', ),
BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, )
);
/**
@@ -127,10 +130,10 @@ abstract class BasePluginsRegistryPeer
* e.g. self::$fieldNames[BasePeer::TYPE_PHPNAME]['Id'] = 0
*/
private static $fieldKeys = array (
BasePeer::TYPE_PHPNAME => array ('PrUid' => 0, 'PluginNamespace' => 1, 'PluginDescription' => 2, 'PluginClassName' => 3, 'PluginFriendlyName' => 4, 'PluginFile' => 5, 'PluginFolder' => 6, 'PluginSetupPage' => 7, 'PluginCompanyLogo' => 8, 'PluginWorkspaces' => 9, 'PluginVersion' => 10, 'PluginEnable' => 11, 'PluginPrivate' => 12, 'PluginMenus' => 13, 'PluginFolders' => 14, 'PluginTriggers' => 15, 'PluginPmFunctions' => 16, 'PluginRedirectLogin' => 17, 'PluginSteps' => 18, 'PluginCss' => 19, 'PluginJs' => 20, 'PluginRestService' => 21, 'PluginTaskExtendedProperties' => 22, 'PluginAttributes' => 23, ),
BasePeer::TYPE_COLNAME => array (PluginsRegistryPeer::PR_UID => 0, PluginsRegistryPeer::PLUGIN_NAMESPACE => 1, PluginsRegistryPeer::PLUGIN_DESCRIPTION => 2, PluginsRegistryPeer::PLUGIN_CLASS_NAME => 3, PluginsRegistryPeer::PLUGIN_FRIENDLY_NAME => 4, PluginsRegistryPeer::PLUGIN_FILE => 5, PluginsRegistryPeer::PLUGIN_FOLDER => 6, PluginsRegistryPeer::PLUGIN_SETUP_PAGE => 7, PluginsRegistryPeer::PLUGIN_COMPANY_LOGO => 8, PluginsRegistryPeer::PLUGIN_WORKSPACES => 9, PluginsRegistryPeer::PLUGIN_VERSION => 10, PluginsRegistryPeer::PLUGIN_ENABLE => 11, PluginsRegistryPeer::PLUGIN_PRIVATE => 12, PluginsRegistryPeer::PLUGIN_MENUS => 13, PluginsRegistryPeer::PLUGIN_FOLDERS => 14, PluginsRegistryPeer::PLUGIN_TRIGGERS => 15, PluginsRegistryPeer::PLUGIN_PM_FUNCTIONS => 16, PluginsRegistryPeer::PLUGIN_REDIRECT_LOGIN => 17, PluginsRegistryPeer::PLUGIN_STEPS => 18, PluginsRegistryPeer::PLUGIN_CSS => 19, PluginsRegistryPeer::PLUGIN_JS => 20, PluginsRegistryPeer::PLUGIN_REST_SERVICE => 21, PluginsRegistryPeer::PLUGIN_TASK_EXTENDED_PROPERTIES => 22, PluginsRegistryPeer::PLUGIN_ATTRIBUTES => 23, ),
BasePeer::TYPE_FIELDNAME => array ('PR_UID' => 0, 'PLUGIN_NAMESPACE' => 1, 'PLUGIN_DESCRIPTION' => 2, 'PLUGIN_CLASS_NAME' => 3, 'PLUGIN_FRIENDLY_NAME' => 4, 'PLUGIN_FILE' => 5, 'PLUGIN_FOLDER' => 6, 'PLUGIN_SETUP_PAGE' => 7, 'PLUGIN_COMPANY_LOGO' => 8, 'PLUGIN_WORKSPACES' => 9, 'PLUGIN_VERSION' => 10, 'PLUGIN_ENABLE' => 11, 'PLUGIN_PRIVATE' => 12, 'PLUGIN_MENUS' => 13, 'PLUGIN_FOLDERS' => 14, 'PLUGIN_TRIGGERS' => 15, 'PLUGIN_PM_FUNCTIONS' => 16, 'PLUGIN_REDIRECT_LOGIN' => 17, 'PLUGIN_STEPS' => 18, 'PLUGIN_CSS' => 19, 'PLUGIN_JS' => 20, 'PLUGIN_REST_SERVICE' => 21, 'PLUGIN_TASK_EXTENDED_PROPERTIES' => 22, 'PLUGIN_ATTRIBUTES' => 23, ),
BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, )
BasePeer::TYPE_PHPNAME => array ('PrUid' => 0, 'PluginNamespace' => 1, 'PluginDescription' => 2, 'PluginClassName' => 3, 'PluginFriendlyName' => 4, 'PluginFile' => 5, 'PluginFolder' => 6, 'PluginSetupPage' => 7, 'PluginCompanyLogo' => 8, 'PluginWorkspaces' => 9, 'PluginVersion' => 10, 'PluginEnable' => 11, 'PluginPrivate' => 12, 'PluginMenus' => 13, 'PluginFolders' => 14, 'PluginTriggers' => 15, 'PluginPmFunctions' => 16, 'PluginRedirectLogin' => 17, 'PluginSteps' => 18, 'PluginCss' => 19, 'PluginJs' => 20, 'PluginRestService' => 21, 'PluginCronFiles' => 22, 'PluginTaskExtendedProperties' => 23, 'PluginAttributes' => 24, ),
BasePeer::TYPE_COLNAME => array (PluginsRegistryPeer::PR_UID => 0, PluginsRegistryPeer::PLUGIN_NAMESPACE => 1, PluginsRegistryPeer::PLUGIN_DESCRIPTION => 2, PluginsRegistryPeer::PLUGIN_CLASS_NAME => 3, PluginsRegistryPeer::PLUGIN_FRIENDLY_NAME => 4, PluginsRegistryPeer::PLUGIN_FILE => 5, PluginsRegistryPeer::PLUGIN_FOLDER => 6, PluginsRegistryPeer::PLUGIN_SETUP_PAGE => 7, PluginsRegistryPeer::PLUGIN_COMPANY_LOGO => 8, PluginsRegistryPeer::PLUGIN_WORKSPACES => 9, PluginsRegistryPeer::PLUGIN_VERSION => 10, PluginsRegistryPeer::PLUGIN_ENABLE => 11, PluginsRegistryPeer::PLUGIN_PRIVATE => 12, PluginsRegistryPeer::PLUGIN_MENUS => 13, PluginsRegistryPeer::PLUGIN_FOLDERS => 14, PluginsRegistryPeer::PLUGIN_TRIGGERS => 15, PluginsRegistryPeer::PLUGIN_PM_FUNCTIONS => 16, PluginsRegistryPeer::PLUGIN_REDIRECT_LOGIN => 17, PluginsRegistryPeer::PLUGIN_STEPS => 18, PluginsRegistryPeer::PLUGIN_CSS => 19, PluginsRegistryPeer::PLUGIN_JS => 20, PluginsRegistryPeer::PLUGIN_REST_SERVICE => 21, PluginsRegistryPeer::PLUGIN_CRON_FILES => 22, PluginsRegistryPeer::PLUGIN_TASK_EXTENDED_PROPERTIES => 23, PluginsRegistryPeer::PLUGIN_ATTRIBUTES => 24, ),
BasePeer::TYPE_FIELDNAME => array ('PR_UID' => 0, 'PLUGIN_NAMESPACE' => 1, 'PLUGIN_DESCRIPTION' => 2, 'PLUGIN_CLASS_NAME' => 3, 'PLUGIN_FRIENDLY_NAME' => 4, 'PLUGIN_FILE' => 5, 'PLUGIN_FOLDER' => 6, 'PLUGIN_SETUP_PAGE' => 7, 'PLUGIN_COMPANY_LOGO' => 8, 'PLUGIN_WORKSPACES' => 9, 'PLUGIN_VERSION' => 10, 'PLUGIN_ENABLE' => 11, 'PLUGIN_PRIVATE' => 12, 'PLUGIN_MENUS' => 13, 'PLUGIN_FOLDERS' => 14, 'PLUGIN_TRIGGERS' => 15, 'PLUGIN_PM_FUNCTIONS' => 16, 'PLUGIN_REDIRECT_LOGIN' => 17, 'PLUGIN_STEPS' => 18, 'PLUGIN_CSS' => 19, 'PLUGIN_JS' => 20, 'PLUGIN_REST_SERVICE' => 21, 'PLUGIN_CRON_FILES' => 22, 'PLUGIN_TASK_EXTENDED_PROPERTIES' => 23, 'PLUGIN_ATTRIBUTES' => 24, ),
BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, )
);
/**
@@ -275,6 +278,8 @@ abstract class BasePluginsRegistryPeer
$criteria->addSelectColumn(PluginsRegistryPeer::PLUGIN_REST_SERVICE);
$criteria->addSelectColumn(PluginsRegistryPeer::PLUGIN_CRON_FILES);
$criteria->addSelectColumn(PluginsRegistryPeer::PLUGIN_TASK_EXTENDED_PROPERTIES);
$criteria->addSelectColumn(PluginsRegistryPeer::PLUGIN_ATTRIBUTES);

View File

@@ -5677,7 +5677,6 @@
<index-column name="STATUS"/>
</index>
</table>
<table name="NOTIFICATION_QUEUE" idMethod="native">
<column name="NOT_UID" type="VARCHAR" size="32" required="true" primaryKey="true"/>
<column name="DEV_TYPE" type="VARCHAR" size="50" required="true"/>
@@ -5739,6 +5738,7 @@
<column name="PLUGIN_CSS" type="LONGVARCHAR"/>
<column name="PLUGIN_JS" type="LONGVARCHAR"/>
<column name="PLUGIN_REST_SERVICE" type="LONGVARCHAR"/>
<column name="PLUGIN_CRON_FILES" type="LONGVARCHAR"/>
<column name="PLUGIN_TASK_EXTENDED_PROPERTIES" type="LONGVARCHAR"/>
<column name="PLUGIN_ATTRIBUTES" type="LONGVARCHAR"/>
</table>

View File

@@ -3181,6 +3181,7 @@ CREATE TABLE `PLUGINS_REGISTRY`
`PLUGIN_CSS` MEDIUMTEXT,
`PLUGIN_JS` MEDIUMTEXT,
`PLUGIN_REST_SERVICE` MEDIUMTEXT,
`PLUGIN_CRON_FILES` MEDIUMTEXT,
`PLUGIN_TASK_EXTENDED_PROPERTIES` MEDIUMTEXT,
`PLUGIN_ATTRIBUTES` MEDIUMTEXT,
PRIMARY KEY (`PR_UID`)

View File

@@ -1127,9 +1127,9 @@ try {
$sNamespace = '';
$sStepName = '';
foreach ($externalSteps as $key => $val) {
if ($val->sStepId == $_GET['UID']) {
$sNamespace = $val->sNamespace;
$sStepName = $val->sStepName;
if ($val->getStepId() == $_GET['UID']) {
$sNamespace = $val->getNamespace();
$sStepName = $val->getStepName();
}
}

View File

@@ -90,6 +90,7 @@ class PluginAdapter
'_aJavascripts' => ['name' => 'PLUGIN_JS', 'type' => 'array'],
'_aJs' => ['name' => 'PLUGIN_JS', 'type' => 'array'],
'_restServices' => ['name' => 'PLUGIN_REST_SERVICE', 'type' => 'array'],
'_aCronFiles' => ['name' => 'PLUGIN_CRON_FILES', 'type' => 'array'],
'_aTaskExtendedProperties' => ['name' => 'PLUGIN_TASK_EXTENDED_PROPERTIES', 'type' => 'array'],
];

View File

@@ -53,4 +53,24 @@ class CronFile
{
return $CronFile == $this->CronFile;
}
/**
* Get plugin name
*
* @return string
*/
public function getNamespace()
{
return $this->Namespace;
}
/**
* Get Cron file
*
* @return string
*/
public function getCronFile()
{
return $this->CronFile;
}
}

View File

@@ -1354,22 +1354,23 @@ class PluginRegistry
/**
* Register a cron file
* @param string $Namespace Name of Plugin
* @param string $CronFile
* @param string $pluginName Name of Plugin
* @param string $cronFileToRegister
*/
public function registerCronFile($Namespace, $CronFile)
public function registerCronFile($pluginName, $cronFileToRegister)
{
$found = false;
/** @var CronFile $cronFile */
foreach ($this->_aCronFiles as $cronFile) {
if ($cronFile->equalCronFileTo($CronFile) && $cronFile->equalNamespaceTo($Namespace)) {
$cronFile->setCronFile($CronFile);
if ($cronFile instanceof CronFile &&
$cronFile->equalNamespaceTo($pluginName) &&
$cronFile->equalCronFileTo($cronFileToRegister)) {
$cronFile->setCronFile($cronFileToRegister);
$found = true;
}
}
if (!$found) {
$CronFile = new CronFile($Namespace, $CronFile);
$this->_aCronFiles[] = $CronFile;
$this->_aCronFiles[] = new CronFile($pluginName, $cronFileToRegister);
}
}

View File

@@ -5,6 +5,7 @@ namespace ProcessMaker\Plugins\Traits;
use BasePeer;
use G;
use PluginsRegistry;
use ProcessMaker\Plugins\Interfaces\CronFile;
use ProcessMaker\Plugins\Interfaces\CssFile;
use ProcessMaker\Plugins\Interfaces\FolderDetail;
use ProcessMaker\Plugins\Interfaces\JsFile;
@@ -116,6 +117,7 @@ trait PluginStructure
$this->buildCss(G::json_decode($plugin['PluginCss'], true));
$this->buildJs(G::json_decode($plugin['PluginJs'], true));
$this->buildRestService(G::json_decode($plugin['PluginRestService'], true));
$this->buildCronFiles($plugin['PluginNamespace'], G::json_decode($plugin['PluginCronFiles'], true));
$this->buildAttributes($plugin['PluginNamespace'], G::json_decode($plugin['PluginAttributes']));
}
}
@@ -261,6 +263,23 @@ trait PluginStructure
$this->_restServices = array_merge($this->_restServices, $restServices);
}
/**
* Builds an array with the Cron Files configurations and set to the respective attribute
*
* @param string $pluginName
* @param array $cronFilesToAdd
*/
private function buildCronFiles($pluginName, $cronFilesToAdd)
{
$cronFiles = [];
if ($cronFilesToAdd) {
foreach ($cronFilesToAdd as $cronFile) {
$cronFiles[] = new CronFile($pluginName, $cronFile['CronFile']);
}
}
$this->_aCronFiles = array_merge($this->_aCronFiles, $cronFiles);
}
/**
* Build other properties that are not considered in the schema of the table
* @param string $namespace

View File

@@ -1,5 +1,7 @@
<?php
session_start();
require_once __DIR__ . '/../../../bootstrap/autoload.php';
require_once (dirname(__FILE__) . '/../../../gulliver/system/class.bootstrap.php');
require_once (dirname(__FILE__) . '/../../../gulliver/system/class.g.php');
@@ -14,71 +16,71 @@ $proUid = $_GET['proUid'];
$server = isset($_GET['server']) ? $_GET['server'] : '';
//We do need the server to continue.
if( !isset($_GET['server']) || $server == "" ){
throw new \Exception(Bootstrap::LoadTranslation( 'ID_GMAIL_NEED_SERVER' ));
if (!isset($_GET['server']) || $server == "") {
throw new \Exception(Bootstrap::LoadTranslation('ID_GMAIL_NEED_SERVER'));
}
//First check if the feature is enabled in the license.
$gCurl = curl_init( 'https://' . $server . '/api/1.0/' . $pmws . '/gmailIntegration/verifyGmailfeature/' );
curl_setopt( $gCurl, CURLOPT_HTTPHEADER, array( 'Authorization: Bearer ' . $pmtoken ) );
curl_setopt( $gCurl, CURLOPT_RETURNTRANSFER, true);
curl_setopt( $gCurl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt( $gCurl, CURLOPT_CONNECTTIMEOUT, 0);
$gCurl = curl_init('https://' . $server . '/api/1.0/' . $pmws . '/gmailIntegration/verifyGmailfeature/');
curl_setopt($gCurl, CURLOPT_HTTPHEADER, array('Authorization: Bearer ' . $pmtoken));
curl_setopt($gCurl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($gCurl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($gCurl, CURLOPT_CONNECTTIMEOUT, 0);
curl_setopt($gCurl, CURLOPT_SSL_VERIFYHOST, false);
if (curl_exec ( $gCurl ) === false) {
echo 'Curl error: ' . curl_error ( $gCurl );
if (curl_exec($gCurl) === false) {
echo 'Curl error: ' . curl_error($gCurl);
error_log(Bootstrap::LoadTranslation('ID_SERVER_COMMUNICATION_ERROR'));
die ();
die();
} else {
$gCurl_response = curl_exec ( $gCurl );
curl_close ( $gCurl );
$gResp = G::json_decode ( $gCurl_response );
$gCurl_response = curl_exec($gCurl);
curl_close($gCurl);
$gResp = G::json_decode($gCurl_response);
if ($gResp === false) {
echo Bootstrap::LoadTranslation ( 'ID_NO_LICENSE_FEATURE_ENABLED' );
die ();
echo Bootstrap::LoadTranslation('ID_NO_LICENSE_FEATURE_ENABLED');
die();
}
}
set_time_limit(60);
$curl = curl_init( 'https://' . $server . '/api/1.0/' . $pmws . '/gmailIntegration/userexist/' . $gmail );
curl_setopt( $curl, CURLOPT_HTTPHEADER, array( 'Authorization: Bearer ' . $pmtoken ) );
curl_setopt( $curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt( $curl, CURLOPT_SSL_VERIFYPEER,false);
curl_setopt( $curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt( $curl, CURLOPT_CONNECTTIMEOUT, 0);
$curl = curl_init('https://' . $server . '/api/1.0/' . $pmws . '/gmailIntegration/userexist/' . $gmail);
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Authorization: Bearer ' . $pmtoken));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 0);
$curl_response = curl_exec( $curl );
$curl_response = curl_exec($curl);
curl_close($curl);
$decodedResp = G::json_decode($curl_response);
if(!is_object($decodedResp) || property_exists($decodedResp,'error')) {
if (!is_object($decodedResp) || property_exists($decodedResp, 'error')) {
die($decodedResp->error->message);
}
//getting the enviroment
$enviroment = $decodedResp->enviroment;
if(count($decodedResp->user) > 1){
echo Bootstrap::LoadTranslation( 'ID_EMAIL_MORE_THAN_ONE_USER' );
if (count($decodedResp->user) > 1) {
echo Bootstrap::LoadTranslation('ID_EMAIL_MORE_THAN_ONE_USER');
die;
} else if(count($decodedResp->user) < 1){
echo Bootstrap::LoadTranslation( 'ID_USER_NOT_FOUND' );
} else if (count($decodedResp->user) < 1) {
echo Bootstrap::LoadTranslation('ID_USER_NOT_FOUND');
die;
}
//validationg if there is an actual PM session
if( !isset($_SESSION['USER_LOGGED']) || $_SESSION['USER_LOGGED'] != $decodedResp->user['0']->USR_UID){
$url = 'https://www.googleapis.com/oauth2/v1/tokeninfo?access_token='.$gmailToken;
if (!isset($_SESSION['USER_LOGGED']) || $_SESSION['USER_LOGGED'] != $decodedResp->user['0']->USR_UID) {
$url = 'https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=' . $gmailToken;
// init curl object
$ch = curl_init();
// define options
$optArray = array(
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_SSL_VERIFYHOST => false
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_SSL_VERIFYHOST => false
);
// apply those options
curl_setopt_array($ch, $optArray);
@@ -88,9 +90,9 @@ if( !isset($_SESSION['USER_LOGGED']) || $_SESSION['USER_LOGGED'] != $decodedResp
curl_close($ch);
//First validate if this user (mail) corresponds to a PM user
if(isset($response->email) && ($gmail == $response->email)){
if (isset($response->email) && ($gmail == $response->email)) {
//If the email corresponds I get the username and with the gmail user_id the session is created.
if($decodedResp->user['0']->USR_STATUS == "ACTIVE"){
if ($decodedResp->user['0']->USR_STATUS == "ACTIVE") {
//User Active! lets create the Session
@session_destroy();
session_start();
@@ -109,28 +111,27 @@ if( !isset($_SESSION['USER_LOGGED']) || $_SESSION['USER_LOGGED'] != $decodedResp
$_SESSION['USERNAME_PREVIOUS1'] = $decodedResp->user['0']->USR_USERNAME;
$_SESSION['USERNAME_PREVIOUS2'] = $decodedResp->user['0']->USR_USERNAME;
$_SESSION['WORKSPACE'] = $pmws;
$_SESSION['USR_FULLNAME'] = $decodedResp->user['0']->USR_FIRSTNAME. ' ' .$decodedResp->user['0']->USR_LASTNAME;
$_SESSION['USR_FULLNAME'] = $decodedResp->user['0']->USR_FIRSTNAME . ' ' . $decodedResp->user['0']->USR_LASTNAME;
$_SESSION['__sw__'] = 1;
initUserSession(
$decodedResp->user['0']->USR_UID,
$decodedResp->user['0']->USR_USERNAME
$decodedResp->user['0']->USR_UID, $decodedResp->user['0']->USR_USERNAME
);
//session created
} else {
echo Bootstrap::LoadTranslation( 'ID_USER_NOT_ACTIVE' );
echo Bootstrap::LoadTranslation('ID_USER_NOT_ACTIVE');
die;
}
} else {
echo Bootstrap::LoadTranslation( 'ID_USER_DOES_NOT_CORRESPOND' );
echo Bootstrap::LoadTranslation('ID_USER_DOES_NOT_CORRESPOND');
die;
}
}
$_SESSION['server'] = 'https://' . $server . '/sys'. $pmws .'/en/'.$enviroment.'/';
$_SESSION['PMCase'] = 'cases/cases_Open?APP_UID='.$appUid.'&DEL_INDEX='.$delIndex.'&action='.$action.'&gmail=1';
$_SESSION['server'] = 'https://' . $server . '/sys' . $pmws . '/en/' . $enviroment . '/';
$_SESSION['PMCase'] = 'cases/cases_Open?APP_UID=' . $appUid . '&DEL_INDEX=' . $delIndex . '&action=' . $action . '&gmail=1';
$_SESSION['PMProcessmap'] = 'designer?prj_uid=' . $proUid . '&prj_readonly=true&app_uid=' . $appUid;
$_SESSION['PMUploadedDocuments'] = 'cases/ajaxListener?action=uploadedDocuments';
$_SESSION['PMGeneratedDocuments'] = 'cases/casesGenerateDocumentPage_Ajax.php?actionAjax=casesGenerateDocumentPage';
header( 'location:' . 'templateForm.php' );
header('location:' . 'templateForm.php');