Merged in feature/PMC-1332 (pull request #7136)
PMC-1332 PMCORE-1018 Approved-by: Julio Cesar Laura Avendaño <contact@julio-laura.com> Approved-by: Paula Quispe <paula.quispe@processmaker.com>
This commit is contained in:
@@ -51,6 +51,8 @@
|
|||||||
"php-imap/php-imap": "^3.0",
|
"php-imap/php-imap": "^3.0",
|
||||||
"nikic/php-parser": "3.1.5",
|
"nikic/php-parser": "3.1.5",
|
||||||
"laravel/tinker": "^1.0",
|
"laravel/tinker": "^1.0",
|
||||||
|
"league/oauth2-client": "^2.4",
|
||||||
|
"league/oauth2-google": "^3.0",
|
||||||
"tecnickcom/tcpdf": "6.3.*"
|
"tecnickcom/tcpdf": "6.3.*"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
|
|||||||
126
composer.lock
generated
126
composer.lock
generated
@@ -1393,6 +1393,124 @@
|
|||||||
],
|
],
|
||||||
"time": "2020-01-04T16:30:31+00:00"
|
"time": "2020-01-04T16:30:31+00:00"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "league/oauth2-client",
|
||||||
|
"version": "2.4.1",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/thephpleague/oauth2-client.git",
|
||||||
|
"reference": "cc114abc622a53af969e8664722e84ca36257530"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/thephpleague/oauth2-client/zipball/cc114abc622a53af969e8664722e84ca36257530",
|
||||||
|
"reference": "cc114abc622a53af969e8664722e84ca36257530",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"guzzlehttp/guzzle": "^6.0",
|
||||||
|
"paragonie/random_compat": "^1|^2|^9.99",
|
||||||
|
"php": "^5.6|^7.0"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"eloquent/liberator": "^2.0",
|
||||||
|
"eloquent/phony-phpunit": "^1.0|^3.0",
|
||||||
|
"jakub-onderka/php-parallel-lint": "^0.9.2",
|
||||||
|
"phpunit/phpunit": "^5.7|^6.0",
|
||||||
|
"squizlabs/php_codesniffer": "^2.3|^3.0"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-2.x": "2.0.x-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"League\\OAuth2\\Client\\": "src/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Alex Bilbie",
|
||||||
|
"email": "hello@alexbilbie.com",
|
||||||
|
"homepage": "http://www.alexbilbie.com",
|
||||||
|
"role": "Developer"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Woody Gilk",
|
||||||
|
"homepage": "https://github.com/shadowhand",
|
||||||
|
"role": "Contributor"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "OAuth 2.0 Client Library",
|
||||||
|
"keywords": [
|
||||||
|
"Authentication",
|
||||||
|
"SSO",
|
||||||
|
"authorization",
|
||||||
|
"identity",
|
||||||
|
"idp",
|
||||||
|
"oauth",
|
||||||
|
"oauth2",
|
||||||
|
"single sign on"
|
||||||
|
],
|
||||||
|
"time": "2018-11-22 18:33:57"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "league/oauth2-google",
|
||||||
|
"version": "3.0.1",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/thephpleague/oauth2-google.git",
|
||||||
|
"reference": "3290273029f7cc2a468aae68bad184479a23b9d2"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/thephpleague/oauth2-google/zipball/3290273029f7cc2a468aae68bad184479a23b9d2",
|
||||||
|
"reference": "3290273029f7cc2a468aae68bad184479a23b9d2",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"league/oauth2-client": "^2.0"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"eloquent/phony-phpunit": "^2.0",
|
||||||
|
"php-coveralls/php-coveralls": "^2.1",
|
||||||
|
"phpunit/phpunit": "^6.0",
|
||||||
|
"squizlabs/php_codesniffer": "^2.0"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"League\\OAuth2\\Client\\": "src/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Woody Gilk",
|
||||||
|
"email": "woody.gilk@gmail.com",
|
||||||
|
"homepage": "http://shadowhand.me"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Google OAuth 2.0 Client Provider for The PHP League OAuth2-Client",
|
||||||
|
"keywords": [
|
||||||
|
"Authentication",
|
||||||
|
"authorization",
|
||||||
|
"client",
|
||||||
|
"google",
|
||||||
|
"oauth",
|
||||||
|
"oauth2"
|
||||||
|
],
|
||||||
|
"time": "2018-12-28 16:18:33"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "libchart/libchart",
|
"name": "libchart/libchart",
|
||||||
"version": "1.4.0",
|
"version": "1.4.0",
|
||||||
@@ -5727,8 +5845,8 @@
|
|||||||
"authors": [
|
"authors": [
|
||||||
{
|
{
|
||||||
"name": "Sebastian Bergmann",
|
"name": "Sebastian Bergmann",
|
||||||
"role": "lead",
|
"email": "sb@sebastian-bergmann.de",
|
||||||
"email": "sb@sebastian-bergmann.de"
|
"role": "lead"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
|
"description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
|
||||||
@@ -5995,8 +6113,8 @@
|
|||||||
"authors": [
|
"authors": [
|
||||||
{
|
{
|
||||||
"name": "Sebastian Bergmann",
|
"name": "Sebastian Bergmann",
|
||||||
"role": "lead",
|
"email": "sebastian@phpunit.de",
|
||||||
"email": "sebastian@phpunit.de"
|
"role": "lead"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"description": "The PHP Unit Testing framework.",
|
"description": "The PHP Unit Testing framework.",
|
||||||
|
|||||||
37
database/factories/AppMessageFactory.php
Normal file
37
database/factories/AppMessageFactory.php
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Faker\Generator as Faker;
|
||||||
|
|
||||||
|
$factory->define(\ProcessMaker\Model\AppMessage::class, function(Faker $faker) {
|
||||||
|
return [
|
||||||
|
'APP_MSG_UID' => G::generateUniqueID(),
|
||||||
|
'MSG_UID' => '',
|
||||||
|
'APP_UID' => function() {
|
||||||
|
return factory(\ProcessMaker\Model\Application::class)->create()->APP_UID;
|
||||||
|
},
|
||||||
|
'DEL_INDEX' => 1,
|
||||||
|
'APP_MSG_TYPE' => 'ROUTING',
|
||||||
|
'APP_MSG_TYPE_ID' => 0,
|
||||||
|
'APP_MSG_SUBJECT' => $faker->title,
|
||||||
|
'APP_MSG_FROM' => $faker->email,
|
||||||
|
'APP_MSG_TO' => $faker->email,
|
||||||
|
'APP_MSG_BODY' => $faker->text,
|
||||||
|
'APP_MSG_DATE' => $faker->dateTime(),
|
||||||
|
'APP_MSG_CC' => '',
|
||||||
|
'APP_MSG_BCC' => '',
|
||||||
|
'APP_MSG_TEMPLATE' => '',
|
||||||
|
'APP_MSG_STATUS' => 'pending',
|
||||||
|
'APP_MSG_STATUS_ID' => 1,
|
||||||
|
'APP_MSG_ATTACH' => '',
|
||||||
|
'APP_MSG_SEND_DATE' => $faker->dateTime(),
|
||||||
|
'APP_MSG_SHOW_MESSAGE' => 1,
|
||||||
|
'APP_MSG_ERROR' => '',
|
||||||
|
'PRO_ID' => function() {
|
||||||
|
return factory(\ProcessMaker\Model\Process::class)->create()->PRO_ID;
|
||||||
|
},
|
||||||
|
'TAS_ID' => function() {
|
||||||
|
return factory(\ProcessMaker\Model\Task::class)->create()->TAS_ID;
|
||||||
|
},
|
||||||
|
'APP_NUMBER' => 1
|
||||||
|
];
|
||||||
|
});
|
||||||
@@ -5,7 +5,7 @@ use Faker\Generator as Faker;
|
|||||||
$factory->define(\ProcessMaker\Model\EmailServerModel::class, function(Faker $faker) {
|
$factory->define(\ProcessMaker\Model\EmailServerModel::class, function(Faker $faker) {
|
||||||
return [
|
return [
|
||||||
'MESS_UID' => G::generateUniqueID(),
|
'MESS_UID' => G::generateUniqueID(),
|
||||||
'MESS_ENGINE' => '',
|
'MESS_ENGINE' => 'MAIL',
|
||||||
'MESS_SERVER' => '',
|
'MESS_SERVER' => '',
|
||||||
'MESS_PORT' => 0,
|
'MESS_PORT' => 0,
|
||||||
'MESS_INCOMING_SERVER' => '',
|
'MESS_INCOMING_SERVER' => '',
|
||||||
@@ -19,5 +19,96 @@ $factory->define(\ProcessMaker\Model\EmailServerModel::class, function(Faker $fa
|
|||||||
'MESS_TRY_SEND_INMEDIATLY' => 0,
|
'MESS_TRY_SEND_INMEDIATLY' => 0,
|
||||||
'MAIL_TO' => '',
|
'MAIL_TO' => '',
|
||||||
'MESS_DEFAULT' => 0,
|
'MESS_DEFAULT' => 0,
|
||||||
|
'OAUTH_CLIENT_ID' => '',
|
||||||
|
'OAUTH_CLIENT_SECRET' => '',
|
||||||
|
'OAUTH_REFRESH_TOKEN' => ''
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
$factory->state(\ProcessMaker\Model\EmailServerModel::class, 'PHPMAILER', function ($faker) {
|
||||||
|
return [
|
||||||
|
'MESS_UID' => G::generateUniqueID(),
|
||||||
|
'MESS_ENGINE' => 'PHPMAILER',
|
||||||
|
'MESS_PORT' => $faker->numberBetween(400, 500),
|
||||||
|
'MESS_INCOMING_SERVER' => '',
|
||||||
|
'MESS_INCOMING_PORT' => 0,
|
||||||
|
'MESS_RAUTH' => 1,
|
||||||
|
'MESS_ACCOUNT' => $faker->email,
|
||||||
|
'MESS_PASSWORD' => $faker->password,
|
||||||
|
'MESS_FROM_MAIL' => $faker->email,
|
||||||
|
'MESS_FROM_NAME' => $faker->name,
|
||||||
|
'SMTPSECURE' => 'ssl',
|
||||||
|
'MESS_TRY_SEND_INMEDIATLY' => 0,
|
||||||
|
'MAIL_TO' => $faker->email,
|
||||||
|
'MESS_DEFAULT' => 0,
|
||||||
|
'OAUTH_CLIENT_ID' => '',
|
||||||
|
'OAUTH_CLIENT_SECRET' => '',
|
||||||
|
'OAUTH_REFRESH_TOKEN' => ''
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
$factory->state(\ProcessMaker\Model\EmailServerModel::class, 'IMAP', function ($faker) {
|
||||||
|
return [
|
||||||
|
'MESS_UID' => G::generateUniqueID(),
|
||||||
|
'MESS_ENGINE' => 'IMAP',
|
||||||
|
'MESS_PORT' => $faker->numberBetween(400, 500),
|
||||||
|
'MESS_INCOMING_SERVER' => 'imap.' . $faker->domainName,
|
||||||
|
'MESS_INCOMING_PORT' => $faker->numberBetween(400, 500),
|
||||||
|
'MESS_RAUTH' => 1,
|
||||||
|
'MESS_ACCOUNT' => $faker->email,
|
||||||
|
'MESS_PASSWORD' => $faker->password,
|
||||||
|
'MESS_FROM_MAIL' => $faker->email,
|
||||||
|
'MESS_FROM_NAME' => $faker->name,
|
||||||
|
'SMTPSECURE' => 'ssl',
|
||||||
|
'MESS_TRY_SEND_INMEDIATLY' => 0,
|
||||||
|
'MAIL_TO' => $faker->email,
|
||||||
|
'MESS_DEFAULT' => 0,
|
||||||
|
'OAUTH_CLIENT_ID' => '',
|
||||||
|
'OAUTH_CLIENT_SECRET' => '',
|
||||||
|
'OAUTH_REFRESH_TOKEN' => ''
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
$factory->state(\ProcessMaker\Model\EmailServerModel::class, 'GMAILAPI', function ($faker) {
|
||||||
|
return [
|
||||||
|
'MESS_UID' => G::generateUniqueID(),
|
||||||
|
'MESS_ENGINE' => 'GMAILAPI',
|
||||||
|
'MESS_PORT' => 0,
|
||||||
|
'MESS_INCOMING_SERVER' => '',
|
||||||
|
'MESS_INCOMING_PORT' => 0,
|
||||||
|
'MESS_RAUTH' => 1,
|
||||||
|
'MESS_ACCOUNT' => $faker->email,
|
||||||
|
'MESS_PASSWORD' => '',
|
||||||
|
'MESS_FROM_MAIL' => $faker->email,
|
||||||
|
'MESS_FROM_NAME' => $faker->name,
|
||||||
|
'SMTPSECURE' => 'No',
|
||||||
|
'MESS_TRY_SEND_INMEDIATLY' => 0,
|
||||||
|
'MAIL_TO' => $faker->email,
|
||||||
|
'MESS_DEFAULT' => 0,
|
||||||
|
'OAUTH_CLIENT_ID' => $faker->regexify("/[0-9]{12}-[a-z]{32}\.apps\.googleusercontent\.com/"),
|
||||||
|
'OAUTH_CLIENT_SECRET' => $faker->regexify("/[a-z]{24}/"),
|
||||||
|
'OAUTH_REFRESH_TOKEN' => $faker->regexify("/[a-z]{7}[a-zA-Z0-9]{355}==/")
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
$factory->state(\ProcessMaker\Model\EmailServerModel::class, 'OPENMAIL', function ($faker) {
|
||||||
|
return [
|
||||||
|
'MESS_UID' => G::generateUniqueID(),
|
||||||
|
'MESS_ENGINE' => 'OPENMAIL',
|
||||||
|
'MESS_PORT' => 0,
|
||||||
|
'MESS_INCOMING_SERVER' => '',
|
||||||
|
'MESS_INCOMING_PORT' => 0,
|
||||||
|
'MESS_RAUTH' => 1,
|
||||||
|
'MESS_ACCOUNT' => $faker->email,
|
||||||
|
'MESS_PASSWORD' => $faker->password,
|
||||||
|
'MESS_FROM_MAIL' => $faker->email,
|
||||||
|
'MESS_FROM_NAME' => $faker->name,
|
||||||
|
'SMTPSECURE' => 'ssl',
|
||||||
|
'MESS_TRY_SEND_INMEDIATLY' => 0,
|
||||||
|
'MAIL_TO' => $faker->email,
|
||||||
|
'MESS_DEFAULT' => 0,
|
||||||
|
'OAUTH_CLIENT_ID' => '',
|
||||||
|
'OAUTH_CLIENT_SECRET' => '',
|
||||||
|
'OAUTH_REFRESH_TOKEN' => ''
|
||||||
];
|
];
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -633,7 +633,7 @@ class G
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
$file = G::ExpandPath('skinEngine') . 'skinEngine.php';
|
$file = G::ExpandPath('skinEngine') . 'skinEngine.php';
|
||||||
include $file;
|
include_once $file;
|
||||||
$skinEngine = new SkinEngine($G_TEMPLATE, $G_SKIN, $G_CONTENT);
|
$skinEngine = new SkinEngine($G_TEMPLATE, $G_SKIN, $G_CONTENT);
|
||||||
$skinEngine->setLayout($layout);
|
$skinEngine->setLayout($layout);
|
||||||
$skinEngine->dispatch();
|
$skinEngine->dispatch();
|
||||||
|
|||||||
@@ -1,46 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
|
||||||
* class.rbac.php
|
|
||||||
*
|
|
||||||
* @package gulliver.system
|
|
||||||
*
|
|
||||||
* ProcessMaker Open Source Edition
|
|
||||||
* Copyright (C) 2004 - 2011 Colosa Inc.
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU Affero General Public License as
|
|
||||||
* published by the Free Software Foundation, either version 3 of the
|
|
||||||
* License, or (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU Affero General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Affero General Public License
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*
|
|
||||||
* For more information, contact Colosa Inc, 2566 Le Jeune Rd.,
|
|
||||||
* Coral Gables, FL, 33134, USA, or email info@colosa.com.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
use ProcessMaker\Exception\RBACException;
|
use ProcessMaker\Exception\RBACException;
|
||||||
|
|
||||||
/**
|
|
||||||
* File: $Id$
|
|
||||||
*
|
|
||||||
* RBAC class definition
|
|
||||||
*
|
|
||||||
* @package gulliver.system
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Clase Wrapper
|
|
||||||
*
|
|
||||||
* @package gulliver.system
|
|
||||||
*/
|
|
||||||
class RBAC
|
class RBAC
|
||||||
{
|
{
|
||||||
const ADMIN_USER_UID = '00000000000000000000000000000001';
|
const ADMIN_USER_UID = '00000000000000000000000000000001';
|
||||||
@@ -180,7 +141,11 @@ class RBAC
|
|||||||
'UPD' => ['PM_SETUP'],
|
'UPD' => ['PM_SETUP'],
|
||||||
'DEL' => ['PM_SETUP'],
|
'DEL' => ['PM_SETUP'],
|
||||||
'LST' => ['PM_SETUP'],
|
'LST' => ['PM_SETUP'],
|
||||||
'TEST' => ['PM_SETUP']
|
'TEST' => ['PM_SETUP'],
|
||||||
|
'createAuthUrl' => ['PM_SETUP']
|
||||||
|
],
|
||||||
|
'emailServerGmailOAuth.php' => [
|
||||||
|
'code' => ['PM_SETUP']
|
||||||
],
|
],
|
||||||
'processes_GetFile.php' => [
|
'processes_GetFile.php' => [
|
||||||
'mailTemplates' => ['PM_FACTORY'],
|
'mailTemplates' => ['PM_FACTORY'],
|
||||||
|
|||||||
@@ -31,6 +31,7 @@
|
|||||||
<directory suffix=".php">./gulliver</directory>
|
<directory suffix=".php">./gulliver</directory>
|
||||||
<directory suffix=".php">./workflow/engine/classes</directory>
|
<directory suffix=".php">./workflow/engine/classes</directory>
|
||||||
<directory suffix=".php">./workflow/engine/src</directory>
|
<directory suffix=".php">./workflow/engine/src</directory>
|
||||||
|
<directory suffix=".php">./workflow/engine/methods/emailServer/</directory>
|
||||||
</whitelist>
|
</whitelist>
|
||||||
<exclude>
|
<exclude>
|
||||||
<directory>./workflow/engine/classes/model/map</directory>
|
<directory>./workflow/engine/classes/model/map</directory>
|
||||||
|
|||||||
31
tests/unit/gulliver/system/rbacTest.php
Normal file
31
tests/unit/gulliver/system/rbacTest.php
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Tests\unit\gulliver\system;
|
||||||
|
|
||||||
|
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
||||||
|
use G;
|
||||||
|
use RBAC;
|
||||||
|
use Tests\TestCase;
|
||||||
|
|
||||||
|
class rbacTest extends TestCase
|
||||||
|
{
|
||||||
|
use DatabaseTransactions;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This tests the initialization of values.
|
||||||
|
* @test
|
||||||
|
* @covers \RBAC::__construct()
|
||||||
|
*/
|
||||||
|
public function it_should_initialize_properties_for_gmail_oauth()
|
||||||
|
{
|
||||||
|
$rbac = new RBAC();
|
||||||
|
$authorizedActions = $rbac->authorizedActions;
|
||||||
|
|
||||||
|
$this->assertArrayHasKey("emailServerGmailOAuth.php", $authorizedActions);
|
||||||
|
|
||||||
|
$subset = [
|
||||||
|
'code' => ['PM_SETUP']
|
||||||
|
];
|
||||||
|
$this->assertContains($subset, $authorizedActions);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,10 +1,14 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
use Faker\Factory;
|
use Faker\Factory;
|
||||||
|
use Illuminate\Http\UploadedFile;
|
||||||
|
use ProcessMaker\Model\AppMessage;
|
||||||
|
use ProcessMaker\Model\EmailServerModel;
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
|
|
||||||
class SpoolRunTest extends TestCase
|
class SpoolRunTest extends TestCase
|
||||||
{
|
{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor of the class.
|
* Constructor of the class.
|
||||||
*/
|
*/
|
||||||
@@ -16,7 +20,7 @@ class SpoolRunTest extends TestCase
|
|||||||
/**
|
/**
|
||||||
* Check if "envelope_cc" and "envelope_bcc" was set correctly in consecutive calls
|
* Check if "envelope_cc" and "envelope_bcc" was set correctly in consecutive calls
|
||||||
*
|
*
|
||||||
* @covers SpoolRun::setData()
|
* @covers \SpoolRun::setData()
|
||||||
*
|
*
|
||||||
* @test
|
* @test
|
||||||
*/
|
*/
|
||||||
@@ -30,14 +34,14 @@ class SpoolRunTest extends TestCase
|
|||||||
|
|
||||||
// Set a first set of data
|
// Set a first set of data
|
||||||
$spoolRun->setData(
|
$spoolRun->setData(
|
||||||
G::generateUniqueID(),
|
G::generateUniqueID(),
|
||||||
$faker->words(3, true),
|
$faker->words(3, true),
|
||||||
$faker->companyEmail,
|
$faker->companyEmail,
|
||||||
$faker->freeEmail,
|
$faker->freeEmail,
|
||||||
$faker->text(),
|
$faker->text(),
|
||||||
$faker->dateTime()->format('Y-m-d H:i:s'),
|
$faker->dateTime()->format('Y-m-d H:i:s'),
|
||||||
$faker->companyEmail,
|
$faker->companyEmail,
|
||||||
$faker->freeEmail
|
$faker->freeEmail
|
||||||
);
|
);
|
||||||
|
|
||||||
// Build the "to", "cc" an "bcc" values
|
// Build the "to", "cc" an "bcc" values
|
||||||
@@ -45,14 +49,14 @@ class SpoolRunTest extends TestCase
|
|||||||
|
|
||||||
// Set a second set of data
|
// Set a second set of data
|
||||||
$spoolRun->setData(
|
$spoolRun->setData(
|
||||||
G::generateUniqueID(),
|
G::generateUniqueID(),
|
||||||
$faker->words(3, true),
|
$faker->words(3, true),
|
||||||
$faker->companyEmail,
|
$faker->companyEmail,
|
||||||
$faker->freeEmail,
|
$faker->freeEmail,
|
||||||
$faker->text(),
|
$faker->text(),
|
||||||
$faker->dateTime()->format('Y-m-d H:i:s'),
|
$faker->dateTime()->format('Y-m-d H:i:s'),
|
||||||
$faker->companyEmail,
|
$faker->companyEmail,
|
||||||
$faker->freeEmail
|
$faker->freeEmail
|
||||||
);
|
);
|
||||||
|
|
||||||
// Build the "to", "cc" an "bcc" values
|
// Build the "to", "cc" an "bcc" values
|
||||||
@@ -66,4 +70,302 @@ class SpoolRunTest extends TestCase
|
|||||||
$this->assertCount(1, $fileData['envelope_cc']);
|
$this->assertCount(1, $fileData['envelope_cc']);
|
||||||
$this->assertCount(1, $fileData['envelope_bcc']);
|
$this->assertCount(1, $fileData['envelope_bcc']);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This test uses the GMAILAPI option in a simple way.
|
||||||
|
* @test
|
||||||
|
* @covers \SpoolRun::__construct()
|
||||||
|
* @covers \SpoolRun::setData()
|
||||||
|
* @covers \SpoolRun::setConfig()
|
||||||
|
* @covers \SpoolRun::sendMail()
|
||||||
|
* @covers \SpoolRun::handleMail()
|
||||||
|
*/
|
||||||
|
public function it_should_handle_gmail_oauth_option()
|
||||||
|
{
|
||||||
|
$appMsgUid = G::generateUniqueID();
|
||||||
|
factory(AppMessage::class)->create([
|
||||||
|
'APP_MSG_UID' => $appMsgUid
|
||||||
|
]);
|
||||||
|
|
||||||
|
$emailServer = factory(EmailServerModel::class)->states('GMAILAPI')->make();
|
||||||
|
|
||||||
|
$config = $emailServer->toArray();
|
||||||
|
$config['SMTPSecure'] = 'ssl';
|
||||||
|
|
||||||
|
$faker = Factory::create();
|
||||||
|
$spoolRun = new SpoolRun();
|
||||||
|
$spoolRun->setData(
|
||||||
|
$appMsgUid,
|
||||||
|
$faker->title,
|
||||||
|
$faker->companyEmail,
|
||||||
|
$faker->freeEmail,
|
||||||
|
$faker->text(),
|
||||||
|
$faker->dateTime()->format('Y-m-d H:i:s'),
|
||||||
|
$faker->companyEmail,
|
||||||
|
$faker->freeEmail
|
||||||
|
);
|
||||||
|
$spoolRun->setConfig($config);
|
||||||
|
|
||||||
|
$expected = $spoolRun->sendMail();
|
||||||
|
|
||||||
|
$this->assertTrue($expected);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This test uses the MAIL option in a simple way.
|
||||||
|
* @test
|
||||||
|
* @covers \SpoolRun::__construct()
|
||||||
|
* @covers \SpoolRun::setData()
|
||||||
|
* @covers \SpoolRun::setConfig()
|
||||||
|
* @covers \SpoolRun::sendMail()
|
||||||
|
* @covers \SpoolRun::handleMail()
|
||||||
|
*/
|
||||||
|
public function it_should_handle_mail_option()
|
||||||
|
{
|
||||||
|
$appMsgUid = G::generateUniqueID();
|
||||||
|
factory(AppMessage::class)->create([
|
||||||
|
'APP_MSG_UID' => $appMsgUid
|
||||||
|
]);
|
||||||
|
|
||||||
|
$emailServer = factory(EmailServerModel::class)->create();
|
||||||
|
|
||||||
|
$config = $emailServer->toArray();
|
||||||
|
|
||||||
|
$faker = Factory::create();
|
||||||
|
$spoolRun = new SpoolRun();
|
||||||
|
$spoolRun->setData(
|
||||||
|
$appMsgUid,
|
||||||
|
$faker->title,
|
||||||
|
$faker->companyEmail,
|
||||||
|
$faker->freeEmail,
|
||||||
|
$faker->text(),
|
||||||
|
$faker->dateTime()->format('Y-m-d H:i:s'),
|
||||||
|
$faker->companyEmail,
|
||||||
|
$faker->freeEmail
|
||||||
|
);
|
||||||
|
$spoolRun->setConfig($config);
|
||||||
|
|
||||||
|
$expected = $spoolRun->sendMail();
|
||||||
|
|
||||||
|
$this->assertTrue($expected);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This test uses the PHPMAILER option in a simple way.
|
||||||
|
* @test
|
||||||
|
* @covers \SpoolRun::__construct()
|
||||||
|
* @covers \SpoolRun::setData()
|
||||||
|
* @covers \SpoolRun::setConfig()
|
||||||
|
* @covers \SpoolRun::sendMail()
|
||||||
|
* @covers \SpoolRun::handleMail()
|
||||||
|
*/
|
||||||
|
public function it_should_handle_php_mailer_option()
|
||||||
|
{
|
||||||
|
$appMsgUid = G::generateUniqueID();
|
||||||
|
factory(AppMessage::class)->create([
|
||||||
|
'APP_MSG_UID' => $appMsgUid
|
||||||
|
]);
|
||||||
|
|
||||||
|
$emailServer = factory(EmailServerModel::class)->states('PHPMAILER')->make();
|
||||||
|
|
||||||
|
$config = $emailServer->toArray();
|
||||||
|
$config['SMTPSecure'] = 'ssl';
|
||||||
|
|
||||||
|
$faker = Factory::create();
|
||||||
|
$spoolRun = new SpoolRun();
|
||||||
|
$spoolRun->setData(
|
||||||
|
$appMsgUid,
|
||||||
|
$faker->title,
|
||||||
|
$faker->companyEmail,
|
||||||
|
$faker->freeEmail,
|
||||||
|
$faker->text(),
|
||||||
|
$faker->dateTime()->format('Y-m-d H:i:s'),
|
||||||
|
$faker->companyEmail,
|
||||||
|
$faker->freeEmail
|
||||||
|
);
|
||||||
|
$spoolRun->setConfig($config);
|
||||||
|
|
||||||
|
$expected = $spoolRun->sendMail();
|
||||||
|
|
||||||
|
$this->assertTrue($expected);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This test uses the OPENMAIL option in a simple way.
|
||||||
|
* @test
|
||||||
|
* @covers \SpoolRun::__construct()
|
||||||
|
* @covers \SpoolRun::setData()
|
||||||
|
* @covers \SpoolRun::setConfig()
|
||||||
|
* @covers \SpoolRun::sendMail()
|
||||||
|
* @covers \SpoolRun::handleMail()
|
||||||
|
*/
|
||||||
|
public function it_should_handle_open_mail_option()
|
||||||
|
{
|
||||||
|
$this->markTestIncomplete("The OPENMAIL depends on the package class but this is not found in the environment.");
|
||||||
|
|
||||||
|
$appMsgUid = G::generateUniqueID();
|
||||||
|
factory(AppMessage::class)->create([
|
||||||
|
'APP_MSG_UID' => $appMsgUid
|
||||||
|
]);
|
||||||
|
|
||||||
|
$emailServer = factory(EmailServerModel::class)->states('OPENMAIL')->make();
|
||||||
|
|
||||||
|
$config = $emailServer->toArray();
|
||||||
|
|
||||||
|
$faker = Factory::create();
|
||||||
|
$spoolRun = new SpoolRun();
|
||||||
|
$spoolRun->setData(
|
||||||
|
$appMsgUid,
|
||||||
|
$faker->title,
|
||||||
|
$faker->companyEmail,
|
||||||
|
$faker->freeEmail,
|
||||||
|
$faker->text(),
|
||||||
|
$faker->dateTime()->format('Y-m-d H:i:s'),
|
||||||
|
$faker->companyEmail,
|
||||||
|
$faker->freeEmail
|
||||||
|
);
|
||||||
|
$spoolRun->setConfig($config);
|
||||||
|
|
||||||
|
$expected = $spoolRun->sendMail();
|
||||||
|
|
||||||
|
$this->assertTrue($expected);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This test ensures that characters that are not utf8 are converted properly,
|
||||||
|
* for subject and body fields.
|
||||||
|
* @test
|
||||||
|
* @covers \SpoolRun::__construct()
|
||||||
|
* @covers \SpoolRun::setData()
|
||||||
|
* @covers \SpoolRun::setConfig()
|
||||||
|
* @covers \SpoolRun::sendMail()
|
||||||
|
* @covers \SpoolRun::handleMail()
|
||||||
|
*/
|
||||||
|
public function it_should_handle_utf8_characters()
|
||||||
|
{
|
||||||
|
$appMsgUid = G::generateUniqueID();
|
||||||
|
factory(AppMessage::class)->create([
|
||||||
|
'APP_MSG_UID' => $appMsgUid
|
||||||
|
]);
|
||||||
|
|
||||||
|
$emailServer = factory(EmailServerModel::class)->states('PHPMAILER')->make();
|
||||||
|
|
||||||
|
$config = $emailServer->toArray();
|
||||||
|
$config['SMTPSecure'] = 'ssl';
|
||||||
|
|
||||||
|
$faker = Factory::create();
|
||||||
|
$subject = "\xf8foo";
|
||||||
|
$body = "\xf8foo\xf8foo";
|
||||||
|
|
||||||
|
$spoolRun = new SpoolRun();
|
||||||
|
$spoolRun->setData(
|
||||||
|
$appMsgUid,
|
||||||
|
$subject,
|
||||||
|
$faker->companyEmail,
|
||||||
|
$faker->freeEmail,
|
||||||
|
$body,
|
||||||
|
$faker->dateTime()->format('Y-m-d H:i:s'),
|
||||||
|
$faker->companyEmail,
|
||||||
|
$faker->freeEmail
|
||||||
|
);
|
||||||
|
$spoolRun->setConfig($config);
|
||||||
|
|
||||||
|
$expected = $spoolRun->sendMail();
|
||||||
|
|
||||||
|
$this->assertTrue($expected);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This test verifies the sending of attachments to the email.
|
||||||
|
* @test
|
||||||
|
* @covers \SpoolRun::__construct()
|
||||||
|
* @covers \SpoolRun::setData()
|
||||||
|
* @covers \SpoolRun::setConfig()
|
||||||
|
* @covers \SpoolRun::sendMail()
|
||||||
|
* @covers \SpoolRun::handleMail()
|
||||||
|
*/
|
||||||
|
public function it_should_handle_attachment_files()
|
||||||
|
{
|
||||||
|
$appMsgUid = G::generateUniqueID();
|
||||||
|
factory(AppMessage::class)->create([
|
||||||
|
'APP_MSG_UID' => $appMsgUid
|
||||||
|
]);
|
||||||
|
|
||||||
|
$emailServer = factory(EmailServerModel::class)->states('PHPMAILER')->make();
|
||||||
|
|
||||||
|
$config = $emailServer->toArray();
|
||||||
|
$config['SMTPSecure'] = 'ssl';
|
||||||
|
|
||||||
|
$faker = Factory::create();
|
||||||
|
|
||||||
|
$file1 = UploadedFile::fake()->image('avatar.jpg', 400, 300);
|
||||||
|
$file2 = UploadedFile::fake()->create('document.pdf', 200);
|
||||||
|
|
||||||
|
$files = [
|
||||||
|
$file1->path(),
|
||||||
|
$file2->path()
|
||||||
|
];
|
||||||
|
|
||||||
|
$spoolRun = new SpoolRun();
|
||||||
|
$spoolRun->setData(
|
||||||
|
$appMsgUid,
|
||||||
|
$faker->title,
|
||||||
|
$faker->companyEmail,
|
||||||
|
$faker->freeEmail,
|
||||||
|
$faker->text(),
|
||||||
|
$faker->dateTime()->format('Y-m-d H:i:s'),
|
||||||
|
$faker->companyEmail,
|
||||||
|
$faker->freeEmail,
|
||||||
|
'',
|
||||||
|
$files
|
||||||
|
);
|
||||||
|
$spoolRun->setConfig($config);
|
||||||
|
|
||||||
|
$expected = $spoolRun->sendMail();
|
||||||
|
|
||||||
|
$this->assertTrue($expected);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This test ensures that the EnvelopeTo field process is working.
|
||||||
|
* @test
|
||||||
|
* @covers \SpoolRun::__construct()
|
||||||
|
* @covers \SpoolRun::setData()
|
||||||
|
* @covers \SpoolRun::runHandleEnvelopeTo()
|
||||||
|
* @covers \SpoolRun::handleEnvelopeTo()
|
||||||
|
* @covers \SpoolRun::setConfig()
|
||||||
|
* @covers \SpoolRun::sendMail()
|
||||||
|
* @covers \SpoolRun::handleMail()
|
||||||
|
*/
|
||||||
|
public function it_should_handle_envelope_to()
|
||||||
|
{
|
||||||
|
$appMsgUid = G::generateUniqueID();
|
||||||
|
factory(AppMessage::class)->create([
|
||||||
|
'APP_MSG_UID' => $appMsgUid
|
||||||
|
]);
|
||||||
|
|
||||||
|
$emailServer = factory(EmailServerModel::class)->states('PHPMAILER')->make();
|
||||||
|
|
||||||
|
$config = $emailServer->toArray();
|
||||||
|
$config['SMTPSecure'] = 'ssl';
|
||||||
|
|
||||||
|
$faker = Factory::create();
|
||||||
|
$spoolRun = new SpoolRun();
|
||||||
|
$spoolRun->setData(
|
||||||
|
$appMsgUid,
|
||||||
|
$faker->title,
|
||||||
|
$faker->name . "<" . $faker->companyEmail . "," . $faker->companyEmail . ">",
|
||||||
|
$faker->name . "<" . $faker->freeEmail . "," . $faker->freeEmail . ">",
|
||||||
|
$faker->text(),
|
||||||
|
$faker->dateTime()->format('Y-m-d H:i:s'),
|
||||||
|
$faker->name . "<" . $faker->companyEmail . "," . $faker->companyEmail . ">",
|
||||||
|
$faker->name . "<" . $faker->freeEmail . "," . $faker->freeEmail . ">"
|
||||||
|
);
|
||||||
|
$spoolRun->runHandleEnvelopeTo();
|
||||||
|
$spoolRun->setConfig($config);
|
||||||
|
|
||||||
|
$expected = $spoolRun->sendMail();
|
||||||
|
|
||||||
|
$this->assertTrue($expected);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ use ProcessMaker\Model\EmailServerModel;
|
|||||||
use ProcessMaker\Model\Process;
|
use ProcessMaker\Model\Process;
|
||||||
use ProcessMaker\Model\Task;
|
use ProcessMaker\Model\Task;
|
||||||
use ProcessMaker\Model\User;
|
use ProcessMaker\Model\User;
|
||||||
|
use ProcessMaker\Util\WsMessageResponse;
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
|
|
||||||
class WsBaseTest extends TestCase
|
class WsBaseTest extends TestCase
|
||||||
@@ -484,48 +485,48 @@ class WsBaseTest extends TestCase
|
|||||||
|
|
||||||
//Create the application factory
|
//Create the application factory
|
||||||
$application1 = factory(Application::class)->create(
|
$application1 = factory(Application::class)->create(
|
||||||
[
|
[
|
||||||
'APP_STATUS' => 'TO_DO',
|
'APP_STATUS' => 'TO_DO',
|
||||||
'APP_TITLE' => 'Title1'
|
'APP_TITLE' => 'Title1'
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
$application2 = factory(Application::class)->create(
|
$application2 = factory(Application::class)->create(
|
||||||
[
|
[
|
||||||
'APP_STATUS' => 'DRAFT',
|
'APP_STATUS' => 'DRAFT',
|
||||||
'APP_TITLE' => 'Title2'
|
'APP_TITLE' => 'Title2'
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
|
|
||||||
//Create the delegation factory
|
//Create the delegation factory
|
||||||
$delegation1 = factory(Delegation::class)->create(
|
$delegation1 = factory(Delegation::class)->create(
|
||||||
[
|
[
|
||||||
'USR_UID' => $user->USR_UID,
|
'USR_UID' => $user->USR_UID,
|
||||||
'DEL_THREAD_STATUS' => 'OPEN',
|
'DEL_THREAD_STATUS' => 'OPEN',
|
||||||
'DEL_FINISH_DATE' => null,
|
'DEL_FINISH_DATE' => null,
|
||||||
'APP_NUMBER' => $application1->APP_NUMBER
|
'APP_NUMBER' => $application1->APP_NUMBER
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
$delegation2 = factory(Delegation::class)->create(
|
$delegation2 = factory(Delegation::class)->create(
|
||||||
[
|
[
|
||||||
'USR_UID' => $user->USR_UID,
|
'USR_UID' => $user->USR_UID,
|
||||||
'DEL_THREAD_STATUS' => 'OPEN',
|
'DEL_THREAD_STATUS' => 'OPEN',
|
||||||
'DEL_FINISH_DATE' => null,
|
'DEL_FINISH_DATE' => null,
|
||||||
'APP_NUMBER' => $application2->APP_NUMBER
|
'APP_NUMBER' => $application2->APP_NUMBER
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
|
|
||||||
//Create app thread factory
|
//Create app thread factory
|
||||||
factory(AppThread::class)->create(
|
factory(AppThread::class)->create(
|
||||||
[
|
[
|
||||||
'APP_THREAD_STATUS' => 'OPEN',
|
'APP_THREAD_STATUS' => 'OPEN',
|
||||||
'APP_UID' => $delegation1->APP_UID
|
'APP_UID' => $delegation1->APP_UID
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
factory(AppThread::class)->create(
|
factory(AppThread::class)->create(
|
||||||
[
|
[
|
||||||
'APP_THREAD_STATUS' => 'OPEN',
|
'APP_THREAD_STATUS' => 'OPEN',
|
||||||
'APP_UID' => $delegation2->APP_UID
|
'APP_UID' => $delegation2->APP_UID
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
|
|
||||||
//Instance the object
|
//Instance the object
|
||||||
@@ -559,48 +560,48 @@ class WsBaseTest extends TestCase
|
|||||||
|
|
||||||
//Create the application factory
|
//Create the application factory
|
||||||
$application1 = factory(Application::class)->create(
|
$application1 = factory(Application::class)->create(
|
||||||
[
|
[
|
||||||
'APP_STATUS' => 'TO_DO',
|
'APP_STATUS' => 'TO_DO',
|
||||||
'APP_TITLE' => 'Title1'
|
'APP_TITLE' => 'Title1'
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
$application2 = factory(Application::class)->create(
|
$application2 = factory(Application::class)->create(
|
||||||
[
|
[
|
||||||
'APP_STATUS' => 'DRAFT',
|
'APP_STATUS' => 'DRAFT',
|
||||||
'APP_TITLE' => 'Title2'
|
'APP_TITLE' => 'Title2'
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
|
|
||||||
//Create the delegation factory
|
//Create the delegation factory
|
||||||
$delegation1 = factory(Delegation::class)->create(
|
$delegation1 = factory(Delegation::class)->create(
|
||||||
[
|
[
|
||||||
'USR_UID' => $user1->USR_UID,
|
'USR_UID' => $user1->USR_UID,
|
||||||
'DEL_THREAD_STATUS' => 'OPEN',
|
'DEL_THREAD_STATUS' => 'OPEN',
|
||||||
'DEL_FINISH_DATE' => null,
|
'DEL_FINISH_DATE' => null,
|
||||||
'APP_NUMBER' => $application1->APP_NUMBER
|
'APP_NUMBER' => $application1->APP_NUMBER
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
$delegation2 = factory(Delegation::class)->create(
|
$delegation2 = factory(Delegation::class)->create(
|
||||||
[
|
[
|
||||||
'USR_UID' => $user1->USR_UID,
|
'USR_UID' => $user1->USR_UID,
|
||||||
'DEL_THREAD_STATUS' => 'OPEN',
|
'DEL_THREAD_STATUS' => 'OPEN',
|
||||||
'DEL_FINISH_DATE' => null,
|
'DEL_FINISH_DATE' => null,
|
||||||
'APP_NUMBER' => $application2->APP_NUMBER
|
'APP_NUMBER' => $application2->APP_NUMBER
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
|
|
||||||
//Create app thread factory
|
//Create app thread factory
|
||||||
factory(AppThread::class)->create(
|
factory(AppThread::class)->create(
|
||||||
[
|
[
|
||||||
'APP_THREAD_STATUS' => 'OPEN',
|
'APP_THREAD_STATUS' => 'OPEN',
|
||||||
'APP_UID' => $delegation1->APP_UID
|
'APP_UID' => $delegation1->APP_UID
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
factory(AppThread::class)->create(
|
factory(AppThread::class)->create(
|
||||||
[
|
[
|
||||||
'APP_THREAD_STATUS' => 'OPEN',
|
'APP_THREAD_STATUS' => 'OPEN',
|
||||||
'APP_UID' => $delegation2->APP_UID
|
'APP_UID' => $delegation2->APP_UID
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
|
|
||||||
//Instance the object
|
//Instance the object
|
||||||
@@ -612,4 +613,36 @@ class WsBaseTest extends TestCase
|
|||||||
//Assert the result his empty
|
//Assert the result his empty
|
||||||
$this->assertEmpty($res);
|
$this->assertEmpty($res);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This test ensures obtaining the email configuration with all fields.
|
||||||
|
* @test
|
||||||
|
* @covers \WsBase::sendMessage()
|
||||||
|
*/
|
||||||
|
public function it_should_get_email_configuration()
|
||||||
|
{
|
||||||
|
$faker = Factory::create();
|
||||||
|
|
||||||
|
//data
|
||||||
|
$case = $this->createNewCase();
|
||||||
|
$template = $this->createTemplate($case->process->PRO_UID, $case->user->USR_UID);
|
||||||
|
|
||||||
|
//parameters
|
||||||
|
$appUid = $case->applicationUid;
|
||||||
|
$from = $faker->email;
|
||||||
|
$to = "";
|
||||||
|
$cc = "";
|
||||||
|
$bcc = "";
|
||||||
|
$subject = $faker->title;
|
||||||
|
$templateName = basename($template->PRF_PATH);
|
||||||
|
$appFields = [
|
||||||
|
'var1' => $faker->numberBetween(1, 100)
|
||||||
|
];
|
||||||
|
|
||||||
|
$wsBase = new WsBase();
|
||||||
|
$result = $wsBase->sendMessage($appUid, $from, $to, $cc, $bcc, $subject, $templateName, $appFields);
|
||||||
|
|
||||||
|
//assertions
|
||||||
|
$this->assertInstanceOf(WsMessageResponse::class, $result);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,208 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Tests\unit\workflow\engine\methods\emailServer;
|
||||||
|
|
||||||
|
use Faker\Factory;
|
||||||
|
use ProcessMaker\Model\EmailServerModel;
|
||||||
|
use ProcessMaker\Model\User;
|
||||||
|
use RBAC;
|
||||||
|
use Tests\TestCase;
|
||||||
|
|
||||||
|
class EmailServerAjaxTest extends TestCase
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* This set initial parameters for each test.
|
||||||
|
*/
|
||||||
|
public function setUp()
|
||||||
|
{
|
||||||
|
parent::setUp();
|
||||||
|
$this->settingUserLogged();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This starts a valid user in session with the appropriate permissions.
|
||||||
|
* @global object $RBAC
|
||||||
|
*/
|
||||||
|
private function settingUserLogged()
|
||||||
|
{
|
||||||
|
global $RBAC;
|
||||||
|
|
||||||
|
$user = User::where('USR_ID', '=', 1)
|
||||||
|
->get()
|
||||||
|
->first();
|
||||||
|
|
||||||
|
$_SESSION['USER_LOGGED'] = $user['USR_UID'];
|
||||||
|
|
||||||
|
$RBAC = RBAC::getSingleton(PATH_DATA, session_id());
|
||||||
|
$RBAC->initRBAC();
|
||||||
|
$RBAC->loadUserRolePermission('PROCESSMAKER', $_SESSION['USER_LOGGED']);
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* This allows multiple calls to the require_once statement, use the original
|
||||||
|
* content by creating several documents in the temporary folder.
|
||||||
|
* @global object $RBAC
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
private function requireOnceForEmailServerAjax(): string
|
||||||
|
{
|
||||||
|
$fileName = PATH_METHODS . 'emailServer/emailServerAjax.php';
|
||||||
|
$tempFile = tempnam(sys_get_temp_dir(), basename($fileName, '.php'));
|
||||||
|
if ($tempFile !== false) {
|
||||||
|
file_put_contents($tempFile, file_get_contents($fileName));
|
||||||
|
|
||||||
|
global $RBAC;
|
||||||
|
$RBAC->authorizedActions[basename($tempFile)] = [
|
||||||
|
'INS' => ['PM_SETUP'],
|
||||||
|
'UPD' => ['PM_SETUP'],
|
||||||
|
'DEL' => ['PM_SETUP'],
|
||||||
|
'LST' => ['PM_SETUP'],
|
||||||
|
'TEST' => ['PM_SETUP'],
|
||||||
|
'createAuthUrl' => ['PM_SETUP']
|
||||||
|
];
|
||||||
|
ob_start();
|
||||||
|
require_once $tempFile;
|
||||||
|
return ob_get_clean();
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This tests the createAuthUrl option at the endpoint emailServerAjax.php.
|
||||||
|
* @test
|
||||||
|
*/
|
||||||
|
public function it_should_verify_the_option_create_auth_url()
|
||||||
|
{
|
||||||
|
$faker = Factory::create();
|
||||||
|
$post = [
|
||||||
|
'option' => 'createAuthUrl',
|
||||||
|
'clientID' => $faker->regexify('[0-9]{12}\-[a-zA-Z]{20}'),
|
||||||
|
'clientSecret' => $faker->regexify('[a-zA-Z]{10}'),
|
||||||
|
'emailEngine' => 'GMAILAPI',
|
||||||
|
'fromAccount' => $faker->email,
|
||||||
|
'senderEmail' => $faker->email,
|
||||||
|
'senderName' => $faker->name,
|
||||||
|
'sendTestMail' => 1,
|
||||||
|
'mailTo' => $faker->email,
|
||||||
|
'setDefaultConfiguration' => 1
|
||||||
|
];
|
||||||
|
$_POST = array_merge($_POST, $post);
|
||||||
|
|
||||||
|
$content = $this->requireOnceForEmailServerAjax();
|
||||||
|
$data = json_decode($content, JSON_OBJECT_AS_ARRAY);
|
||||||
|
|
||||||
|
$this->assertContains(200, $data);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This tests the INS option at the endpoint emailServerAjax.php.
|
||||||
|
* @test
|
||||||
|
*/
|
||||||
|
public function it_should_verify_the_option_ins()
|
||||||
|
{
|
||||||
|
$faker = Factory::create();
|
||||||
|
$post = [
|
||||||
|
'option' => 'INS',
|
||||||
|
'cboEmailEngine' => 'PHPMAILER',
|
||||||
|
'server' => 'smtp.gmail.com',
|
||||||
|
'port' => '465',
|
||||||
|
'incomingServer' => '',
|
||||||
|
'incomingPort' => '',
|
||||||
|
'reqAuthentication' => 1,
|
||||||
|
'accountFrom' => $faker->email,
|
||||||
|
'password' => $faker->password,
|
||||||
|
'fromMail' => $faker->email,
|
||||||
|
'fromName' => $faker->name,
|
||||||
|
'smtpSecure' => 'ssl',
|
||||||
|
'sendTestMail' => 1,
|
||||||
|
'mailTo' => $faker->email,
|
||||||
|
'emailServerDefault' => 1,
|
||||||
|
];
|
||||||
|
$_POST = array_merge($_POST, $post);
|
||||||
|
|
||||||
|
$content = $this->requireOnceForEmailServerAjax();
|
||||||
|
$data = json_decode($content, JSON_OBJECT_AS_ARRAY);
|
||||||
|
|
||||||
|
$this->assertContains("OK", $data);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This tests the UPD option at the endpoint emailServerAjax.php.
|
||||||
|
* @test
|
||||||
|
*/
|
||||||
|
public function it_should_verify_the_option_upd()
|
||||||
|
{
|
||||||
|
$faker = Factory::create();
|
||||||
|
|
||||||
|
$emailServer = factory(EmailServerModel::class)->create([
|
||||||
|
'MESS_ENGINE' => 'PHPMAILER',
|
||||||
|
]);
|
||||||
|
|
||||||
|
$post = [
|
||||||
|
'option' => 'UPD',
|
||||||
|
'emailServerUid' => $emailServer->MESS_UID,
|
||||||
|
'cboEmailEngine' => 'PHPMAILER',
|
||||||
|
'server' => 'smtp.gmail.com',
|
||||||
|
'port' => '465',
|
||||||
|
'incomingServer' => '',
|
||||||
|
'incomingPort' => '',
|
||||||
|
'reqAuthentication' => 1,
|
||||||
|
'accountFrom' => $faker->email,
|
||||||
|
'password' => $faker->password,
|
||||||
|
'fromMail' => $faker->email,
|
||||||
|
'fromName' => $faker->name,
|
||||||
|
'smtpSecure' => 'ssl',
|
||||||
|
'sendTestMail' => 1,
|
||||||
|
'mailTo' => $faker->email,
|
||||||
|
'emailServerDefault' => 1,
|
||||||
|
];
|
||||||
|
$_POST = array_merge($_POST, $post);
|
||||||
|
|
||||||
|
$content = $this->requireOnceForEmailServerAjax();
|
||||||
|
$data = json_decode($content, JSON_OBJECT_AS_ARRAY);
|
||||||
|
|
||||||
|
$this->assertContains("OK", $data);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This tests the DEL option at the endpoint emailServerAjax.php.
|
||||||
|
* @test
|
||||||
|
*/
|
||||||
|
public function it_should_verify_the_option_del()
|
||||||
|
{
|
||||||
|
$emailServer = factory(EmailServerModel::class)->create([
|
||||||
|
'MESS_ENGINE' => 'PHPMAILER',
|
||||||
|
]);
|
||||||
|
|
||||||
|
$post = [
|
||||||
|
'option' => 'DEL',
|
||||||
|
'emailServerUid' => $emailServer->MESS_UID
|
||||||
|
];
|
||||||
|
$_POST = array_merge($_POST, $post);
|
||||||
|
|
||||||
|
$content = $this->requireOnceForEmailServerAjax();
|
||||||
|
$data = json_decode($content, JSON_OBJECT_AS_ARRAY);
|
||||||
|
|
||||||
|
$this->assertContains("OK", $data);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This tests the LST option at the endpoint emailServerAjax.php.
|
||||||
|
* @test
|
||||||
|
*/
|
||||||
|
public function it_should_verify_the_option_lst()
|
||||||
|
{
|
||||||
|
$post = [
|
||||||
|
'option' => 'LST',
|
||||||
|
'pageSize' => 25,
|
||||||
|
'search' => ''
|
||||||
|
];
|
||||||
|
$_POST = array_merge($_POST, $post);
|
||||||
|
|
||||||
|
$content = $this->requireOnceForEmailServerAjax();
|
||||||
|
$data = json_decode($content, JSON_OBJECT_AS_ARRAY);
|
||||||
|
|
||||||
|
$this->assertContains("OK", $data);
|
||||||
|
$this->assertTrue(isset($data["resultRoot"]));
|
||||||
|
$this->assertTrue(is_array($data["resultRoot"]));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,47 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Tests\unit\workflow\engine\methods\emailServer;
|
||||||
|
|
||||||
|
use Faker\Factory;
|
||||||
|
use Google_Auth_Exception;
|
||||||
|
use Illuminate\Support\Facades\Cache;
|
||||||
|
use ProcessMaker\GmailOAuth\GmailOAuth;
|
||||||
|
use ProcessMaker\Model\User;
|
||||||
|
use RBAC;
|
||||||
|
use Tests\TestCase;
|
||||||
|
|
||||||
|
class EmailServerGmailOAuthTest extends TestCase
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* This test expects an error message stored in the cache.
|
||||||
|
* The Google client requires valid codes to obtain the clientId from a request,
|
||||||
|
* otherwise it will throw an exception.
|
||||||
|
* @test
|
||||||
|
*/
|
||||||
|
public function it_should_try_to_authenticate_on_google_oauth_with_a_fake_code()
|
||||||
|
{
|
||||||
|
$faker = Factory::create();
|
||||||
|
global $RBAC;
|
||||||
|
|
||||||
|
$user = User::where('USR_ID', '=', 1)
|
||||||
|
->get()
|
||||||
|
->first();
|
||||||
|
|
||||||
|
$_SESSION['USER_LOGGED'] = $user['USR_UID'];
|
||||||
|
$_POST['USR_UID'] = $user['USR_UID'];
|
||||||
|
|
||||||
|
$RBAC = RBAC::getSingleton(PATH_DATA, session_id());
|
||||||
|
$RBAC->initRBAC();
|
||||||
|
$RBAC->loadUserRolePermission('PROCESSMAKER', $_SESSION['USER_LOGGED']);
|
||||||
|
|
||||||
|
$_SESSION['gmailOAuth'] = new GmailOAuth();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This gets a fake code, according to the nomenclature.
|
||||||
|
*/
|
||||||
|
$_GET['code'] = $faker->regexify("/[1-9]\/[a-zA-Z]{25}-[a-zA-Z]{16}_[a-zA-Z]{19}-[a-zA-Z]{24}/");
|
||||||
|
|
||||||
|
require_once PATH_METHODS . 'emailServer/emailServerGmailOAuth.php';
|
||||||
|
$this->assertTrue(Cache::has('errorMessageIfNotAuthenticate'));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Tests\unit\workflow\engine\methods\emailServer;
|
||||||
|
|
||||||
|
use ProcessMaker\Model\User;
|
||||||
|
use RBAC;
|
||||||
|
use Tests\TestCase;
|
||||||
|
|
||||||
|
class EmailServerTest extends TestCase
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* This test ensures that the script output generates the javascript variable
|
||||||
|
* EMAILSERVER_LICENSED.
|
||||||
|
* @test
|
||||||
|
*/
|
||||||
|
public function it_should_verify_the_script_output_contains_javascript_variable()
|
||||||
|
{
|
||||||
|
global $RBAC;
|
||||||
|
|
||||||
|
$user = User::where('USR_ID', '=', 1)
|
||||||
|
->get()
|
||||||
|
->first();
|
||||||
|
|
||||||
|
$_SESSION['USER_LOGGED'] = $user['USR_UID'];
|
||||||
|
$_POST['USR_UID'] = $user['USR_UID'];
|
||||||
|
|
||||||
|
$RBAC = RBAC::getSingleton(PATH_DATA, session_id());
|
||||||
|
$RBAC->initRBAC();
|
||||||
|
$RBAC->loadUserRolePermission('PROCESSMAKER', $_SESSION['USER_LOGGED']);
|
||||||
|
|
||||||
|
ob_start();
|
||||||
|
require_once PATH_METHODS . 'emailServer/emailServer.php';
|
||||||
|
$content = ob_get_clean();
|
||||||
|
|
||||||
|
$this->assertContains("EMAILSERVER_LICENSED", $content);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,253 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Tests\unit\workflow\engine\src\ProcessMaker\BusinessModel;
|
||||||
|
|
||||||
|
use Exception;
|
||||||
|
use Faker\Factory;
|
||||||
|
use G;
|
||||||
|
use ProcessMaker\BusinessModel\EmailServer;
|
||||||
|
use ProcessMaker\Model\EmailServerModel;
|
||||||
|
use Tests\TestCase;
|
||||||
|
|
||||||
|
class EmailServerTest extends TestCase
|
||||||
|
{
|
||||||
|
private $emailServer;
|
||||||
|
private $faker;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* set up function.
|
||||||
|
*/
|
||||||
|
public function setUp()
|
||||||
|
{
|
||||||
|
parent::setUp();
|
||||||
|
$this->emailServer = new EmailServer();
|
||||||
|
$this->faker = Factory::create();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get structure for registry the EMAIL_SERVER.
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
private function getDataForEmailServerRegistry(): array
|
||||||
|
{
|
||||||
|
$faker = $this->faker;
|
||||||
|
return [
|
||||||
|
'MESS_ENGINE' => 'PHPMAILER',
|
||||||
|
'MESS_SERVER' => 'smtp.' . $faker->domainName,
|
||||||
|
'MESS_PORT' => $faker->numberBetween(400, 500),
|
||||||
|
'MESS_INCOMING_SERVER' => '',
|
||||||
|
'MESS_INCOMING_PORT' => $faker->numberBetween(400, 500),
|
||||||
|
'MESS_RAUTH' => 1,
|
||||||
|
'MESS_ACCOUNT' => $faker->email,
|
||||||
|
'MESS_PASSWORD' => $faker->password,
|
||||||
|
'MESS_FROM_MAIL' => $faker->email,
|
||||||
|
'MESS_FROM_NAME' => $faker->name,
|
||||||
|
'SMTPSECURE' => 'ssl',
|
||||||
|
'MESS_TRY_SEND_INMEDIATLY' => 1,
|
||||||
|
'MAIL_TO' => $faker->email,
|
||||||
|
'MESS_DEFAULT' => 1,
|
||||||
|
'OAUTH_CLIENT_ID' => '',
|
||||||
|
'OAUTH_CLIENT_SECRET' => '',
|
||||||
|
'OAUTH_REFRESH_TOKEN' => '',
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This creates a record in the EMAIL_SERVER table.
|
||||||
|
* @test
|
||||||
|
* @covers \ProcessMaker\BusinessModel\EmailServer::create()
|
||||||
|
*/
|
||||||
|
public function it_should_create()
|
||||||
|
{
|
||||||
|
$faker = $this->faker;
|
||||||
|
$expected = $this->getDataForEmailServerRegistry();
|
||||||
|
$this->emailServer->setContextLog([
|
||||||
|
'workspace' => 'workflow'
|
||||||
|
]);
|
||||||
|
$actual = $this->emailServer->create($expected);
|
||||||
|
|
||||||
|
$this->assertTrue(isset($actual['MESS_UID']));
|
||||||
|
$this->assertTrue(is_string($actual['MESS_UID']));
|
||||||
|
$this->assertEquals($expected['MESS_ENGINE'], $actual['MESS_ENGINE']);
|
||||||
|
$this->assertEquals($expected['MESS_ACCOUNT'], $actual['MESS_ACCOUNT']);
|
||||||
|
|
||||||
|
$expected['MESS_PASSWORD'] = G::encrypt('hash:' . $faker->password, 'EMAILENCRYPT');
|
||||||
|
$actual = $this->emailServer->create($expected);
|
||||||
|
|
||||||
|
$expected['MESS_PASSWORD'] = G::encrypt('hash:' . $faker->password . 'hash:', 'EMAILENCRYPT');
|
||||||
|
$actual = $this->emailServer->create($expected);
|
||||||
|
|
||||||
|
$this->expectException(Exception::class);
|
||||||
|
$this->emailServer->create([]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This updates a record in the EMAIL_SERVER table.
|
||||||
|
* @test
|
||||||
|
* @covers \ProcessMaker\BusinessModel\EmailServer::update()
|
||||||
|
*/
|
||||||
|
public function it_should_update()
|
||||||
|
{
|
||||||
|
$faker = $this->faker;
|
||||||
|
$emailServer = factory(EmailServerModel::class)->create($this->getDataForEmailServerRegistry());
|
||||||
|
$data = $emailServer->toArray();
|
||||||
|
|
||||||
|
$this->emailServer->setContextLog([
|
||||||
|
'workspace' => 'workflow'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$expected = [
|
||||||
|
'MESS_ENGINE' => 'PHPMAILER',
|
||||||
|
'MESS_SERVER' => 'smtp.' . $faker->domainName,
|
||||||
|
'MESS_PORT' => $faker->numberBetween(400, 500),
|
||||||
|
'MESS_INCOMING_SERVER' => '',
|
||||||
|
'MESS_INCOMING_PORT' => $faker->numberBetween(400, 500),
|
||||||
|
'MESS_RAUTH' => 1,
|
||||||
|
'MESS_ACCOUNT' => $faker->email,
|
||||||
|
'MESS_PASSWORD' => $faker->password,
|
||||||
|
'MESS_FROM_MAIL' => $faker->email,
|
||||||
|
'MESS_FROM_NAME' => $faker->name,
|
||||||
|
'SMTPSECURE' => 'ssl',
|
||||||
|
'MESS_TRY_SEND_INMEDIATLY' => 1,
|
||||||
|
'MAIL_TO' => $faker->email,
|
||||||
|
'MESS_DEFAULT' => 1,
|
||||||
|
];
|
||||||
|
$actual = $this->emailServer->update($data['MESS_UID'], $expected);
|
||||||
|
|
||||||
|
$this->assertEquals($expected['MESS_ENGINE'], $actual['MESS_ENGINE']);
|
||||||
|
$this->assertEquals($expected['MESS_ACCOUNT'], $actual['MESS_ACCOUNT']);
|
||||||
|
|
||||||
|
$expected['MESS_PASSWORD'] = G::encrypt('hash:' . $faker->password, 'EMAILENCRYPT');
|
||||||
|
$actual = $this->emailServer->update($data['MESS_UID'], $expected);
|
||||||
|
|
||||||
|
$expected['MESS_PASSWORD'] = G::encrypt('hash:' . $faker->password . 'hash:', 'EMAILENCRYPT');
|
||||||
|
$actual = $this->emailServer->update($data['MESS_UID'], $expected);
|
||||||
|
|
||||||
|
$this->emailServer->setFormatFieldNameInUppercase(false);
|
||||||
|
$this->expectException(Exception::class);
|
||||||
|
$actual = $this->emailServer->update($data['MESS_UID'], $expected);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get data of a from a record EMAIL_SERVER.
|
||||||
|
* @test
|
||||||
|
* @covers \ProcessMaker\BusinessModel\EmailServer::getEmailServerDataFromRecord()
|
||||||
|
*/
|
||||||
|
public function it_should_get_email_server_data_from_record()
|
||||||
|
{
|
||||||
|
$faker = $this->faker;
|
||||||
|
$this->emailServer->setContextLog([
|
||||||
|
'workspace' => 'workflow'
|
||||||
|
]);
|
||||||
|
$expected = $this->getDataForEmailServerRegistry();
|
||||||
|
$expected['MESS_UID'] = $faker->regexify("/[a-zA-Z]{32}/");
|
||||||
|
|
||||||
|
$actual = $this->emailServer->getEmailServerDataFromRecord($expected);
|
||||||
|
|
||||||
|
$this->assertEquals($expected['MESS_ENGINE'], $actual['MESS_ENGINE']);
|
||||||
|
$this->assertEquals($expected['MESS_ACCOUNT'], $actual['MESS_ACCOUNT']);
|
||||||
|
|
||||||
|
unset($expected['MESS_ENGINE']);
|
||||||
|
$this->expectException(Exception::class);
|
||||||
|
$actual = $this->emailServer->getEmailServerDataFromRecord($expected);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This test obtains the configuration record that is marked by default.
|
||||||
|
* @test
|
||||||
|
* @covers \ProcessMaker\BusinessModel\EmailServer::getEmailServerDefault()
|
||||||
|
*/
|
||||||
|
public function it_should_get_email_server_default()
|
||||||
|
{
|
||||||
|
$this->emailServer->setContextLog([
|
||||||
|
'workspace' => 'workflow'
|
||||||
|
]);
|
||||||
|
$actual = $this->emailServer->getEmailServerDefault();
|
||||||
|
$this->assertNotEmpty($actual);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This test gets the records from the "EMAIL_SERVER" table.
|
||||||
|
* @test
|
||||||
|
* @covers \ProcessMaker\BusinessModel\EmailServer::getEmailServers()
|
||||||
|
*/
|
||||||
|
public function it_should_get_email_servers()
|
||||||
|
{
|
||||||
|
$this->emailServer->setContextLog([
|
||||||
|
'workspace' => 'workflow'
|
||||||
|
]);
|
||||||
|
$actual = $this->emailServer->getEmailServers();
|
||||||
|
$this->assertNotEmpty($actual);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This test gets the records from the "EMAIL_SERVER" table with parameters.
|
||||||
|
* @test
|
||||||
|
* @covers \ProcessMaker\BusinessModel\EmailServer::getEmailServers()
|
||||||
|
*/
|
||||||
|
public function it_should_get_email_servers_with_parameters()
|
||||||
|
{
|
||||||
|
$this->emailServer->setContextLog([
|
||||||
|
'workspace' => 'workflow'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$actual = $this->emailServer->getEmailServers(null, null, null, null, 0);
|
||||||
|
$this->assertEmpty($actual);
|
||||||
|
|
||||||
|
$faker = $this->faker;
|
||||||
|
$actual = $this->emailServer->getEmailServers(['filter' => $faker->text]);
|
||||||
|
$this->assertNotEmpty($actual);
|
||||||
|
|
||||||
|
$actual = $this->emailServer->getEmailServers(null, $faker->text);
|
||||||
|
$this->assertNotEmpty($actual);
|
||||||
|
|
||||||
|
$actual = $this->emailServer->getEmailServers(null, "MESS_SERVER");
|
||||||
|
$this->assertNotEmpty($actual);
|
||||||
|
|
||||||
|
$actual = $this->emailServer->getEmailServers(null, "MESS_SERVER", "DESC");
|
||||||
|
$this->assertNotEmpty($actual);
|
||||||
|
|
||||||
|
$actual = $this->emailServer->getEmailServers(null, "MESS_SERVER", "DESC", 0);
|
||||||
|
$this->assertNotEmpty($actual);
|
||||||
|
|
||||||
|
$actual = $this->emailServer->getEmailServers(null, "MESS_SERVER", "DESC", 0, 10);
|
||||||
|
$this->assertNotEmpty($actual);
|
||||||
|
|
||||||
|
$this->expectException(Exception::class);
|
||||||
|
$actual = $this->emailServer->getEmailServers(null, "MESS_SERVER", "DESC", -1, -10);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This test gets a record of the EMAIL_SERVER table.
|
||||||
|
* @test
|
||||||
|
* @covers \ProcessMaker\BusinessModel\EmailServer::getEmailServer()
|
||||||
|
*/
|
||||||
|
public function it_should_get_email_server()
|
||||||
|
{
|
||||||
|
$this->emailServer->setContextLog([
|
||||||
|
'workspace' => 'workflow'
|
||||||
|
]);
|
||||||
|
$emailServer = factory(EmailServerModel::class)->create($this->getDataForEmailServerRegistry());
|
||||||
|
$emailServerUid = $emailServer->MESS_UID;
|
||||||
|
$actual = $this->emailServer->getEmailServer($emailServerUid);
|
||||||
|
$this->assertNotEmpty($actual);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This test should throw an exception when a record is not found.
|
||||||
|
* @test
|
||||||
|
* @covers \ProcessMaker\BusinessModel\EmailServer::getEmailServer()
|
||||||
|
*/
|
||||||
|
public function it_should_get_email_server_when_not_exist_registry()
|
||||||
|
{
|
||||||
|
$faker = $this->faker;
|
||||||
|
$this->emailServer->setContextLog([
|
||||||
|
'workspace' => 'workflow'
|
||||||
|
]);
|
||||||
|
$emailServer = factory(EmailServerModel::class)->create($this->getDataForEmailServerRegistry());
|
||||||
|
$emailServerUid = $faker->regexify("/[a-zA-Z]{32}/");
|
||||||
|
|
||||||
|
$this->expectException(Exception::class);
|
||||||
|
$actual = $this->emailServer->getEmailServer($emailServerUid);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -5,6 +5,7 @@ namespace Tests\unit\workflow\engine\src\ProcessMaker\Core;
|
|||||||
use G;
|
use G;
|
||||||
use Faker\Factory;
|
use Faker\Factory;
|
||||||
use ProcessMaker\Core\System;
|
use ProcessMaker\Core\System;
|
||||||
|
use ProcessMaker\Model\EmailServerModel;
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
|
|
||||||
class SystemTest extends TestCase
|
class SystemTest extends TestCase
|
||||||
@@ -19,9 +20,9 @@ class SystemTest extends TestCase
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* It tests the initLaravel method
|
* It tests the initLaravel method.
|
||||||
*
|
|
||||||
* @test
|
* @test
|
||||||
|
* @covers \ProcessMaker\Core\System::initLaravel()
|
||||||
*/
|
*/
|
||||||
public function it_should_init_laravel_configurations()
|
public function it_should_init_laravel_configurations()
|
||||||
{
|
{
|
||||||
@@ -37,6 +38,32 @@ class SystemTest extends TestCase
|
|||||||
$this->assertEquals(DB_PASS, config('database.connections.workflow.password'));
|
$this->assertEquals(DB_PASS, config('database.connections.workflow.password'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This gets the settings for sending email.
|
||||||
|
* @test
|
||||||
|
* @covers \ProcessMaker\Core\System::getEmailConfiguration()
|
||||||
|
*/
|
||||||
|
public function it_should_get_email_configuration()
|
||||||
|
{
|
||||||
|
$system = new System();
|
||||||
|
|
||||||
|
//default values
|
||||||
|
EmailServerModel::truncate();
|
||||||
|
$actual = $system->getEmailConfiguration();
|
||||||
|
$this->assertEmpty($actual);
|
||||||
|
|
||||||
|
//new instance
|
||||||
|
$emailServer = factory(EmailServerModel::class)->create([
|
||||||
|
'MESS_DEFAULT' => 1
|
||||||
|
]);
|
||||||
|
$actual = $system->getEmailConfiguration();
|
||||||
|
$this->assertNotEmpty($actual);
|
||||||
|
$this->assertArrayHasKey('MESS_ENGINE', $actual);
|
||||||
|
$this->assertArrayHasKey('OAUTH_CLIENT_ID', $actual);
|
||||||
|
$this->assertArrayHasKey('OAUTH_CLIENT_SECRET', $actual);
|
||||||
|
$this->assertArrayHasKey('OAUTH_REFRESH_TOKEN', $actual);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* It should return default system configuration parameters.
|
* It should return default system configuration parameters.
|
||||||
* @test
|
* @test
|
||||||
|
|||||||
@@ -0,0 +1,333 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Tests\unit\workflow\engine\src\ProcessMaker\GmailOAuth;
|
||||||
|
|
||||||
|
use Exception;
|
||||||
|
use Faker\Factory;
|
||||||
|
use Google_Client;
|
||||||
|
use Google_Service_Gmail_Message;
|
||||||
|
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
||||||
|
use PHPMailerOAuth;
|
||||||
|
use ProcessMaker\GmailOAuth\GmailOAuth;
|
||||||
|
use RBAC;
|
||||||
|
use Tests\TestCase;
|
||||||
|
|
||||||
|
class GmailOAuthTest extends TestCase
|
||||||
|
{
|
||||||
|
|
||||||
|
use DatabaseTransactions;
|
||||||
|
private $faker;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Init properties
|
||||||
|
*/
|
||||||
|
public function setUp()
|
||||||
|
{
|
||||||
|
parent::setUp();
|
||||||
|
$this->faker = Factory::create();
|
||||||
|
|
||||||
|
global $RBAC;
|
||||||
|
$RBAC = RBAC::getSingleton();
|
||||||
|
$RBAC->initRBAC();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This ensures that the properties of the GmailOAuth object have consistency.
|
||||||
|
* @test
|
||||||
|
* @covers \ProcessMaker\GmailOAuth\GmailOAuth::setEmailServerUid()
|
||||||
|
* @covers \ProcessMaker\GmailOAuth\GmailOAuth::setEmailEngine()
|
||||||
|
* @covers \ProcessMaker\GmailOAuth\GmailOAuth::setClientID()
|
||||||
|
* @covers \ProcessMaker\GmailOAuth\GmailOAuth::setClientSecret()
|
||||||
|
* @covers \ProcessMaker\GmailOAuth\GmailOAuth::setRedirectURI()
|
||||||
|
* @covers \ProcessMaker\GmailOAuth\GmailOAuth::setEmailEngine()
|
||||||
|
* @covers \ProcessMaker\GmailOAuth\GmailOAuth::setFromAccount()
|
||||||
|
* @covers \ProcessMaker\GmailOAuth\GmailOAuth::setSenderEmail()
|
||||||
|
* @covers \ProcessMaker\GmailOAuth\GmailOAuth::setSenderName()
|
||||||
|
* @covers \ProcessMaker\GmailOAuth\GmailOAuth::setSendTestMail()
|
||||||
|
* @covers \ProcessMaker\GmailOAuth\GmailOAuth::setMailTo()
|
||||||
|
* @covers \ProcessMaker\GmailOAuth\GmailOAuth::setSetDefaultConfiguration()
|
||||||
|
* @covers \ProcessMaker\GmailOAuth\GmailOAuth::setRefreshToken()
|
||||||
|
* @covers \ProcessMaker\GmailOAuth\GmailOAuth::getEmailServerUid()
|
||||||
|
* @covers \ProcessMaker\GmailOAuth\GmailOAuth::getClientID()
|
||||||
|
* @covers \ProcessMaker\GmailOAuth\GmailOAuth::getClientSecret()
|
||||||
|
* @covers \ProcessMaker\GmailOAuth\GmailOAuth::getRedirectURI()
|
||||||
|
* @covers \ProcessMaker\GmailOAuth\GmailOAuth::getEmailEngine()
|
||||||
|
* @covers \ProcessMaker\GmailOAuth\GmailOAuth::getFromAccount()
|
||||||
|
* @covers \ProcessMaker\GmailOAuth\GmailOAuth::getSenderEmail()
|
||||||
|
* @covers \ProcessMaker\GmailOAuth\GmailOAuth::getSenderName()
|
||||||
|
* @covers \ProcessMaker\GmailOAuth\GmailOAuth::getSendTestMail()
|
||||||
|
* @covers \ProcessMaker\GmailOAuth\GmailOAuth::getMailTo()
|
||||||
|
* @covers \ProcessMaker\GmailOAuth\GmailOAuth::getSetDefaultConfiguration()
|
||||||
|
* @covers \ProcessMaker\GmailOAuth\GmailOAuth::getRefreshToken()
|
||||||
|
*/
|
||||||
|
public function it_should_set_and_get_properties()
|
||||||
|
{
|
||||||
|
$faker = $this->faker;
|
||||||
|
|
||||||
|
$expected = $faker->word;
|
||||||
|
$digit = $faker->randomDigitNotNull;
|
||||||
|
|
||||||
|
$gmailOAuth = new GmailOAuth();
|
||||||
|
|
||||||
|
$gmailOAuth->setEmailServerUid($expected);
|
||||||
|
$actual = $gmailOAuth->getEmailServerUid();
|
||||||
|
$this->assertEquals($expected, $actual);
|
||||||
|
|
||||||
|
$gmailOAuth->setClientID($expected);
|
||||||
|
$actual = $gmailOAuth->getClientID();
|
||||||
|
$this->assertEquals($expected, $actual);
|
||||||
|
|
||||||
|
$gmailOAuth->setClientSecret($expected);
|
||||||
|
$actual = $gmailOAuth->getClientSecret();
|
||||||
|
$this->assertEquals($expected, $actual);
|
||||||
|
|
||||||
|
$gmailOAuth->setRedirectURI($expected);
|
||||||
|
$actual = $gmailOAuth->getRedirectURI();
|
||||||
|
$this->assertEquals($expected, $actual);
|
||||||
|
|
||||||
|
$gmailOAuth->setEmailEngine($expected);
|
||||||
|
$actual = $gmailOAuth->getEmailEngine();
|
||||||
|
$this->assertEquals($expected, $actual);
|
||||||
|
|
||||||
|
$gmailOAuth->setFromAccount($expected);
|
||||||
|
$actual = $gmailOAuth->getFromAccount();
|
||||||
|
$this->assertEquals($expected, $actual);
|
||||||
|
|
||||||
|
$gmailOAuth->setSenderEmail($expected);
|
||||||
|
$actual = $gmailOAuth->getSenderEmail();
|
||||||
|
$this->assertEquals($expected, $actual);
|
||||||
|
|
||||||
|
$gmailOAuth->setSenderName($expected);
|
||||||
|
$actual = $gmailOAuth->getSenderName();
|
||||||
|
$this->assertEquals($expected, $actual);
|
||||||
|
|
||||||
|
$gmailOAuth->setSendTestMail($expected);
|
||||||
|
$actual = $gmailOAuth->getSendTestMail();
|
||||||
|
$this->assertEquals($expected, $actual);
|
||||||
|
|
||||||
|
$gmailOAuth->setMailTo($expected);
|
||||||
|
$actual = $gmailOAuth->getMailTo();
|
||||||
|
$this->assertEquals($expected, $actual);
|
||||||
|
|
||||||
|
$gmailOAuth->setSetDefaultConfiguration($expected);
|
||||||
|
$actual = $gmailOAuth->getSetDefaultConfiguration();
|
||||||
|
$this->assertEquals($expected, $actual);
|
||||||
|
|
||||||
|
$gmailOAuth->setRefreshToken($expected);
|
||||||
|
$actual = $gmailOAuth->getRefreshToken();
|
||||||
|
$this->assertEquals($expected, $actual);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Obtenga una instancia de Google_Client.
|
||||||
|
* @test
|
||||||
|
* @covers \ProcessMaker\GmailOAuth\GmailOAuth::getGoogleClient()
|
||||||
|
*/
|
||||||
|
public function it_should_()
|
||||||
|
{
|
||||||
|
$gmailOAuth = new GmailOAuth();
|
||||||
|
$gmailOAuth->setClientID("");
|
||||||
|
$gmailOAuth->setClientSecret("");
|
||||||
|
$gmailOAuth->setRedirectURI("");
|
||||||
|
$googleClient = $gmailOAuth->getGoogleClient();
|
||||||
|
$this->assertTrue($googleClient instanceof Google_Client);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create Email Server data.
|
||||||
|
* @test
|
||||||
|
* @covers \ProcessMaker\GmailOAuth\GmailOAuth::saveEmailServer()
|
||||||
|
*/
|
||||||
|
public function it_should_create_email_server()
|
||||||
|
{
|
||||||
|
$this->markTestIncomplete("It required valid workspace");
|
||||||
|
$faker = $this->faker;
|
||||||
|
|
||||||
|
$gmailOAuth = new GmailOAuth();
|
||||||
|
$gmailOAuth->setEmailEngine("GMAILAPI");
|
||||||
|
$gmailOAuth->setClientID($faker->uuid);
|
||||||
|
$gmailOAuth->setClientSecret($faker->uuid);
|
||||||
|
$gmailOAuth->setRefreshToken($faker->uuid);
|
||||||
|
$gmailOAuth->setFromAccount($faker->email);
|
||||||
|
$gmailOAuth->setSenderEmail(1);
|
||||||
|
$gmailOAuth->setSenderName($faker->word);
|
||||||
|
$gmailOAuth->setSendTestMail(1);
|
||||||
|
$gmailOAuth->setMailTo($faker->email);
|
||||||
|
$gmailOAuth->setSetDefaultConfiguration(0);
|
||||||
|
|
||||||
|
$this->expectException(Exception::class);
|
||||||
|
$result = $gmailOAuth->saveEmailServer();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Update Email Server data.
|
||||||
|
* @test
|
||||||
|
* @covers \ProcessMaker\GmailOAuth\GmailOAuth::saveEmailServer()
|
||||||
|
*/
|
||||||
|
public function it_should_udpate_email_server()
|
||||||
|
{
|
||||||
|
$this->markTestIncomplete("It required valid workspace");
|
||||||
|
$faker = $this->faker;
|
||||||
|
|
||||||
|
$gmailOAuth = new GmailOAuth();
|
||||||
|
$gmailOAuth->setEmailServerUid($faker->uuid);
|
||||||
|
$gmailOAuth->setEmailEngine("GMAILAPI");
|
||||||
|
$gmailOAuth->setClientID($faker->uuid);
|
||||||
|
$gmailOAuth->setClientSecret($faker->uuid);
|
||||||
|
$gmailOAuth->setRefreshToken($faker->uuid);
|
||||||
|
$gmailOAuth->setFromAccount($faker->email);
|
||||||
|
$gmailOAuth->setSenderEmail(1);
|
||||||
|
$gmailOAuth->setSenderName($faker->word);
|
||||||
|
$gmailOAuth->setSendTestMail(1);
|
||||||
|
$gmailOAuth->setMailTo($faker->email);
|
||||||
|
$gmailOAuth->setSetDefaultConfiguration(0);
|
||||||
|
|
||||||
|
$this->expectException(Exception::class);
|
||||||
|
$result = $gmailOAuth->saveEmailServer();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This ensures proof of email delivery with Google_Service_Gmail.
|
||||||
|
* @test
|
||||||
|
* @covers \ProcessMaker\GmailOAuth\GmailOAuth::sendTestEmailWithGoogleServiceGmail()
|
||||||
|
*/
|
||||||
|
public function it_should_send_an_email_test_with_google_service_gmail()
|
||||||
|
{
|
||||||
|
$faker = $this->faker;
|
||||||
|
$gmailOauth = new GmailOAuth();
|
||||||
|
$result = $gmailOauth->sendTestEmailWithGoogleServiceGmail();
|
||||||
|
$this->assertTrue($result instanceof Google_Service_Gmail_Message);
|
||||||
|
|
||||||
|
$gmailOauth->setFromAccount($faker->email);
|
||||||
|
$result = $gmailOauth->sendTestEmailWithGoogleServiceGmail();
|
||||||
|
$this->assertTrue($result instanceof Google_Service_Gmail_Message);
|
||||||
|
|
||||||
|
$gmailOauth->setSenderEmail($faker->email);
|
||||||
|
$result = $gmailOauth->sendTestEmailWithGoogleServiceGmail();
|
||||||
|
$this->assertTrue($result instanceof Google_Service_Gmail_Message);
|
||||||
|
|
||||||
|
$gmailOauth->setMailTo($faker->email);
|
||||||
|
$gmailOauth->setSendTestMail(0);
|
||||||
|
$result = $gmailOauth->sendTestEmailWithGoogleServiceGmail();
|
||||||
|
$this->assertTrue($result instanceof Google_Service_Gmail_Message);
|
||||||
|
|
||||||
|
$this->expectException(Exception::class);
|
||||||
|
$gmailOauth->setSendTestMail(1);
|
||||||
|
$result = $gmailOauth->sendTestEmailWithGoogleServiceGmail();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This test ensures that the message body for the email test.
|
||||||
|
* @test
|
||||||
|
* @covers \ProcessMaker\GmailOAuth\GmailOAuth::getRawMessage()
|
||||||
|
*/
|
||||||
|
public function it_should_get_raw_message_for_test_email()
|
||||||
|
{
|
||||||
|
$gmailOAuth = new GmailOAuth();
|
||||||
|
$result = $gmailOAuth->getRawMessage();
|
||||||
|
$this->assertTrue(is_string($result));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This ensures proof of email delivery with PHPMailerOAuth.
|
||||||
|
* @test
|
||||||
|
* @covers \ProcessMaker\GmailOAuth\GmailOAuth::sendTestMailWithPHPMailerOAuth()
|
||||||
|
*/
|
||||||
|
public function it_should_send_an_email_test_with_PHPMailerOAuth()
|
||||||
|
{
|
||||||
|
$faker = $this->faker;
|
||||||
|
$gmailOauth = new GmailOAuth();
|
||||||
|
|
||||||
|
$result = $gmailOauth->sendTestMailWithPHPMailerOAuth();
|
||||||
|
$this->assertTrue($result instanceof PHPMailerOAuth);
|
||||||
|
|
||||||
|
$gmailOauth->setFromAccount($faker->email);
|
||||||
|
$result = $gmailOauth->sendTestMailWithPHPMailerOAuth();
|
||||||
|
$this->assertTrue($result instanceof PHPMailerOAuth);
|
||||||
|
|
||||||
|
$gmailOauth->setSenderEmail($faker->email);
|
||||||
|
$result = $gmailOauth->sendTestMailWithPHPMailerOAuth();
|
||||||
|
$this->assertTrue($result instanceof PHPMailerOAuth);
|
||||||
|
|
||||||
|
$gmailOauth->setMailTo($faker->email);
|
||||||
|
$gmailOauth->setSendTestMail(0);
|
||||||
|
$result = $gmailOauth->sendTestMailWithPHPMailerOAuth();
|
||||||
|
$this->assertTrue($result instanceof PHPMailerOAuth);
|
||||||
|
|
||||||
|
$this->expectException(Exception::class);
|
||||||
|
$gmailOauth->setSenderEmail("");
|
||||||
|
$gmailOauth->setMailTo($faker->email);
|
||||||
|
$gmailOauth->setSendTestMail(1);
|
||||||
|
$result = $gmailOauth->sendTestMailWithPHPMailerOAuth();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This ensures proof of get message body.
|
||||||
|
* @test
|
||||||
|
* @covers \ProcessMaker\GmailOAuth\GmailOAuth::getMessageBody()
|
||||||
|
*/
|
||||||
|
public function it_should_get_message_body()
|
||||||
|
{
|
||||||
|
$gmailOauth = new GmailOAuth();
|
||||||
|
$result = $gmailOauth->getMessageBody();
|
||||||
|
$this->assertTrue(is_string($result));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This ensures that it is saved in the APP_MESSAGE table.
|
||||||
|
* @test
|
||||||
|
* @covers \ProcessMaker\GmailOAuth\GmailOAuth::saveIntoAppMessage()
|
||||||
|
*/
|
||||||
|
public function it_should_save_into_app_message_table()
|
||||||
|
{
|
||||||
|
$faker = $this->faker;
|
||||||
|
$gmailOauth = new GmailOAuth();
|
||||||
|
|
||||||
|
$gmailOauth->setFromAccount($faker->email);
|
||||||
|
$gmailOauth->setSenderEmail($faker->email);
|
||||||
|
$gmailOauth->setMailTo($faker->email);
|
||||||
|
|
||||||
|
try {
|
||||||
|
$gmailOauth->saveIntoAppMessage("pending");
|
||||||
|
} catch (Exception $e) {
|
||||||
|
$this->fail($e->getMessage());
|
||||||
|
}
|
||||||
|
$this->assertTrue(true);
|
||||||
|
|
||||||
|
try {
|
||||||
|
$gmailOauth->saveIntoAppMessage("sent");
|
||||||
|
} catch (Exception $e) {
|
||||||
|
$this->fail($e->getMessage());
|
||||||
|
}
|
||||||
|
$this->assertTrue(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This ensures that it is saved in the Standard Log table.
|
||||||
|
* @test
|
||||||
|
* @covers \ProcessMaker\GmailOAuth\GmailOAuth::saveIntoStandardLogs()
|
||||||
|
*/
|
||||||
|
public function it_should_save_into_standard_log()
|
||||||
|
{
|
||||||
|
$faker = $this->faker;
|
||||||
|
$gmailOauth = new GmailOAuth();
|
||||||
|
|
||||||
|
$gmailOauth->setFromAccount($faker->email);
|
||||||
|
$gmailOauth->setSenderEmail($faker->email);
|
||||||
|
$gmailOauth->setMailTo($faker->email);
|
||||||
|
|
||||||
|
try {
|
||||||
|
$gmailOauth->saveIntoStandardLogs("pending");
|
||||||
|
} catch (Exception $e) {
|
||||||
|
$this->fail($e->getMessage());
|
||||||
|
}
|
||||||
|
$this->assertTrue(true);
|
||||||
|
|
||||||
|
try {
|
||||||
|
$gmailOauth->saveIntoStandardLogs("sent");
|
||||||
|
} catch (Exception $e) {
|
||||||
|
$this->fail($e->getMessage());
|
||||||
|
}
|
||||||
|
$this->assertTrue(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -86,4 +86,4 @@ class EmailServerModelTest extends TestCase
|
|||||||
//Assert the result es not empty
|
//Assert the result es not empty
|
||||||
$this->assertNotEmpty($res);
|
$this->assertNotEmpty($res);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -510,6 +510,7 @@ class SpoolRun
|
|||||||
case 'MAIL':
|
case 'MAIL':
|
||||||
case 'PHPMAILER':
|
case 'PHPMAILER':
|
||||||
case 'IMAP':
|
case 'IMAP':
|
||||||
|
case 'GMAILAPI':
|
||||||
switch ($this->config['MESS_ENGINE']) {
|
switch ($this->config['MESS_ENGINE']) {
|
||||||
case 'MAIL':
|
case 'MAIL':
|
||||||
$phpMailer = new PHPMailer();
|
$phpMailer = new PHPMailer();
|
||||||
@@ -520,6 +521,11 @@ class SpoolRun
|
|||||||
$phpMailer = new PHPMailer(true);
|
$phpMailer = new PHPMailer(true);
|
||||||
$phpMailer->Mailer = 'smtp';
|
$phpMailer->Mailer = 'smtp';
|
||||||
break;
|
break;
|
||||||
|
case 'GMAILAPI':
|
||||||
|
$phpMailer = new PHPMailerOAuth();
|
||||||
|
$phpMailer->AuthType = 'XOAUTH2';
|
||||||
|
$phpMailer->isSMTP();
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
$phpMailer->SMTPAuth = (isset($this->config['SMTPAuth']) ? $this->config['SMTPAuth'] : '');
|
$phpMailer->SMTPAuth = (isset($this->config['SMTPAuth']) ? $this->config['SMTPAuth'] : '');
|
||||||
@@ -529,6 +535,7 @@ class SpoolRun
|
|||||||
break;
|
break;
|
||||||
case 'IMAP':
|
case 'IMAP':
|
||||||
case 'PHPMAILER':
|
case 'PHPMAILER':
|
||||||
|
case 'GMAILAPI':
|
||||||
//Posible Options for SMTPSecure are: "", "ssl" or "tls"
|
//Posible Options for SMTPSecure are: "", "ssl" or "tls"
|
||||||
if (isset($this->config['SMTPSecure']) && preg_match('/^(ssl|tls)$/', $this->config['SMTPSecure'])) {
|
if (isset($this->config['SMTPSecure']) && preg_match('/^(ssl|tls)$/', $this->config['SMTPSecure'])) {
|
||||||
$phpMailer->SMTPSecure = $this->config['SMTPSecure'];
|
$phpMailer->SMTPSecure = $this->config['SMTPSecure'];
|
||||||
@@ -543,8 +550,15 @@ class SpoolRun
|
|||||||
$phpMailer->Encoding = "8bit";
|
$phpMailer->Encoding = "8bit";
|
||||||
$phpMailer->Host = $this->config['MESS_SERVER'];
|
$phpMailer->Host = $this->config['MESS_SERVER'];
|
||||||
$phpMailer->Port = $this->config['MESS_PORT'];
|
$phpMailer->Port = $this->config['MESS_PORT'];
|
||||||
$phpMailer->Username = $this->config['MESS_ACCOUNT'];
|
if ($this->config['MESS_ENGINE'] !== 'GMAILAPI') {
|
||||||
$phpMailer->Password = $this->config['MESS_PASSWORD'];
|
$phpMailer->Username = $this->config['MESS_ACCOUNT'];
|
||||||
|
$phpMailer->Password = $this->config['MESS_PASSWORD'];
|
||||||
|
} else {
|
||||||
|
$phpMailer->oauthUserEmail = $this->config['MESS_ACCOUNT'];
|
||||||
|
$phpMailer->oauthClientId = $this->config['OAUTH_CLIENT_ID'];
|
||||||
|
$phpMailer->oauthClientSecret = $this->config['OAUTH_CLIENT_SECRET'];
|
||||||
|
$phpMailer->oauthRefreshToken = $this->config['OAUTH_REFRESH_TOKEN'];
|
||||||
|
}
|
||||||
|
|
||||||
//From
|
//From
|
||||||
$phpMailer->SetFrom($this->fileData['from_email'], utf8_decode($this->fileData['from_name']));
|
$phpMailer->SetFrom($this->fileData['from_email'], utf8_decode($this->fileData['from_name']));
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Support\Facades\Crypt;
|
||||||
use ProcessMaker\BusinessModel\EmailServer;
|
use ProcessMaker\BusinessModel\EmailServer;
|
||||||
/*----------------------------------********---------------------------------*/
|
/*----------------------------------********---------------------------------*/
|
||||||
use ProcessMaker\ChangeLog\ChangeLog;
|
use ProcessMaker\ChangeLog\ChangeLog;
|
||||||
@@ -930,6 +931,12 @@ class WsBase
|
|||||||
$row = $rsCriteria->getRow();
|
$row = $rsCriteria->getRow();
|
||||||
$arrayConfigAux = $row;
|
$arrayConfigAux = $row;
|
||||||
$arrayConfigAux["SMTPSecure"] = $row["SMTPSECURE"];
|
$arrayConfigAux["SMTPSecure"] = $row["SMTPSECURE"];
|
||||||
|
$arrayConfigAux["OAUTH_CLIENT_ID"] = !empty($row["OAUTH_CLIENT_ID"]) ?
|
||||||
|
Crypt::decryptString($row["OAUTH_CLIENT_ID"]) : '';
|
||||||
|
$arrayConfigAux["OAUTH_CLIENT_SECRET"] = !empty($row["OAUTH_CLIENT_SECRET"]) ?
|
||||||
|
Crypt::decryptString($row["OAUTH_CLIENT_SECRET"]) : '';
|
||||||
|
$arrayConfigAux["OAUTH_REFRESH_TOKEN"] = !empty($row["OAUTH_REFRESH_TOKEN"]) ?
|
||||||
|
Crypt::decryptString($row["OAUTH_REFRESH_TOKEN"]) : '';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -931,7 +931,9 @@ function getEmailConfiguration ()
|
|||||||
* @param array | $attachments = [] | Attachment | An Optional arrray. An array of files (full paths) to be attached to the email.
|
* @param array | $attachments = [] | Attachment | An Optional arrray. An array of files (full paths) to be attached to the email.
|
||||||
* @param boolean | $showMessage = true | Show message | Optional parameter. Set to TRUE to show the message in the case's message history.
|
* @param boolean | $showMessage = true | Show message | Optional parameter. Set to TRUE to show the message in the case's message history.
|
||||||
* @param int | $delIndex = 0 | Delegation index of the case | Optional parameter. The delegation index of the current task in the case.
|
* @param int | $delIndex = 0 | Delegation index of the case | Optional parameter. The delegation index of the current task in the case.
|
||||||
* @param array | $config = [] | Email server configuration | An optional array: An array of parameters to be used in the Email sent (MESS_ENGINE, MESS_SERVER, MESS_PORT, MESS_FROM_MAIL, MESS_RAUTH, MESS_ACCOUNT, MESS_PASSWORD, and SMTPSecure) Or String: UID of Email server .
|
* @param array | $config = [] | Email server configuration | An optional array: An array of parameters to be used in the Email sent (MESS_ENGINE,
|
||||||
|
* MESS_SERVER, MESS_PORT, MESS_FROM_MAIL, MESS_RAUTH, MESS_ACCOUNT, MESS_PASSWORD, SMTPSecure, OAUTH_CLIENT_ID, OAUTH_CLIENT_SECRET and OAUTH_REFRESH_TOKEN)
|
||||||
|
* Or String: UID of Email server .
|
||||||
* @return int | | result | Result of sending email
|
* @return int | | result | Result of sending email
|
||||||
*
|
*
|
||||||
* @see class.pmFunctions::PMFSendMessageToGroup()
|
* @see class.pmFunctions::PMFSendMessageToGroup()
|
||||||
|
|||||||
@@ -95,6 +95,12 @@ class EmailServerMapBuilder
|
|||||||
|
|
||||||
$tMap->addColumn('MESS_DEFAULT', 'MessDefault', 'int', CreoleTypes::INTEGER, true, null);
|
$tMap->addColumn('MESS_DEFAULT', 'MessDefault', 'int', CreoleTypes::INTEGER, true, null);
|
||||||
|
|
||||||
|
$tMap->addColumn('OAUTH_CLIENT_ID', 'OauthClientId', 'string', CreoleTypes::VARCHAR, true, 512);
|
||||||
|
|
||||||
|
$tMap->addColumn('OAUTH_CLIENT_SECRET', 'OauthClientSecret', 'string', CreoleTypes::VARCHAR, true, 512);
|
||||||
|
|
||||||
|
$tMap->addColumn('OAUTH_REFRESH_TOKEN', 'OauthRefreshToken', 'string', CreoleTypes::VARCHAR, true, 512);
|
||||||
|
|
||||||
} // doBuild()
|
} // doBuild()
|
||||||
|
|
||||||
} // EmailServerMapBuilder
|
} // EmailServerMapBuilder
|
||||||
|
|||||||
@@ -117,6 +117,24 @@ abstract class BaseEmailServer extends BaseObject implements Persistent
|
|||||||
*/
|
*/
|
||||||
protected $mess_default = 0;
|
protected $mess_default = 0;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The value for the oauth_client_id field.
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
protected $oauth_client_id = '';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The value for the oauth_client_secret field.
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
protected $oauth_client_secret = '';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The value for the oauth_refresh_token field.
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
protected $oauth_refresh_token = '';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Flag to prevent endless save loop, if this object is referenced
|
* Flag to prevent endless save loop, if this object is referenced
|
||||||
* by another object which falls in this transaction.
|
* by another object which falls in this transaction.
|
||||||
@@ -296,6 +314,39 @@ abstract class BaseEmailServer extends BaseObject implements Persistent
|
|||||||
return $this->mess_default;
|
return $this->mess_default;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the [oauth_client_id] column value.
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getOauthClientId()
|
||||||
|
{
|
||||||
|
|
||||||
|
return $this->oauth_client_id;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the [oauth_client_secret] column value.
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getOauthClientSecret()
|
||||||
|
{
|
||||||
|
|
||||||
|
return $this->oauth_client_secret;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the [oauth_refresh_token] column value.
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getOauthRefreshToken()
|
||||||
|
{
|
||||||
|
|
||||||
|
return $this->oauth_refresh_token;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the value of [mess_uid] column.
|
* Set the value of [mess_uid] column.
|
||||||
*
|
*
|
||||||
@@ -626,6 +677,72 @@ abstract class BaseEmailServer extends BaseObject implements Persistent
|
|||||||
|
|
||||||
} // setMessDefault()
|
} // setMessDefault()
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the value of [oauth_client_id] column.
|
||||||
|
*
|
||||||
|
* @param string $v new value
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function setOauthClientId($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->oauth_client_id !== $v || $v === '') {
|
||||||
|
$this->oauth_client_id = $v;
|
||||||
|
$this->modifiedColumns[] = EmailServerPeer::OAUTH_CLIENT_ID;
|
||||||
|
}
|
||||||
|
|
||||||
|
} // setOauthClientId()
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the value of [oauth_client_secret] column.
|
||||||
|
*
|
||||||
|
* @param string $v new value
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function setOauthClientSecret($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->oauth_client_secret !== $v || $v === '') {
|
||||||
|
$this->oauth_client_secret = $v;
|
||||||
|
$this->modifiedColumns[] = EmailServerPeer::OAUTH_CLIENT_SECRET;
|
||||||
|
}
|
||||||
|
|
||||||
|
} // setOauthClientSecret()
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the value of [oauth_refresh_token] column.
|
||||||
|
*
|
||||||
|
* @param string $v new value
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function setOauthRefreshToken($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->oauth_refresh_token !== $v || $v === '') {
|
||||||
|
$this->oauth_refresh_token = $v;
|
||||||
|
$this->modifiedColumns[] = EmailServerPeer::OAUTH_REFRESH_TOKEN;
|
||||||
|
}
|
||||||
|
|
||||||
|
} // setOauthRefreshToken()
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Hydrates (populates) the object variables with values from the database resultset.
|
* Hydrates (populates) the object variables with values from the database resultset.
|
||||||
*
|
*
|
||||||
@@ -673,12 +790,18 @@ abstract class BaseEmailServer extends BaseObject implements Persistent
|
|||||||
|
|
||||||
$this->mess_default = $rs->getInt($startcol + 14);
|
$this->mess_default = $rs->getInt($startcol + 14);
|
||||||
|
|
||||||
|
$this->oauth_client_id = $rs->getString($startcol + 15);
|
||||||
|
|
||||||
|
$this->oauth_client_secret = $rs->getString($startcol + 16);
|
||||||
|
|
||||||
|
$this->oauth_refresh_token = $rs->getString($startcol + 17);
|
||||||
|
|
||||||
$this->resetModified();
|
$this->resetModified();
|
||||||
|
|
||||||
$this->setNew(false);
|
$this->setNew(false);
|
||||||
|
|
||||||
// FIXME - using NUM_COLUMNS may be clearer.
|
// FIXME - using NUM_COLUMNS may be clearer.
|
||||||
return $startcol + 15; // 15 = EmailServerPeer::NUM_COLUMNS - EmailServerPeer::NUM_LAZY_LOAD_COLUMNS).
|
return $startcol + 18; // 18 = EmailServerPeer::NUM_COLUMNS - EmailServerPeer::NUM_LAZY_LOAD_COLUMNS).
|
||||||
|
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
throw new PropelException("Error populating EmailServer object", $e);
|
throw new PropelException("Error populating EmailServer object", $e);
|
||||||
@@ -927,6 +1050,15 @@ abstract class BaseEmailServer extends BaseObject implements Persistent
|
|||||||
case 14:
|
case 14:
|
||||||
return $this->getMessDefault();
|
return $this->getMessDefault();
|
||||||
break;
|
break;
|
||||||
|
case 15:
|
||||||
|
return $this->getOauthClientId();
|
||||||
|
break;
|
||||||
|
case 16:
|
||||||
|
return $this->getOauthClientSecret();
|
||||||
|
break;
|
||||||
|
case 17:
|
||||||
|
return $this->getOauthRefreshToken();
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
return null;
|
return null;
|
||||||
break;
|
break;
|
||||||
@@ -962,6 +1094,9 @@ abstract class BaseEmailServer extends BaseObject implements Persistent
|
|||||||
$keys[12] => $this->getMessTrySendInmediatly(),
|
$keys[12] => $this->getMessTrySendInmediatly(),
|
||||||
$keys[13] => $this->getMailTo(),
|
$keys[13] => $this->getMailTo(),
|
||||||
$keys[14] => $this->getMessDefault(),
|
$keys[14] => $this->getMessDefault(),
|
||||||
|
$keys[15] => $this->getOauthClientId(),
|
||||||
|
$keys[16] => $this->getOauthClientSecret(),
|
||||||
|
$keys[17] => $this->getOauthRefreshToken(),
|
||||||
);
|
);
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
@@ -1038,6 +1173,15 @@ abstract class BaseEmailServer extends BaseObject implements Persistent
|
|||||||
case 14:
|
case 14:
|
||||||
$this->setMessDefault($value);
|
$this->setMessDefault($value);
|
||||||
break;
|
break;
|
||||||
|
case 15:
|
||||||
|
$this->setOauthClientId($value);
|
||||||
|
break;
|
||||||
|
case 16:
|
||||||
|
$this->setOauthClientSecret($value);
|
||||||
|
break;
|
||||||
|
case 17:
|
||||||
|
$this->setOauthRefreshToken($value);
|
||||||
|
break;
|
||||||
} // switch()
|
} // switch()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1121,6 +1265,18 @@ abstract class BaseEmailServer extends BaseObject implements Persistent
|
|||||||
$this->setMessDefault($arr[$keys[14]]);
|
$this->setMessDefault($arr[$keys[14]]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (array_key_exists($keys[15], $arr)) {
|
||||||
|
$this->setOauthClientId($arr[$keys[15]]);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (array_key_exists($keys[16], $arr)) {
|
||||||
|
$this->setOauthClientSecret($arr[$keys[16]]);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (array_key_exists($keys[17], $arr)) {
|
||||||
|
$this->setOauthRefreshToken($arr[$keys[17]]);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1192,6 +1348,18 @@ abstract class BaseEmailServer extends BaseObject implements Persistent
|
|||||||
$criteria->add(EmailServerPeer::MESS_DEFAULT, $this->mess_default);
|
$criteria->add(EmailServerPeer::MESS_DEFAULT, $this->mess_default);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($this->isColumnModified(EmailServerPeer::OAUTH_CLIENT_ID)) {
|
||||||
|
$criteria->add(EmailServerPeer::OAUTH_CLIENT_ID, $this->oauth_client_id);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($this->isColumnModified(EmailServerPeer::OAUTH_CLIENT_SECRET)) {
|
||||||
|
$criteria->add(EmailServerPeer::OAUTH_CLIENT_SECRET, $this->oauth_client_secret);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($this->isColumnModified(EmailServerPeer::OAUTH_REFRESH_TOKEN)) {
|
||||||
|
$criteria->add(EmailServerPeer::OAUTH_REFRESH_TOKEN, $this->oauth_refresh_token);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
return $criteria;
|
return $criteria;
|
||||||
}
|
}
|
||||||
@@ -1274,6 +1442,12 @@ abstract class BaseEmailServer extends BaseObject implements Persistent
|
|||||||
|
|
||||||
$copyObj->setMessDefault($this->mess_default);
|
$copyObj->setMessDefault($this->mess_default);
|
||||||
|
|
||||||
|
$copyObj->setOauthClientId($this->oauth_client_id);
|
||||||
|
|
||||||
|
$copyObj->setOauthClientSecret($this->oauth_client_secret);
|
||||||
|
|
||||||
|
$copyObj->setOauthRefreshToken($this->oauth_refresh_token);
|
||||||
|
|
||||||
|
|
||||||
$copyObj->setNew(true);
|
$copyObj->setNew(true);
|
||||||
|
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ abstract class BaseEmailServerPeer
|
|||||||
const CLASS_DEFAULT = 'classes.model.EmailServer';
|
const CLASS_DEFAULT = 'classes.model.EmailServer';
|
||||||
|
|
||||||
/** The total number of columns. */
|
/** The total number of columns. */
|
||||||
const NUM_COLUMNS = 15;
|
const NUM_COLUMNS = 18;
|
||||||
|
|
||||||
/** The number of lazy-loaded columns. */
|
/** The number of lazy-loaded columns. */
|
||||||
const NUM_LAZY_LOAD_COLUMNS = 0;
|
const NUM_LAZY_LOAD_COLUMNS = 0;
|
||||||
@@ -76,6 +76,15 @@ abstract class BaseEmailServerPeer
|
|||||||
/** the column name for the MESS_DEFAULT field */
|
/** the column name for the MESS_DEFAULT field */
|
||||||
const MESS_DEFAULT = 'EMAIL_SERVER.MESS_DEFAULT';
|
const MESS_DEFAULT = 'EMAIL_SERVER.MESS_DEFAULT';
|
||||||
|
|
||||||
|
/** the column name for the OAUTH_CLIENT_ID field */
|
||||||
|
const OAUTH_CLIENT_ID = 'EMAIL_SERVER.OAUTH_CLIENT_ID';
|
||||||
|
|
||||||
|
/** the column name for the OAUTH_CLIENT_SECRET field */
|
||||||
|
const OAUTH_CLIENT_SECRET = 'EMAIL_SERVER.OAUTH_CLIENT_SECRET';
|
||||||
|
|
||||||
|
/** the column name for the OAUTH_REFRESH_TOKEN field */
|
||||||
|
const OAUTH_REFRESH_TOKEN = 'EMAIL_SERVER.OAUTH_REFRESH_TOKEN';
|
||||||
|
|
||||||
/** The PHP to DB Name Mapping */
|
/** The PHP to DB Name Mapping */
|
||||||
private static $phpNameMap = null;
|
private static $phpNameMap = null;
|
||||||
|
|
||||||
@@ -87,10 +96,10 @@ abstract class BaseEmailServerPeer
|
|||||||
* e.g. self::$fieldNames[self::TYPE_PHPNAME][0] = 'Id'
|
* e.g. self::$fieldNames[self::TYPE_PHPNAME][0] = 'Id'
|
||||||
*/
|
*/
|
||||||
private static $fieldNames = array (
|
private static $fieldNames = array (
|
||||||
BasePeer::TYPE_PHPNAME => array ('MessUid', 'MessEngine', 'MessServer', 'MessPort', 'MessIncomingServer', 'MessIncomingPort', 'MessRauth', 'MessAccount', 'MessPassword', 'MessFromMail', 'MessFromName', 'Smtpsecure', 'MessTrySendInmediatly', 'MailTo', 'MessDefault', ),
|
BasePeer::TYPE_PHPNAME => array ('MessUid', 'MessEngine', 'MessServer', 'MessPort', 'MessIncomingServer', 'MessIncomingPort', 'MessRauth', 'MessAccount', 'MessPassword', 'MessFromMail', 'MessFromName', 'Smtpsecure', 'MessTrySendInmediatly', 'MailTo', 'MessDefault', 'OauthClientId', 'OauthClientSecret', 'OauthRefreshToken', ),
|
||||||
BasePeer::TYPE_COLNAME => array (EmailServerPeer::MESS_UID, EmailServerPeer::MESS_ENGINE, EmailServerPeer::MESS_SERVER, EmailServerPeer::MESS_PORT, EmailServerPeer::MESS_INCOMING_SERVER, EmailServerPeer::MESS_INCOMING_PORT, EmailServerPeer::MESS_RAUTH, EmailServerPeer::MESS_ACCOUNT, EmailServerPeer::MESS_PASSWORD, EmailServerPeer::MESS_FROM_MAIL, EmailServerPeer::MESS_FROM_NAME, EmailServerPeer::SMTPSECURE, EmailServerPeer::MESS_TRY_SEND_INMEDIATLY, EmailServerPeer::MAIL_TO, EmailServerPeer::MESS_DEFAULT, ),
|
BasePeer::TYPE_COLNAME => array (EmailServerPeer::MESS_UID, EmailServerPeer::MESS_ENGINE, EmailServerPeer::MESS_SERVER, EmailServerPeer::MESS_PORT, EmailServerPeer::MESS_INCOMING_SERVER, EmailServerPeer::MESS_INCOMING_PORT, EmailServerPeer::MESS_RAUTH, EmailServerPeer::MESS_ACCOUNT, EmailServerPeer::MESS_PASSWORD, EmailServerPeer::MESS_FROM_MAIL, EmailServerPeer::MESS_FROM_NAME, EmailServerPeer::SMTPSECURE, EmailServerPeer::MESS_TRY_SEND_INMEDIATLY, EmailServerPeer::MAIL_TO, EmailServerPeer::MESS_DEFAULT, EmailServerPeer::OAUTH_CLIENT_ID, EmailServerPeer::OAUTH_CLIENT_SECRET, EmailServerPeer::OAUTH_REFRESH_TOKEN, ),
|
||||||
BasePeer::TYPE_FIELDNAME => array ('MESS_UID', 'MESS_ENGINE', 'MESS_SERVER', 'MESS_PORT', 'MESS_INCOMING_SERVER', 'MESS_INCOMING_PORT', 'MESS_RAUTH', 'MESS_ACCOUNT', 'MESS_PASSWORD', 'MESS_FROM_MAIL', 'MESS_FROM_NAME', 'SMTPSECURE', 'MESS_TRY_SEND_INMEDIATLY', 'MAIL_TO', 'MESS_DEFAULT', ),
|
BasePeer::TYPE_FIELDNAME => array ('MESS_UID', 'MESS_ENGINE', 'MESS_SERVER', 'MESS_PORT', 'MESS_INCOMING_SERVER', 'MESS_INCOMING_PORT', 'MESS_RAUTH', 'MESS_ACCOUNT', 'MESS_PASSWORD', 'MESS_FROM_MAIL', 'MESS_FROM_NAME', 'SMTPSECURE', 'MESS_TRY_SEND_INMEDIATLY', 'MAIL_TO', 'MESS_DEFAULT', 'OAUTH_CLIENT_ID', 'OAUTH_CLIENT_SECRET', 'OAUTH_REFRESH_TOKEN', ),
|
||||||
BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, )
|
BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, )
|
||||||
);
|
);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -100,10 +109,10 @@ abstract class BaseEmailServerPeer
|
|||||||
* e.g. self::$fieldNames[BasePeer::TYPE_PHPNAME]['Id'] = 0
|
* e.g. self::$fieldNames[BasePeer::TYPE_PHPNAME]['Id'] = 0
|
||||||
*/
|
*/
|
||||||
private static $fieldKeys = array (
|
private static $fieldKeys = array (
|
||||||
BasePeer::TYPE_PHPNAME => array ('MessUid' => 0, 'MessEngine' => 1, 'MessServer' => 2, 'MessPort' => 3, 'MessIncomingServer' => 4, 'MessIncomingPort' => 5, 'MessRauth' => 6, 'MessAccount' => 7, 'MessPassword' => 8, 'MessFromMail' => 9, 'MessFromName' => 10, 'Smtpsecure' => 11, 'MessTrySendInmediatly' => 12, 'MailTo' => 13, 'MessDefault' => 14, ),
|
BasePeer::TYPE_PHPNAME => array ('MessUid' => 0, 'MessEngine' => 1, 'MessServer' => 2, 'MessPort' => 3, 'MessIncomingServer' => 4, 'MessIncomingPort' => 5, 'MessRauth' => 6, 'MessAccount' => 7, 'MessPassword' => 8, 'MessFromMail' => 9, 'MessFromName' => 10, 'Smtpsecure' => 11, 'MessTrySendInmediatly' => 12, 'MailTo' => 13, 'MessDefault' => 14, 'OauthClientId' => 15, 'OauthClientSecret' => 16, 'OauthRefreshToken' => 17, ),
|
||||||
BasePeer::TYPE_COLNAME => array (EmailServerPeer::MESS_UID => 0, EmailServerPeer::MESS_ENGINE => 1, EmailServerPeer::MESS_SERVER => 2, EmailServerPeer::MESS_PORT => 3, EmailServerPeer::MESS_INCOMING_SERVER => 4, EmailServerPeer::MESS_INCOMING_PORT => 5, EmailServerPeer::MESS_RAUTH => 6, EmailServerPeer::MESS_ACCOUNT => 7, EmailServerPeer::MESS_PASSWORD => 8, EmailServerPeer::MESS_FROM_MAIL => 9, EmailServerPeer::MESS_FROM_NAME => 10, EmailServerPeer::SMTPSECURE => 11, EmailServerPeer::MESS_TRY_SEND_INMEDIATLY => 12, EmailServerPeer::MAIL_TO => 13, EmailServerPeer::MESS_DEFAULT => 14, ),
|
BasePeer::TYPE_COLNAME => array (EmailServerPeer::MESS_UID => 0, EmailServerPeer::MESS_ENGINE => 1, EmailServerPeer::MESS_SERVER => 2, EmailServerPeer::MESS_PORT => 3, EmailServerPeer::MESS_INCOMING_SERVER => 4, EmailServerPeer::MESS_INCOMING_PORT => 5, EmailServerPeer::MESS_RAUTH => 6, EmailServerPeer::MESS_ACCOUNT => 7, EmailServerPeer::MESS_PASSWORD => 8, EmailServerPeer::MESS_FROM_MAIL => 9, EmailServerPeer::MESS_FROM_NAME => 10, EmailServerPeer::SMTPSECURE => 11, EmailServerPeer::MESS_TRY_SEND_INMEDIATLY => 12, EmailServerPeer::MAIL_TO => 13, EmailServerPeer::MESS_DEFAULT => 14, EmailServerPeer::OAUTH_CLIENT_ID => 15, EmailServerPeer::OAUTH_CLIENT_SECRET => 16, EmailServerPeer::OAUTH_REFRESH_TOKEN => 17, ),
|
||||||
BasePeer::TYPE_FIELDNAME => array ('MESS_UID' => 0, 'MESS_ENGINE' => 1, 'MESS_SERVER' => 2, 'MESS_PORT' => 3, 'MESS_INCOMING_SERVER' => 4, 'MESS_INCOMING_PORT' => 5, 'MESS_RAUTH' => 6, 'MESS_ACCOUNT' => 7, 'MESS_PASSWORD' => 8, 'MESS_FROM_MAIL' => 9, 'MESS_FROM_NAME' => 10, 'SMTPSECURE' => 11, 'MESS_TRY_SEND_INMEDIATLY' => 12, 'MAIL_TO' => 13, 'MESS_DEFAULT' => 14, ),
|
BasePeer::TYPE_FIELDNAME => array ('MESS_UID' => 0, 'MESS_ENGINE' => 1, 'MESS_SERVER' => 2, 'MESS_PORT' => 3, 'MESS_INCOMING_SERVER' => 4, 'MESS_INCOMING_PORT' => 5, 'MESS_RAUTH' => 6, 'MESS_ACCOUNT' => 7, 'MESS_PASSWORD' => 8, 'MESS_FROM_MAIL' => 9, 'MESS_FROM_NAME' => 10, 'SMTPSECURE' => 11, 'MESS_TRY_SEND_INMEDIATLY' => 12, 'MAIL_TO' => 13, 'MESS_DEFAULT' => 14, 'OAUTH_CLIENT_ID' => 15, 'OAUTH_CLIENT_SECRET' => 16, 'OAUTH_REFRESH_TOKEN' => 17, ),
|
||||||
BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, )
|
BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, )
|
||||||
);
|
);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -234,6 +243,12 @@ abstract class BaseEmailServerPeer
|
|||||||
|
|
||||||
$criteria->addSelectColumn(EmailServerPeer::MESS_DEFAULT);
|
$criteria->addSelectColumn(EmailServerPeer::MESS_DEFAULT);
|
||||||
|
|
||||||
|
$criteria->addSelectColumn(EmailServerPeer::OAUTH_CLIENT_ID);
|
||||||
|
|
||||||
|
$criteria->addSelectColumn(EmailServerPeer::OAUTH_CLIENT_SECRET);
|
||||||
|
|
||||||
|
$criteria->addSelectColumn(EmailServerPeer::OAUTH_REFRESH_TOKEN);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const COUNT = 'COUNT(EMAIL_SERVER.MESS_UID)';
|
const COUNT = 'COUNT(EMAIL_SERVER.MESS_UID)';
|
||||||
@@ -564,6 +579,9 @@ abstract class BaseEmailServerPeer
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
|
if ($obj->isNew() || $obj->isColumnModified(EmailServerPeer::MESS_ENGINE))
|
||||||
|
$columns[EmailServerPeer::MESS_ENGINE] = $obj->getMessEngine();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return BasePeer::doValidate(EmailServerPeer::DATABASE_NAME, EmailServerPeer::TABLE_NAME, $columns);
|
return BasePeer::doValidate(EmailServerPeer::DATABASE_NAME, EmailServerPeer::TABLE_NAME, $columns);
|
||||||
|
|||||||
@@ -5013,6 +5013,9 @@
|
|||||||
<column name="MESS_TRY_SEND_INMEDIATLY" type="INTEGER" required="true" default="0"/>
|
<column name="MESS_TRY_SEND_INMEDIATLY" type="INTEGER" required="true" default="0"/>
|
||||||
<column name="MAIL_TO" type="VARCHAR" size="256" required="false" default=""/>
|
<column name="MAIL_TO" type="VARCHAR" size="256" required="false" default=""/>
|
||||||
<column name="MESS_DEFAULT" type="INTEGER" required="true" default="0"/>
|
<column name="MESS_DEFAULT" type="INTEGER" required="true" default="0"/>
|
||||||
|
<column name="OAUTH_CLIENT_ID" type="VARCHAR" size="512" required="true" default=""/>
|
||||||
|
<column name="OAUTH_CLIENT_SECRET" type="VARCHAR" size="512" required="true" default=""/>
|
||||||
|
<column name="OAUTH_REFRESH_TOKEN" type="VARCHAR" size="512" required="true" default=""/>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<table name="WEB_ENTRY_EVENT">
|
<table name="WEB_ENTRY_EVENT">
|
||||||
|
|||||||
@@ -4331,6 +4331,18 @@ msgstr "Click the lock to make changes."
|
|||||||
msgid "Click the lock to prevent further changes."
|
msgid "Click the lock to prevent further changes."
|
||||||
msgstr "Click the lock to prevent further changes."
|
msgstr "Click the lock to prevent further changes."
|
||||||
|
|
||||||
|
# TRANSLATION
|
||||||
|
# LABEL/ID_CLIENT_ID
|
||||||
|
#: LABEL/ID_CLIENT_ID
|
||||||
|
msgid "Client ID"
|
||||||
|
msgstr "Client ID"
|
||||||
|
|
||||||
|
# TRANSLATION
|
||||||
|
# LABEL/ID_CLIENT_SECRET
|
||||||
|
#: LABEL/ID_CLIENT_SECRET
|
||||||
|
msgid "Client Secret"
|
||||||
|
msgstr "Client Secret"
|
||||||
|
|
||||||
# TRANSLATION
|
# TRANSLATION
|
||||||
# LABEL/ID_CLOSE
|
# LABEL/ID_CLOSE
|
||||||
#: LABEL/ID_CLOSE
|
#: LABEL/ID_CLOSE
|
||||||
@@ -7064,8 +7076,8 @@ msgstr "The email was resend to"
|
|||||||
# TRANSLATION
|
# TRANSLATION
|
||||||
# LABEL/ID_EMAIL_SERVER_ACCOUNT_FROM
|
# LABEL/ID_EMAIL_SERVER_ACCOUNT_FROM
|
||||||
#: LABEL/ID_EMAIL_SERVER_ACCOUNT_FROM
|
#: LABEL/ID_EMAIL_SERVER_ACCOUNT_FROM
|
||||||
msgid "Sender Account"
|
msgid "From Account"
|
||||||
msgstr "Sender Account"
|
msgstr "From Account"
|
||||||
|
|
||||||
# TRANSLATION
|
# TRANSLATION
|
||||||
# LABEL/ID_EMAIL_SERVER_CONFIRM_DELETE
|
# LABEL/ID_EMAIL_SERVER_CONFIRM_DELETE
|
||||||
@@ -18701,6 +18713,12 @@ msgstr "SMTP (PHPMailer)"
|
|||||||
msgid "SMTP (OpenMail)"
|
msgid "SMTP (OpenMail)"
|
||||||
msgstr "SMTP (OpenMail)"
|
msgstr "SMTP (OpenMail)"
|
||||||
|
|
||||||
|
# TRANSLATION
|
||||||
|
# LABEL/ID_MESS_ENGINE_TYPE_4
|
||||||
|
#: LABEL/ID_MESS_ENGINE_TYPE_4
|
||||||
|
msgid "OAUTH (GMail OAuth)"
|
||||||
|
msgstr "OAUTH (GMail OAuth)"
|
||||||
|
|
||||||
# TRANSLATION
|
# TRANSLATION
|
||||||
# LABEL/ID_MESS_SEND_MAX_REQUIRED
|
# LABEL/ID_MESS_SEND_MAX_REQUIRED
|
||||||
#: LABEL/ID_MESS_SEND_MAX_REQUIRED
|
#: LABEL/ID_MESS_SEND_MAX_REQUIRED
|
||||||
|
|||||||
@@ -57530,6 +57530,8 @@ INSERT INTO TRANSLATION (TRN_CATEGORY,TRN_ID,TRN_LANG,TRN_VALUE,TRN_UPDATE_DATE
|
|||||||
( 'LABEL','ID_CLEAR_LOG','en','Clear Log','2014-01-15') ,
|
( 'LABEL','ID_CLEAR_LOG','en','Clear Log','2014-01-15') ,
|
||||||
( 'LABEL','ID_CLICK_LOCK','en','Click the lock to make changes.','2014-01-15') ,
|
( 'LABEL','ID_CLICK_LOCK','en','Click the lock to make changes.','2014-01-15') ,
|
||||||
( 'LABEL','ID_CLICK_UNLOCK','en','Click the lock to prevent further changes.','2014-01-15') ,
|
( 'LABEL','ID_CLICK_UNLOCK','en','Click the lock to prevent further changes.','2014-01-15') ,
|
||||||
|
( 'LABEL','ID_CLIENT_ID','en','Client ID','2019-11-14') ,
|
||||||
|
( 'LABEL','ID_CLIENT_SECRET','en','Client Secret','2019-11-14') ,
|
||||||
( 'LABEL','ID_CLOSE','en','Close','2014-01-15') ,
|
( 'LABEL','ID_CLOSE','en','Close','2014-01-15') ,
|
||||||
( 'LABEL','ID_CLOSE_EDITOR','en','Close Editor','2014-01-15') ,
|
( 'LABEL','ID_CLOSE_EDITOR','en','Close Editor','2014-01-15') ,
|
||||||
( 'LABEL','ID_CODE','en','Code','2014-01-15') ,
|
( 'LABEL','ID_CODE','en','Code','2014-01-15') ,
|
||||||
@@ -57997,7 +57999,7 @@ INSERT INTO TRANSLATION (TRN_CATEGORY,TRN_ID,TRN_LANG,TRN_VALUE,TRN_UPDATE_DATE
|
|||||||
( 'LABEL','ID_EMAIL_MORE_USER','en','This email is assigned to more than one user. Please contact your administrator.','2015-10-02') ,
|
( 'LABEL','ID_EMAIL_MORE_USER','en','This email is assigned to more than one user. Please contact your administrator.','2015-10-02') ,
|
||||||
( 'LABEL','ID_EMAIL_NOT_CORRESPONDS_TOKEN','en','The email does not corresponds to the token gmail user.','2015-10-02') ,
|
( 'LABEL','ID_EMAIL_NOT_CORRESPONDS_TOKEN','en','The email does not corresponds to the token gmail user.','2015-10-02') ,
|
||||||
( 'LABEL','ID_EMAIL_RESENT_TO','en','The email was resend to','2016-04-08') ,
|
( 'LABEL','ID_EMAIL_RESENT_TO','en','The email was resend to','2016-04-08') ,
|
||||||
( 'LABEL','ID_EMAIL_SERVER_ACCOUNT_FROM','en','Sender Account','2017-02-21') ,
|
( 'LABEL','ID_EMAIL_SERVER_ACCOUNT_FROM','en','From Account','2017-02-21') ,
|
||||||
( 'LABEL','ID_EMAIL_SERVER_CONFIRM_DELETE','en','Do you want to delete the Email Server?','2014-12-24') ,
|
( 'LABEL','ID_EMAIL_SERVER_CONFIRM_DELETE','en','Do you want to delete the Email Server?','2014-12-24') ,
|
||||||
( 'LABEL','ID_EMAIL_SERVER_DEFAULT','en','Default','2014-12-24') ,
|
( 'LABEL','ID_EMAIL_SERVER_DEFAULT','en','Default','2014-12-24') ,
|
||||||
( 'LABEL','ID_EMAIL_SERVER_DELETE_DATA','en','Delete data...','2014-12-24') ,
|
( 'LABEL','ID_EMAIL_SERVER_DELETE_DATA','en','Delete data...','2014-12-24') ,
|
||||||
@@ -59980,6 +59982,7 @@ INSERT INTO TRANSLATION (TRN_CATEGORY,TRN_ID,TRN_LANG,TRN_VALUE,TRN_UPDATE_DATE
|
|||||||
( 'LABEL','ID_MESS_ENGINE_TYPE_1','en','Mail (PHP)','2014-01-15') ,
|
( 'LABEL','ID_MESS_ENGINE_TYPE_1','en','Mail (PHP)','2014-01-15') ,
|
||||||
( 'LABEL','ID_MESS_ENGINE_TYPE_2','en','SMTP (PHPMailer)','2014-01-15') ,
|
( 'LABEL','ID_MESS_ENGINE_TYPE_2','en','SMTP (PHPMailer)','2014-01-15') ,
|
||||||
( 'LABEL','ID_MESS_ENGINE_TYPE_3','en','SMTP (OpenMail)','2014-01-15') ,
|
( 'LABEL','ID_MESS_ENGINE_TYPE_3','en','SMTP (OpenMail)','2014-01-15') ,
|
||||||
|
( 'LABEL','ID_MESS_ENGINE_TYPE_4','en','OAUTH (GMail OAuth)','2019-11-15') ,
|
||||||
( 'LABEL','ID_MESS_SEND_MAX_REQUIRED','en','The maximum number of attempts to send mail is a required field.','2014-01-15') ,
|
( 'LABEL','ID_MESS_SEND_MAX_REQUIRED','en','The maximum number of attempts to send mail is a required field.','2014-01-15') ,
|
||||||
( 'LABEL','ID_MESS_TEST_BODY','en','ProcessMaker Test Email','2014-01-15') ,
|
( 'LABEL','ID_MESS_TEST_BODY','en','ProcessMaker Test Email','2014-01-15') ,
|
||||||
( 'LABEL','ID_MESS_TEST_MESSAGE_ERROR_PHP_MAIL','en','Test message send failed, error:','2014-01-15') ,
|
( 'LABEL','ID_MESS_TEST_MESSAGE_ERROR_PHP_MAIL','en','Test message send failed, error:','2014-01-15') ,
|
||||||
|
|||||||
@@ -2784,6 +2784,9 @@ CREATE TABLE `EMAIL_SERVER`
|
|||||||
`MESS_TRY_SEND_INMEDIATLY` INTEGER default 0 NOT NULL,
|
`MESS_TRY_SEND_INMEDIATLY` INTEGER default 0 NOT NULL,
|
||||||
`MAIL_TO` VARCHAR(256) default '',
|
`MAIL_TO` VARCHAR(256) default '',
|
||||||
`MESS_DEFAULT` INTEGER default 0 NOT NULL,
|
`MESS_DEFAULT` INTEGER default 0 NOT NULL,
|
||||||
|
`OAUTH_CLIENT_ID` VARCHAR(512) default '' NOT NULL,
|
||||||
|
`OAUTH_CLIENT_SECRET` VARCHAR(512) default '' NOT NULL,
|
||||||
|
`OAUTH_REFRESH_TOKEN` VARCHAR(512) default '' NOT NULL,
|
||||||
PRIMARY KEY (`MESS_UID`)
|
PRIMARY KEY (`MESS_UID`)
|
||||||
)ENGINE=InnoDB DEFAULT CHARSET='utf8';
|
)ENGINE=InnoDB DEFAULT CHARSET='utf8';
|
||||||
#-----------------------------------------------------------------------------
|
#-----------------------------------------------------------------------------
|
||||||
|
|||||||
@@ -817,7 +817,10 @@ switch (($_POST['action']) ? $_POST['action'] : $_REQUEST['action']) {
|
|||||||
'MESS_ACCOUNT' => $aSetup['MESS_ACCOUNT'],
|
'MESS_ACCOUNT' => $aSetup['MESS_ACCOUNT'],
|
||||||
'MESS_PASSWORD' => $aSetup['MESS_PASSWORD'],
|
'MESS_PASSWORD' => $aSetup['MESS_PASSWORD'],
|
||||||
'SMTPSecure' => $aSetup['SMTPSecure'],
|
'SMTPSecure' => $aSetup['SMTPSecure'],
|
||||||
'SMTPAuth' => $aSetup['MESS_RAUTH']
|
'SMTPAuth' => $aSetup['MESS_RAUTH'],
|
||||||
|
'OAUTH_CLIENT_ID' => $aSetup['OAUTH_CLIENT_ID'],
|
||||||
|
'OAUTH_CLIENT_SECRET' => $aSetup['OAUTH_CLIENT_SECRET'],
|
||||||
|
'OAUTH_REFRESH_TOKEN' => $aSetup['OAUTH_REFRESH_TOKEN']
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
$oSpool->create(array('msg_uid' => $data['MSG_UID'], 'app_uid' => $data['APP_UID'], 'del_index' => $data['DEL_INDEX'], 'app_msg_type' => $data['APP_MSG_TYPE'], 'app_msg_subject' => $data['APP_MSG_SUBJECT'], 'app_msg_from' => $data['APP_MSG_FROM'], 'app_msg_to' => $data['APP_MSG_TO'], 'app_msg_body' => $data['APP_MSG_BODY'], 'app_msg_cc' => $data['APP_MSG_CC'], 'app_msg_bcc' => $data['APP_MSG_BCC'], 'app_msg_attach' => $data['APP_MSG_ATTACH'], 'app_msg_template' => $data['APP_MSG_TEMPLATE'], 'app_msg_status' => 'pending'
|
$oSpool->create(array('msg_uid' => $data['MSG_UID'], 'app_uid' => $data['APP_UID'], 'del_index' => $data['DEL_INDEX'], 'app_msg_type' => $data['APP_MSG_TYPE'], 'app_msg_subject' => $data['APP_MSG_SUBJECT'], 'app_msg_from' => $data['APP_MSG_FROM'], 'app_msg_to' => $data['APP_MSG_TO'], 'app_msg_body' => $data['APP_MSG_BODY'], 'app_msg_cc' => $data['APP_MSG_CC'], 'app_msg_bcc' => $data['APP_MSG_BCC'], 'app_msg_attach' => $data['APP_MSG_ATTACH'], 'app_msg_template' => $data['APP_MSG_TEMPLATE'], 'app_msg_status' => 'pending'
|
||||||
|
|||||||
@@ -1,27 +1,37 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Support\Facades\Cache;
|
||||||
|
|
||||||
global $RBAC;
|
global $RBAC;
|
||||||
|
|
||||||
$resultRbac = $RBAC->requirePermissions('PM_SETUP_EMAIL');
|
$resultRbac = $RBAC->requirePermissions('PM_SETUP_EMAIL');
|
||||||
if (!$resultRbac) {
|
if (!$resultRbac) {
|
||||||
G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels');
|
G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels');
|
||||||
G::header('location: ../login/login');
|
G::header('location: ../login/login');
|
||||||
die();
|
die();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$messageSent = "";
|
||||||
|
if (Cache::has('errorMessageIfNotAuthenticate')) {
|
||||||
|
$messageSent = Cache::get('errorMessageIfNotAuthenticate');
|
||||||
|
}
|
||||||
|
Cache::forget('errorMessageIfNotAuthenticate');
|
||||||
|
|
||||||
//Data
|
//Data
|
||||||
$configuration = new Configurations();
|
$configuration = new Configurations();
|
||||||
$arrayConfigPage = $configuration->getConfiguration("emailServerList", "pageSize", null, $_SESSION["USER_LOGGED"]);
|
$arrayConfigPage = $configuration->getConfiguration("emailServerList", "pageSize", null, $_SESSION["USER_LOGGED"]);
|
||||||
|
|
||||||
$arrayConfig = array();
|
$arrayConfig = array();
|
||||||
$arrayConfig["pageSize"] = (isset($arrayConfigPage["pageSize"]))? $arrayConfigPage["pageSize"] : 20;
|
$arrayConfig["pageSize"] = (isset($arrayConfigPage["pageSize"])) ? $arrayConfigPage["pageSize"] : 20;
|
||||||
|
|
||||||
$headPublisher = headPublisher::getSingleton();
|
$headPublisher = headPublisher::getSingleton();
|
||||||
$headPublisher->addContent("emailServer/emailServer"); //Adding a HTML file
|
$headPublisher->addContent("emailServer/emailServer"); //Adding a HTML file
|
||||||
$headPublisher->addExtJsScript("emailServer/emailServer", false); //Adding a JavaScript file
|
$headPublisher->addExtJsScript("emailServer/emailServer", false); //Adding a JavaScript file
|
||||||
$headPublisher->assign("CONFIG", $arrayConfig);
|
$headPublisher->assign("CONFIG", $arrayConfig);
|
||||||
|
$headPublisher->assign("errorMessageIfNotAuthenticate", $messageSent);
|
||||||
|
|
||||||
/*----------------------------------********---------------------------------*/
|
/*----------------------------------********---------------------------------*/
|
||||||
$headPublisher->assign("EMAILSERVER_LICENSED", (PMLicensedFeatures::getSingleton()->verifyfeature("zIKRGpDM3pjcHFsWGplNDN0dTl5bGN3UTNiOWdQU0E5Q05QTksrU1ladWQ0VT0="))? 1 : 0);
|
$headPublisher->assign("EMAILSERVER_LICENSED", (PMLicensedFeatures::getSingleton()->verifyfeature("zIKRGpDM3pjcHFsWGplNDN0dTl5bGN3UTNiOWdQU0E5Q05QTksrU1ladWQ0VT0=")) ? 1 : 0);
|
||||||
/*----------------------------------********---------------------------------*/
|
/*----------------------------------********---------------------------------*/
|
||||||
|
|
||||||
G::RenderPage("publish", "extJs");
|
G::RenderPage("publish", "extJs");
|
||||||
|
|||||||
@@ -1,11 +1,15 @@
|
|||||||
<?php
|
<?php
|
||||||
$option = (isset($_POST["option"]))? $_POST["option"] : "";
|
|
||||||
$response = array();
|
use ProcessMaker\Core\System;
|
||||||
|
use ProcessMaker\GmailOAuth\GmailOAuth;
|
||||||
|
|
||||||
|
$option = (isset($_POST["option"])) ? $_POST["option"] : "";
|
||||||
|
$response = [];
|
||||||
|
|
||||||
$RBAC->allows(basename(__FILE__), $option);
|
$RBAC->allows(basename(__FILE__), $option);
|
||||||
switch ($option) {
|
switch ($option) {
|
||||||
case "INS":
|
case "INS":
|
||||||
$arrayData = array();
|
$arrayData = [];
|
||||||
|
|
||||||
$server = "";
|
$server = "";
|
||||||
$port = "";
|
$port = "";
|
||||||
@@ -16,45 +20,45 @@ switch ($option) {
|
|||||||
$smtpSecure = "";
|
$smtpSecure = "";
|
||||||
|
|
||||||
$cboEmailEngine = $_POST["cboEmailEngine"];
|
$cboEmailEngine = $_POST["cboEmailEngine"];
|
||||||
$accountFrom = (isset($_POST["accountFrom"]))? $_POST["accountFrom"] : "";
|
$accountFrom = (isset($_POST["accountFrom"])) ? $_POST["accountFrom"] : "";
|
||||||
$fromName = $_POST["fromName"];
|
$fromName = $_POST["fromName"];
|
||||||
$fromMail = $_POST["fromMail"];
|
$fromMail = $_POST["fromMail"];
|
||||||
$sendTestMail = (int)($_POST["sendTestMail"]);
|
$sendTestMail = (int) ($_POST["sendTestMail"]);
|
||||||
$mailTo = ($sendTestMail == 1)? $_POST["mailTo"] : "";
|
$mailTo = ($sendTestMail == 1) ? $_POST["mailTo"] : "";
|
||||||
$emailServerDefault = (int)($_POST["emailServerDefault"]);
|
$emailServerDefault = (int) ($_POST["emailServerDefault"]);
|
||||||
|
|
||||||
if ($cboEmailEngine == "PHPMAILER") {
|
if ($cboEmailEngine == "PHPMAILER") {
|
||||||
$server = $_POST["server"];
|
$server = $_POST["server"];
|
||||||
$port = (int)($_POST["port"]);
|
$port = (int) ($_POST["port"]);
|
||||||
$reqAuthentication = (int)($_POST["reqAuthentication"]);
|
$reqAuthentication = (int) ($_POST["reqAuthentication"]);
|
||||||
$password = ($reqAuthentication == 1)? $_POST["password"] : "";
|
$password = ($reqAuthentication == 1) ? $_POST["password"] : "";
|
||||||
$smtpSecure = $_POST["smtpSecure"];
|
$smtpSecure = $_POST["smtpSecure"];
|
||||||
} elseif ($cboEmailEngine == "IMAP") {
|
} elseif ($cboEmailEngine == "IMAP") {
|
||||||
$server = $_POST["server"];
|
$server = $_POST["server"];
|
||||||
$port = (int)($_POST["port"]);
|
$port = (int) ($_POST["port"]);
|
||||||
$incomingServer = $_POST["incomingServer"];
|
$incomingServer = $_POST["incomingServer"];
|
||||||
$incomingPort = (int)($_POST["incomingPort"]);
|
$incomingPort = (int) ($_POST["incomingPort"]);
|
||||||
$reqAuthentication = (int)($_POST["reqAuthentication"]);
|
$reqAuthentication = (int) ($_POST["reqAuthentication"]);
|
||||||
$password = ($reqAuthentication == 1)? $_POST["password"] : "";
|
$password = ($reqAuthentication == 1) ? $_POST["password"] : "";
|
||||||
$smtpSecure = $_POST["smtpSecure"];
|
$smtpSecure = $_POST["smtpSecure"];
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
$arrayData = array(
|
$arrayData = array(
|
||||||
"MESS_ENGINE" => $cboEmailEngine,
|
"MESS_ENGINE" => $cboEmailEngine,
|
||||||
"MESS_SERVER" => $server,
|
"MESS_SERVER" => $server,
|
||||||
"MESS_PORT" => $port,
|
"MESS_PORT" => $port,
|
||||||
"MESS_INCOMING_SERVER" => $incomingServer,
|
"MESS_INCOMING_SERVER" => $incomingServer,
|
||||||
"MESS_INCOMING_PORT" => $incomingPort,
|
"MESS_INCOMING_PORT" => $incomingPort,
|
||||||
"MESS_RAUTH" => $reqAuthentication,
|
"MESS_RAUTH" => $reqAuthentication,
|
||||||
"MESS_ACCOUNT" => $accountFrom,
|
"MESS_ACCOUNT" => $accountFrom,
|
||||||
"MESS_PASSWORD" => $password,
|
"MESS_PASSWORD" => $password,
|
||||||
"MESS_FROM_MAIL" => $fromMail,
|
"MESS_FROM_MAIL" => $fromMail,
|
||||||
"MESS_FROM_NAME" => $fromName,
|
"MESS_FROM_NAME" => $fromName,
|
||||||
"SMTPSECURE" => $smtpSecure,
|
"SMTPSECURE" => $smtpSecure,
|
||||||
"MESS_TRY_SEND_INMEDIATLY" => $sendTestMail,
|
"MESS_TRY_SEND_INMEDIATLY" => $sendTestMail,
|
||||||
"MAIL_TO" => $mailTo,
|
"MAIL_TO" => $mailTo,
|
||||||
"MESS_DEFAULT" => $emailServerDefault
|
"MESS_DEFAULT" => $emailServerDefault
|
||||||
);
|
);
|
||||||
|
|
||||||
$emailSever = new \ProcessMaker\BusinessModel\EmailServer();
|
$emailSever = new \ProcessMaker\BusinessModel\EmailServer();
|
||||||
@@ -62,14 +66,14 @@ switch ($option) {
|
|||||||
$arrayEmailServerData = $emailSever->create($arrayData);
|
$arrayEmailServerData = $emailSever->create($arrayData);
|
||||||
|
|
||||||
$response["status"] = "OK";
|
$response["status"] = "OK";
|
||||||
$response["data"] = $arrayEmailServerData;
|
$response["data"] = $arrayEmailServerData;
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
$response["status"] = "ERROR";
|
$response["status"] = "ERROR";
|
||||||
$response["message"] = $e->getMessage();
|
$response["message"] = $e->getMessage();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case "UPD":
|
case "UPD":
|
||||||
$arrayData = array();
|
$arrayData = [];
|
||||||
|
|
||||||
$emailServerUid = $_POST["emailServerUid"];
|
$emailServerUid = $_POST["emailServerUid"];
|
||||||
|
|
||||||
@@ -82,45 +86,45 @@ switch ($option) {
|
|||||||
$smtpSecure = "";
|
$smtpSecure = "";
|
||||||
|
|
||||||
$cboEmailEngine = $_POST["cboEmailEngine"];
|
$cboEmailEngine = $_POST["cboEmailEngine"];
|
||||||
$accountFrom = (isset($_POST["accountFrom"]))? $_POST["accountFrom"] : "";
|
$accountFrom = (isset($_POST["accountFrom"])) ? $_POST["accountFrom"] : "";
|
||||||
$fromName = $_POST["fromName"];
|
$fromName = $_POST["fromName"];
|
||||||
$fromMail = $_POST["fromMail"];
|
$fromMail = $_POST["fromMail"];
|
||||||
$sendTestMail = (int)($_POST["sendTestMail"]);
|
$sendTestMail = (int) ($_POST["sendTestMail"]);
|
||||||
$mailTo = ($sendTestMail == 1)? $_POST["mailTo"] : "";
|
$mailTo = ($sendTestMail == 1) ? $_POST["mailTo"] : "";
|
||||||
$emailServerDefault = (int)($_POST["emailServerDefault"]);
|
$emailServerDefault = (int) ($_POST["emailServerDefault"]);
|
||||||
|
|
||||||
if ($cboEmailEngine == "PHPMAILER") {
|
if ($cboEmailEngine == "PHPMAILER") {
|
||||||
$server = $_POST["server"];
|
$server = $_POST["server"];
|
||||||
$port = (int)($_POST["port"]);
|
$port = (int) ($_POST["port"]);
|
||||||
$reqAuthentication = (int)($_POST["reqAuthentication"]);
|
$reqAuthentication = (int) ($_POST["reqAuthentication"]);
|
||||||
$password = ($reqAuthentication == 1)? $_POST["password"] : "";
|
$password = ($reqAuthentication == 1) ? $_POST["password"] : "";
|
||||||
$smtpSecure = $_POST["smtpSecure"];
|
$smtpSecure = $_POST["smtpSecure"];
|
||||||
} elseif ($cboEmailEngine == "IMAP") {
|
} elseif ($cboEmailEngine == "IMAP") {
|
||||||
$server = $_POST["server"];
|
$server = $_POST["server"];
|
||||||
$port = (int)($_POST["port"]);
|
$port = (int) ($_POST["port"]);
|
||||||
$incomingServer = $_POST["incomingServer"];
|
$incomingServer = $_POST["incomingServer"];
|
||||||
$incomingPort = (int)($_POST["incomingPort"]);
|
$incomingPort = (int) ($_POST["incomingPort"]);
|
||||||
$reqAuthentication = (int)($_POST["reqAuthentication"]);
|
$reqAuthentication = (int) ($_POST["reqAuthentication"]);
|
||||||
$password = ($reqAuthentication == 1)? $_POST["password"] : "";
|
$password = ($reqAuthentication == 1) ? $_POST["password"] : "";
|
||||||
$smtpSecure = $_POST["smtpSecure"];
|
$smtpSecure = $_POST["smtpSecure"];
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
$arrayData = array(
|
$arrayData = array(
|
||||||
"MESS_ENGINE" => $cboEmailEngine,
|
"MESS_ENGINE" => $cboEmailEngine,
|
||||||
"MESS_SERVER" => $server,
|
"MESS_SERVER" => $server,
|
||||||
"MESS_PORT" => $port,
|
"MESS_PORT" => $port,
|
||||||
"MESS_INCOMING_SERVER" => $incomingServer,
|
"MESS_INCOMING_SERVER" => $incomingServer,
|
||||||
"MESS_INCOMING_PORT" => $incomingPort,
|
"MESS_INCOMING_PORT" => $incomingPort,
|
||||||
"MESS_RAUTH" => $reqAuthentication,
|
"MESS_RAUTH" => $reqAuthentication,
|
||||||
"MESS_ACCOUNT" => $accountFrom,
|
"MESS_ACCOUNT" => $accountFrom,
|
||||||
"MESS_PASSWORD" => $password,
|
"MESS_PASSWORD" => $password,
|
||||||
"MESS_FROM_MAIL" => $fromMail,
|
"MESS_FROM_MAIL" => $fromMail,
|
||||||
"MESS_FROM_NAME" => $fromName,
|
"MESS_FROM_NAME" => $fromName,
|
||||||
"SMTPSECURE" => $smtpSecure,
|
"SMTPSECURE" => $smtpSecure,
|
||||||
"MESS_TRY_SEND_INMEDIATLY" => $sendTestMail,
|
"MESS_TRY_SEND_INMEDIATLY" => $sendTestMail,
|
||||||
"MAIL_TO" => $mailTo,
|
"MAIL_TO" => $mailTo,
|
||||||
"MESS_DEFAULT" => $emailServerDefault
|
"MESS_DEFAULT" => $emailServerDefault
|
||||||
);
|
);
|
||||||
|
|
||||||
$emailSever = new \ProcessMaker\BusinessModel\EmailServer();
|
$emailSever = new \ProcessMaker\BusinessModel\EmailServer();
|
||||||
@@ -128,9 +132,9 @@ switch ($option) {
|
|||||||
$arrayEmailServerData = $emailSever->update($emailServerUid, $arrayData);
|
$arrayEmailServerData = $emailSever->update($emailServerUid, $arrayData);
|
||||||
|
|
||||||
$response["status"] = "OK";
|
$response["status"] = "OK";
|
||||||
$response["data"] = $arrayEmailServerData;
|
$response["data"] = $arrayEmailServerData;
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
$response["status"] = "ERROR";
|
$response["status"] = "ERROR";
|
||||||
$response["message"] = $e->getMessage();
|
$response["message"] = $e->getMessage();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -145,7 +149,7 @@ switch ($option) {
|
|||||||
|
|
||||||
$response["status"] = "OK";
|
$response["status"] = "OK";
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
$response["status"] = "ERROR";
|
$response["status"] = "ERROR";
|
||||||
$response["message"] = $e->getMessage();
|
$response["message"] = $e->getMessage();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -153,27 +157,27 @@ switch ($option) {
|
|||||||
$pageSize = $_POST["pageSize"];
|
$pageSize = $_POST["pageSize"];
|
||||||
$search = $_POST["search"];
|
$search = $_POST["search"];
|
||||||
|
|
||||||
$sortField = (isset($_POST["sort"]))? $_POST["sort"]: "";
|
$sortField = (isset($_POST["sort"])) ? $_POST["sort"] : "";
|
||||||
$sortDir = (isset($_POST["dir"]))? $_POST["dir"]: "";
|
$sortDir = (isset($_POST["dir"])) ? $_POST["dir"] : "";
|
||||||
$start = (isset($_POST["start"]))? $_POST["start"]: 0;
|
$start = (isset($_POST["start"])) ? $_POST["start"] : 0;
|
||||||
$limit = (isset($_POST["limit"]))? $_POST["limit"]: $pageSize;
|
$limit = (isset($_POST["limit"])) ? $_POST["limit"] : $pageSize;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
$emailSever = new \ProcessMaker\BusinessModel\EmailServer();
|
$emailSever = new \ProcessMaker\BusinessModel\EmailServer();
|
||||||
|
|
||||||
$result = $emailSever->getEmailServers(array("filter" => $search), $sortField, $sortDir, $start, $limit);
|
$result = $emailSever->getEmailServers(array("filter" => $search), $sortField, $sortDir, $start, $limit);
|
||||||
|
|
||||||
$response["status"] = "OK";
|
$response["status"] = "OK";
|
||||||
$response["success"] = true;
|
$response["success"] = true;
|
||||||
$response["resultTotal"] = $result["total"];
|
$response["resultTotal"] = $result["total"];
|
||||||
$response["resultRoot"] = $result["data"];
|
$response["resultRoot"] = $result["data"];
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
$response["status"] = "ERROR";
|
$response["status"] = "ERROR";
|
||||||
$response["message"] = $e->getMessage();
|
$response["message"] = $e->getMessage();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case "TEST":
|
case "TEST":
|
||||||
$arrayData = array();
|
$arrayData = [];
|
||||||
|
|
||||||
$server = "";
|
$server = "";
|
||||||
$port = "";
|
$port = "";
|
||||||
@@ -184,48 +188,76 @@ switch ($option) {
|
|||||||
$smtpSecure = "";
|
$smtpSecure = "";
|
||||||
|
|
||||||
$cboEmailEngine = $_POST["cboEmailEngine"];
|
$cboEmailEngine = $_POST["cboEmailEngine"];
|
||||||
$accountFrom = (isset($_POST["accountFrom"]))? $_POST["accountFrom"] : "";
|
$accountFrom = (isset($_POST["accountFrom"])) ? $_POST["accountFrom"] : "";
|
||||||
$fromName = $_POST["fromName"];
|
$fromName = $_POST["fromName"];
|
||||||
$fromMail = $_POST["fromMail"];
|
$fromMail = $_POST["fromMail"];
|
||||||
$sendTestMail = (int)($_POST["sendTestMail"]);
|
$sendTestMail = (int) ($_POST["sendTestMail"]);
|
||||||
$mailTo = ($sendTestMail == 1)? $_POST["mailTo"] : "";
|
$mailTo = ($sendTestMail == 1) ? $_POST["mailTo"] : "";
|
||||||
$emailServerDefault = (int)($_POST["emailServerDefault"]);
|
$emailServerDefault = (int) ($_POST["emailServerDefault"]);
|
||||||
|
|
||||||
if ($cboEmailEngine == "PHPMAILER" || $cboEmailEngine == "IMAP") {
|
if ($cboEmailEngine == "PHPMAILER" || $cboEmailEngine == "IMAP") {
|
||||||
$server = $_POST["server"];
|
$server = $_POST["server"];
|
||||||
$port = (int)($_POST["port"]);
|
$port = (int) ($_POST["port"]);
|
||||||
$reqAuthentication = (int)($_POST["reqAuthentication"]);
|
$reqAuthentication = (int) ($_POST["reqAuthentication"]);
|
||||||
$password = ($reqAuthentication == 1)? $_POST["password"] : "";
|
$password = ($reqAuthentication == 1) ? $_POST["password"] : "";
|
||||||
$smtpSecure = $_POST["smtpSecure"];
|
$smtpSecure = $_POST["smtpSecure"];
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
$arrayData = array(
|
$arrayData = array(
|
||||||
"MESS_ENGINE" => $cboEmailEngine,
|
"MESS_ENGINE" => $cboEmailEngine,
|
||||||
"MESS_SERVER" => $server,
|
"MESS_SERVER" => $server,
|
||||||
"MESS_PORT" => $port,
|
"MESS_PORT" => $port,
|
||||||
"MESS_RAUTH" => $reqAuthentication,
|
"MESS_RAUTH" => $reqAuthentication,
|
||||||
"MESS_ACCOUNT" => $accountFrom,
|
"MESS_ACCOUNT" => $accountFrom,
|
||||||
"MESS_PASSWORD" => $password,
|
"MESS_PASSWORD" => $password,
|
||||||
"MESS_FROM_MAIL" => $fromMail,
|
"MESS_FROM_MAIL" => $fromMail,
|
||||||
"MESS_FROM_NAME" => $fromName,
|
"MESS_FROM_NAME" => $fromName,
|
||||||
"SMTPSECURE" => $smtpSecure,
|
"SMTPSECURE" => $smtpSecure,
|
||||||
"MESS_TRY_SEND_INMEDIATLY" => $sendTestMail,
|
"MESS_TRY_SEND_INMEDIATLY" => $sendTestMail,
|
||||||
"MAIL_TO" => $mailTo,
|
"MAIL_TO" => $mailTo,
|
||||||
"MESS_DEFAULT" => $emailServerDefault
|
"MESS_DEFAULT" => $emailServerDefault
|
||||||
);
|
);
|
||||||
|
|
||||||
$emailSever = new \ProcessMaker\BusinessModel\EmailServer();
|
$emailSever = new \ProcessMaker\BusinessModel\EmailServer();
|
||||||
|
|
||||||
$arrayEmailServerData = $emailSever->testConnection($arrayData);
|
$arrayEmailServerData = $emailSever->testConnection($arrayData);
|
||||||
|
|
||||||
$response["data"] = $arrayEmailServerData;
|
$response["data"] = $arrayEmailServerData;
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
$response["status"] = "ERROR";
|
$response["status"] = "ERROR";
|
||||||
$response["message"] = $e->getMessage();
|
$response["message"] = $e->getMessage();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case "createAuthUrl":
|
||||||
|
try {
|
||||||
|
$gmailOAuth = new GmailOAuth();
|
||||||
|
$gmailOAuth->setClientID($_POST['clientID']);
|
||||||
|
$gmailOAuth->setClientSecret($_POST['clientSecret']);
|
||||||
|
$gmailOAuth->setRedirectURI(System::getServerMainPath() . "/emailServer/emailServerGmailOAuth");
|
||||||
|
$gmailOAuth->setEmailEngine($_POST['emailEngine']);
|
||||||
|
$gmailOAuth->setFromAccount($_POST['fromAccount']);
|
||||||
|
$gmailOAuth->setSenderEmail($_POST['senderEmail']);
|
||||||
|
$gmailOAuth->setSenderName($_POST['senderName']);
|
||||||
|
$gmailOAuth->setSendTestMail((int) $_POST['sendTestMail']);
|
||||||
|
$gmailOAuth->setMailTo($_POST['mailTo']);
|
||||||
|
$gmailOAuth->setSetDefaultConfiguration((int) $_POST['setDefaultConfiguration']);
|
||||||
|
if (!empty($_POST['emailServerUid'])) {
|
||||||
|
$gmailOAuth->setEmailServerUid($_POST['emailServerUid']);
|
||||||
|
}
|
||||||
|
$client = $gmailOAuth->getGoogleClient();
|
||||||
|
$response = [
|
||||||
|
"status" => 200,
|
||||||
|
"data" => $client->createAuthUrl()
|
||||||
|
];
|
||||||
|
$_SESSION['gmailOAuth'] = $gmailOAuth;
|
||||||
|
} catch (Exception $e) {
|
||||||
|
$response = [
|
||||||
|
"status" => 500,
|
||||||
|
"message" => $e->getMessage()
|
||||||
|
];
|
||||||
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
echo G::json_encode($response);
|
echo G::json_encode($response);
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,41 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Support\Facades\Cache;
|
||||||
|
use ProcessMaker\Core\System;
|
||||||
|
use ProcessMaker\GmailOAuth\GmailOAuth;
|
||||||
|
|
||||||
|
Cache::forget('errorMessageIfNotAuthenticate');
|
||||||
|
try {
|
||||||
|
$header = "location:" . System::getServerMainPath() . "/setup/main?s=EMAIL_SERVER";
|
||||||
|
|
||||||
|
$validInput = empty($_GET['code']) || empty($_SESSION['gmailOAuth']) || !is_object($_SESSION['gmailOAuth']);
|
||||||
|
if ($validInput) {
|
||||||
|
G::header($header);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$RBAC->allows(basename(__FILE__), "code");
|
||||||
|
$gmailOAuth = $_SESSION['gmailOAuth'];
|
||||||
|
|
||||||
|
$googleClient = $gmailOAuth->getGoogleClient();
|
||||||
|
$result = $googleClient->authenticate($_GET['code']);
|
||||||
|
if (isset($result["error"])) {
|
||||||
|
Cache::put('errorMessageIfNotAuthenticate', G::json_decode($result["error"]), 2);
|
||||||
|
G::header($header);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$gmailOAuth->setRefreshToken($googleClient->getRefreshToken());
|
||||||
|
$gmailOAuth->saveEmailServer();
|
||||||
|
$gmailOAuth->sendTestMailWithPHPMailerOAuth();
|
||||||
|
} catch (Exception $e) {
|
||||||
|
/**
|
||||||
|
* The laravel cache is volatile in each session, you can specify the duration
|
||||||
|
* value in minutes for each session. We use 2 minutes, enough time to retrieve
|
||||||
|
* the error message if there is one.
|
||||||
|
*/
|
||||||
|
Cache::put('errorMessageIfNotAuthenticate', $e->getMessage(), 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
G::header($header);
|
||||||
|
return;
|
||||||
@@ -5,6 +5,7 @@ use AppMessage;
|
|||||||
use Bootstrap;
|
use Bootstrap;
|
||||||
use Exception;
|
use Exception;
|
||||||
use G;
|
use G;
|
||||||
|
use Illuminate\Support\Facades\Crypt;
|
||||||
use ProcessMaker\Core\System;
|
use ProcessMaker\Core\System;
|
||||||
use SpoolRun;
|
use SpoolRun;
|
||||||
use TemplatePower;
|
use TemplatePower;
|
||||||
@@ -14,7 +15,7 @@ class EmailServer
|
|||||||
{
|
{
|
||||||
private $arrayFieldDefinition = array(
|
private $arrayFieldDefinition = array(
|
||||||
"MESS_UID" => array("type" => "string", "required" => false, "empty" => false, "defaultValues" => array(), "fieldNameAux" => "emailServerUid"),
|
"MESS_UID" => array("type" => "string", "required" => false, "empty" => false, "defaultValues" => array(), "fieldNameAux" => "emailServerUid"),
|
||||||
"MESS_ENGINE" => array("type" => "string", "required" => true, "empty" => false, "defaultValues" => array("PHPMAILER", "MAIL", "IMAP"), "fieldNameAux" => "emailServerEngine"),
|
"MESS_ENGINE" => array("type" => "string", "required" => true, "empty" => false, "defaultValues" => array("PHPMAILER", "MAIL", "IMAP", "GMAILAPI"), "fieldNameAux" => "emailServerEngine"),
|
||||||
"MESS_SERVER" => array("type" => "string", "required" => false, "empty" => true, "defaultValues" => array(), "fieldNameAux" => "emailServerServer"),
|
"MESS_SERVER" => array("type" => "string", "required" => false, "empty" => true, "defaultValues" => array(), "fieldNameAux" => "emailServerServer"),
|
||||||
"MESS_PORT" => array("type" => "int", "required" => false, "empty" => true, "defaultValues" => array(), "fieldNameAux" => "emailServerPort"),
|
"MESS_PORT" => array("type" => "int", "required" => false, "empty" => true, "defaultValues" => array(), "fieldNameAux" => "emailServerPort"),
|
||||||
"MESS_INCOMING_SERVER" => array("type" => "string", "required" => false, "empty" => true, "defaultValues" => array(), "fieldNameAux" => "emailServerIncomingServer"),
|
"MESS_INCOMING_SERVER" => array("type" => "string", "required" => false, "empty" => true, "defaultValues" => array(), "fieldNameAux" => "emailServerIncomingServer"),
|
||||||
@@ -809,6 +810,13 @@ class EmailServer
|
|||||||
$arrayData["MESS_PASSWORD"] = G::encrypt($arrayData["MESS_PASSWORD"], "EMAILENCRYPT");
|
$arrayData["MESS_PASSWORD"] = G::encrypt($arrayData["MESS_PASSWORD"], "EMAILENCRYPT");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$arrayData["OAUTH_CLIENT_ID"] = !empty($arrayData["OAUTH_CLIENT_ID"]) ?
|
||||||
|
Crypt::encryptString($arrayData["OAUTH_CLIENT_ID"]) : "";
|
||||||
|
$arrayData["OAUTH_CLIENT_SECRET"] = !empty($arrayData["OAUTH_CLIENT_SECRET"]) ?
|
||||||
|
Crypt::encryptString($arrayData["OAUTH_CLIENT_SECRET"]) : "";
|
||||||
|
$arrayData["OAUTH_REFRESH_TOKEN"] = !empty($arrayData["OAUTH_REFRESH_TOKEN"]) ?
|
||||||
|
Crypt::encryptString($arrayData["OAUTH_REFRESH_TOKEN"]) : "";
|
||||||
|
|
||||||
$emailServer->fromArray($arrayData, \BasePeer::TYPE_FIELDNAME);
|
$emailServer->fromArray($arrayData, \BasePeer::TYPE_FIELDNAME);
|
||||||
|
|
||||||
$emailServerUid = \ProcessMaker\Util\Common::generateUID();
|
$emailServerUid = \ProcessMaker\Util\Common::generateUID();
|
||||||
@@ -981,6 +989,13 @@ class EmailServer
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$arrayData["OAUTH_CLIENT_ID"] = !empty($arrayData["OAUTH_CLIENT_ID"]) ?
|
||||||
|
Crypt::encryptString($arrayData["OAUTH_CLIENT_ID"]) : "";
|
||||||
|
$arrayData["OAUTH_CLIENT_SECRET"] = !empty($arrayData["OAUTH_CLIENT_SECRET"]) ?
|
||||||
|
Crypt::encryptString($arrayData["OAUTH_CLIENT_SECRET"]) : "";
|
||||||
|
$arrayData["OAUTH_REFRESH_TOKEN"] = !empty($arrayData["OAUTH_REFRESH_TOKEN"]) ?
|
||||||
|
Crypt::encryptString($arrayData["OAUTH_REFRESH_TOKEN"]) : "";
|
||||||
|
|
||||||
$emailServer->fromArray($arrayData, \BasePeer::TYPE_FIELDNAME);
|
$emailServer->fromArray($arrayData, \BasePeer::TYPE_FIELDNAME);
|
||||||
|
|
||||||
if ($emailServer->validate()) {
|
if ($emailServer->validate()) {
|
||||||
@@ -1106,6 +1121,9 @@ class EmailServer
|
|||||||
$criteria->addSelectColumn(\EmailServerPeer::MESS_TRY_SEND_INMEDIATLY);
|
$criteria->addSelectColumn(\EmailServerPeer::MESS_TRY_SEND_INMEDIATLY);
|
||||||
$criteria->addSelectColumn(\EmailServerPeer::MAIL_TO);
|
$criteria->addSelectColumn(\EmailServerPeer::MAIL_TO);
|
||||||
$criteria->addSelectColumn(\EmailServerPeer::MESS_DEFAULT);
|
$criteria->addSelectColumn(\EmailServerPeer::MESS_DEFAULT);
|
||||||
|
$criteria->addSelectColumn(\EmailServerPeer::OAUTH_CLIENT_ID);
|
||||||
|
$criteria->addSelectColumn(\EmailServerPeer::OAUTH_CLIENT_SECRET);
|
||||||
|
$criteria->addSelectColumn(\EmailServerPeer::OAUTH_REFRESH_TOKEN);
|
||||||
|
|
||||||
return $criteria;
|
return $criteria;
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
@@ -1124,7 +1142,7 @@ class EmailServer
|
|||||||
public function getEmailServerDataFromRecord(array $record)
|
public function getEmailServerDataFromRecord(array $record)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
return array(
|
return [
|
||||||
$this->getFieldNameByFormatFieldName("MESS_UID") => $record["MESS_UID"],
|
$this->getFieldNameByFormatFieldName("MESS_UID") => $record["MESS_UID"],
|
||||||
$this->getFieldNameByFormatFieldName("MESS_ENGINE") => $record["MESS_ENGINE"],
|
$this->getFieldNameByFormatFieldName("MESS_ENGINE") => $record["MESS_ENGINE"],
|
||||||
$this->getFieldNameByFormatFieldName("MESS_SERVER") => $record["MESS_SERVER"],
|
$this->getFieldNameByFormatFieldName("MESS_SERVER") => $record["MESS_SERVER"],
|
||||||
@@ -1143,8 +1161,11 @@ class EmailServer
|
|||||||
$this->getFieldNameByFormatFieldName("MESS_BACKGROUND") => '',
|
$this->getFieldNameByFormatFieldName("MESS_BACKGROUND") => '',
|
||||||
$this->getFieldNameByFormatFieldName("MESS_PASSWORD_HIDDEN") => '',
|
$this->getFieldNameByFormatFieldName("MESS_PASSWORD_HIDDEN") => '',
|
||||||
$this->getFieldNameByFormatFieldName("MESS_EXECUTE_EVERY") => '',
|
$this->getFieldNameByFormatFieldName("MESS_EXECUTE_EVERY") => '',
|
||||||
$this->getFieldNameByFormatFieldName("MESS_SEND_MAX") => ''
|
$this->getFieldNameByFormatFieldName("MESS_SEND_MAX") => '',
|
||||||
);
|
$this->getFieldNameByFormatFieldName("OAUTH_CLIENT_ID") => $record["OAUTH_CLIENT_ID"],
|
||||||
|
$this->getFieldNameByFormatFieldName("OAUTH_CLIENT_SECRET") => $record["OAUTH_CLIENT_SECRET"],
|
||||||
|
$this->getFieldNameByFormatFieldName("OAUTH_REFRESH_TOKEN") => $record["OAUTH_REFRESH_TOKEN"]
|
||||||
|
];
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
throw $e;
|
throw $e;
|
||||||
}
|
}
|
||||||
@@ -1191,6 +1212,12 @@ class EmailServer
|
|||||||
$arrayData["MESS_PASSWORD_HIDDEN"] = '';
|
$arrayData["MESS_PASSWORD_HIDDEN"] = '';
|
||||||
$arrayData["MESS_EXECUTE_EVERY"] = '';
|
$arrayData["MESS_EXECUTE_EVERY"] = '';
|
||||||
$arrayData["MESS_SEND_MAX"] = '';
|
$arrayData["MESS_SEND_MAX"] = '';
|
||||||
|
$arrayData["OAUTH_CLIENT_ID"] = !empty($row["OAUTH_CLIENT_ID"]) ?
|
||||||
|
Crypt::decryptString($row["OAUTH_CLIENT_ID"]) : '';
|
||||||
|
$arrayData["OAUTH_CLIENT_SECRET"] = !empty($row["OAUTH_CLIENT_SECRET"]) ?
|
||||||
|
Crypt::decryptString($row["OAUTH_CLIENT_SECRET"]) : '';
|
||||||
|
$arrayData["OAUTH_REFRESH_TOKEN"] = !empty($row["OAUTH_REFRESH_TOKEN"]) ?
|
||||||
|
Crypt::decryptString($row["OAUTH_REFRESH_TOKEN"]) : '';
|
||||||
}
|
}
|
||||||
|
|
||||||
//Return
|
//Return
|
||||||
@@ -1287,6 +1314,9 @@ class EmailServer
|
|||||||
|
|
||||||
while ($rsCriteria->next()) {
|
while ($rsCriteria->next()) {
|
||||||
$row = $rsCriteria->getRow();
|
$row = $rsCriteria->getRow();
|
||||||
|
$row['OAUTH_CLIENT_ID'] = !empty($row['OAUTH_CLIENT_ID']) ? Crypt::decryptString($row['OAUTH_CLIENT_ID']) : '';
|
||||||
|
$row['OAUTH_CLIENT_SECRET'] = !empty($row['OAUTH_CLIENT_SECRET']) ? Crypt::decryptString($row['OAUTH_CLIENT_SECRET']) : '';
|
||||||
|
$row['OAUTH_REFRESH_TOKEN'] = !empty($row['OAUTH_REFRESH_TOKEN']) ? Crypt::decryptString($row['OAUTH_REFRESH_TOKEN']) : '';
|
||||||
$arrayEmailServer[] = $this->getEmailServerDataFromRecord($row);
|
$arrayEmailServer[] = $this->getEmailServerDataFromRecord($row);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1340,6 +1370,9 @@ class EmailServer
|
|||||||
$row["MESS_PASSWORD_HIDDEN"] = '';
|
$row["MESS_PASSWORD_HIDDEN"] = '';
|
||||||
$row["MESS_EXECUTE_EVERY"] = '';
|
$row["MESS_EXECUTE_EVERY"] = '';
|
||||||
$row["MESS_SEND_MAX"] = '';
|
$row["MESS_SEND_MAX"] = '';
|
||||||
|
$row["OAUTH_CLIENT_ID"] = !empty($row["OAUTH_CLIENT_ID"]) ? Crypt::decryptString($row["OAUTH_CLIENT_ID"]) : '';
|
||||||
|
$row["OAUTH_CLIENT_SECRET"] = !empty($row["OAUTH_CLIENT_SECRET"]) ? Crypt::decryptString($row["OAUTH_CLIENT_SECRET"]) : '';
|
||||||
|
$row["OAUTH_REFRESH_TOKEN"] = !empty($row["OAUTH_REFRESH_TOKEN"]) ? Crypt::decryptString($row["OAUTH_REFRESH_TOKEN"]) : '';
|
||||||
|
|
||||||
//Return
|
//Return
|
||||||
return (!$flagGetRecord)? $this->getEmailServerDataFromRecord($row) : $row;
|
return (!$flagGetRecord)? $this->getEmailServerDataFromRecord($row) : $row;
|
||||||
|
|||||||
@@ -1016,7 +1016,10 @@ class System
|
|||||||
"MESS_BACKGROUND" => "",
|
"MESS_BACKGROUND" => "",
|
||||||
"MESS_PASSWORD_HIDDEN" => "",
|
"MESS_PASSWORD_HIDDEN" => "",
|
||||||
"MESS_EXECUTE_EVERY" => "",
|
"MESS_EXECUTE_EVERY" => "",
|
||||||
"MESS_SEND_MAX" => ""
|
"MESS_SEND_MAX" => "",
|
||||||
|
"OAUTH_CLIENT_ID" => $arrayEmailServerDefault["OAUTH_CLIENT_ID"],
|
||||||
|
"OAUTH_CLIENT_SECRET" => $arrayEmailServerDefault["OAUTH_CLIENT_SECRET"],
|
||||||
|
"OAUTH_REFRESH_TOKEN" => $arrayEmailServerDefault["OAUTH_REFRESH_TOKEN"]
|
||||||
);
|
);
|
||||||
|
|
||||||
//Return
|
//Return
|
||||||
|
|||||||
482
workflow/engine/src/ProcessMaker/GmailOAuth/GmailOAuth.php
Normal file
482
workflow/engine/src/ProcessMaker/GmailOAuth/GmailOAuth.php
Normal file
@@ -0,0 +1,482 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace ProcessMaker\GmailOAuth;
|
||||||
|
|
||||||
|
use AppMessage;
|
||||||
|
use Bootstrap;
|
||||||
|
use G;
|
||||||
|
use Google_Client;
|
||||||
|
use Google_Service_Gmail;
|
||||||
|
use Google_Service_Gmail_Message;
|
||||||
|
use PHPMailerOAuth;
|
||||||
|
use ProcessMaker\BusinessModel\EmailServer;
|
||||||
|
use ProcessMaker\Core\System;
|
||||||
|
use TemplatePower;
|
||||||
|
use WsBase;
|
||||||
|
|
||||||
|
class GmailOAuth
|
||||||
|
{
|
||||||
|
private $emailServerUid;
|
||||||
|
private $emailEngine;
|
||||||
|
private $clientID;
|
||||||
|
private $clientSecret;
|
||||||
|
private $fromAccount;
|
||||||
|
private $senderEmail;
|
||||||
|
private $senderName;
|
||||||
|
private $sendTestMail;
|
||||||
|
private $mailTo;
|
||||||
|
private $setDefaultConfiguration;
|
||||||
|
private $redirectURI;
|
||||||
|
private $refreshToken;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set $emailServerUid property.
|
||||||
|
* @param string $emailServerUid
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function setEmailServerUid($emailServerUid): void
|
||||||
|
{
|
||||||
|
$this->emailServerUid = $emailServerUid;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set $clientID property.
|
||||||
|
* @param string $clientID
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function setClientID($clientID): void
|
||||||
|
{
|
||||||
|
$this->clientID = $clientID;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set $clientSecret property.
|
||||||
|
* @param string $clientSecret
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function setClientSecret($clientSecret): void
|
||||||
|
{
|
||||||
|
$this->clientSecret = $clientSecret;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set $redirectURI property.
|
||||||
|
* @param string $redirectURI
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function setRedirectURI($redirectURI): void
|
||||||
|
{
|
||||||
|
$this->redirectURI = $redirectURI;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set $emailEngine property.
|
||||||
|
* @param string $emailEngine
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function setEmailEngine($emailEngine): void
|
||||||
|
{
|
||||||
|
$this->emailEngine = $emailEngine;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set $fromAccount property.
|
||||||
|
* @param string $fromAccount
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function setFromAccount($fromAccount): void
|
||||||
|
{
|
||||||
|
$this->fromAccount = $fromAccount;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set $senderEmail property.
|
||||||
|
* @param string $senderEmail
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function setSenderEmail($senderEmail): void
|
||||||
|
{
|
||||||
|
$this->senderEmail = $senderEmail;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set $senderName property.
|
||||||
|
* @param string $senderName
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function setSenderName($senderName): void
|
||||||
|
{
|
||||||
|
$this->senderName = $senderName;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set $sendTestMail property.
|
||||||
|
* @param string $sendTestMail
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function setSendTestMail($sendTestMail): void
|
||||||
|
{
|
||||||
|
$this->sendTestMail = $sendTestMail;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set $mailTo property.
|
||||||
|
* @param string $mailTo
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function setMailTo($mailTo): void
|
||||||
|
{
|
||||||
|
$this->mailTo = $mailTo;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set $setDefaultConfiguration property.
|
||||||
|
* @param string $setDefaultConfiguration
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function setSetDefaultConfiguration($setDefaultConfiguration): void
|
||||||
|
{
|
||||||
|
$this->setDefaultConfiguration = $setDefaultConfiguration;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set $refreshToken property.
|
||||||
|
* @param string $refreshToken
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function setRefreshToken($refreshToken): void
|
||||||
|
{
|
||||||
|
$this->refreshToken = $refreshToken;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get $emailServerUid property.
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getEmailServerUid()
|
||||||
|
{
|
||||||
|
return $this->emailServerUid;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get $clientID property.
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getClientID()
|
||||||
|
{
|
||||||
|
return $this->clientID;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get $clientSecret property.
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getClientSecret()
|
||||||
|
{
|
||||||
|
return $this->clientSecret;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get $redirectURI property.
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getRedirectURI()
|
||||||
|
{
|
||||||
|
return $this->redirectURI;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get $emailEngine property.
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getEmailEngine()
|
||||||
|
{
|
||||||
|
return $this->emailEngine;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get $fromAccount property.
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getFromAccount()
|
||||||
|
{
|
||||||
|
return $this->fromAccount;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get $senderEmail property.
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getSenderEmail()
|
||||||
|
{
|
||||||
|
return $this->senderEmail;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get $senderName property.
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getSenderName()
|
||||||
|
{
|
||||||
|
return $this->senderName;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get $sendTestMail property.
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getSendTestMail()
|
||||||
|
{
|
||||||
|
return $this->sendTestMail;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get $mailTo property.
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getMailTo()
|
||||||
|
{
|
||||||
|
return $this->mailTo;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get $defaultConfiguration property.
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getSetDefaultConfiguration()
|
||||||
|
{
|
||||||
|
return $this->setDefaultConfiguration;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get $refreshToken property.
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getRefreshToken()
|
||||||
|
{
|
||||||
|
return $this->refreshToken;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get a Google_Client object, this may vary depending on the service provider.
|
||||||
|
* @return Google_Client
|
||||||
|
*/
|
||||||
|
public function getGoogleClient(): Google_Client
|
||||||
|
{
|
||||||
|
$googleClient = new Google_Client();
|
||||||
|
$googleClient->setClientId($this->clientID);
|
||||||
|
$googleClient->setClientSecret($this->clientSecret);
|
||||||
|
$googleClient->setRedirectUri($this->redirectURI);
|
||||||
|
$googleClient->setAccessType('offline');
|
||||||
|
$googleClient->setApprovalPrompt('force');
|
||||||
|
$googleClient->addScope(Google_Service_Gmail::MAIL_GOOGLE_COM);
|
||||||
|
return $googleClient;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Save the data in the EmailServer table, and return the stored fields.
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function saveEmailServer(): array
|
||||||
|
{
|
||||||
|
$result = [];
|
||||||
|
$data = [
|
||||||
|
"MESS_ENGINE" => $this->emailEngine,
|
||||||
|
"OAUTH_CLIENT_ID" => $this->clientID,
|
||||||
|
"OAUTH_CLIENT_SECRET" => $this->clientSecret,
|
||||||
|
"OAUTH_REFRESH_TOKEN" => $this->refreshToken,
|
||||||
|
"MESS_ACCOUNT" => $this->fromAccount,
|
||||||
|
"MESS_FROM_MAIL" => $this->senderEmail,
|
||||||
|
"MESS_FROM_NAME" => $this->senderName,
|
||||||
|
"MESS_TRY_SEND_INMEDIATLY" => $this->sendTestMail,
|
||||||
|
"MAIL_TO" => $this->mailTo,
|
||||||
|
"MESS_DEFAULT" => $this->setDefaultConfiguration,
|
||||||
|
"MESS_RAUTH" => 1,
|
||||||
|
"SMTPSECURE" => "No",
|
||||||
|
"MESS_PASSWORD" => "",
|
||||||
|
"MESS_SERVER" => "smtp.gmail.com",
|
||||||
|
"MESS_PORT" => "",
|
||||||
|
"MESS_PASSWORD" => "",
|
||||||
|
"MESS_INCOMING_SERVER" => "",
|
||||||
|
"MESS_INCOMING_PORT" => ""
|
||||||
|
];
|
||||||
|
$emailServer = new EmailServer();
|
||||||
|
if (empty($this->emailServerUid)) {
|
||||||
|
$result = $emailServer->create($data);
|
||||||
|
} else {
|
||||||
|
$result = $emailServer->update($this->emailServerUid, $data);
|
||||||
|
}
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This sends a test email with Google_Service_Gmail_Message object, as long
|
||||||
|
* as the test flag is activated.
|
||||||
|
* @return Google_Service_Gmail_Message
|
||||||
|
*/
|
||||||
|
public function sendTestEmailWithGoogleServiceGmail(): Google_Service_Gmail_Message
|
||||||
|
{
|
||||||
|
$googleServiceGmailMessage = new Google_Service_Gmail_Message();
|
||||||
|
if (!filter_var($this->fromAccount, FILTER_VALIDATE_EMAIL)) {
|
||||||
|
return $googleServiceGmailMessage;
|
||||||
|
}
|
||||||
|
if (!filter_var($this->mailTo, FILTER_VALIDATE_EMAIL)) {
|
||||||
|
return $googleServiceGmailMessage;
|
||||||
|
}
|
||||||
|
if ($this->sendTestMail === 0) {
|
||||||
|
return $googleServiceGmailMessage;
|
||||||
|
}
|
||||||
|
|
||||||
|
$googleClient = $this->getGoogleClient();
|
||||||
|
$googleClient->refreshToken($this->getRefreshToken());
|
||||||
|
if ($googleClient->isAccessTokenExpired()) {
|
||||||
|
$newAccessToken = $googleClient->getAccessToken();
|
||||||
|
$googleClient->setAccessToken($newAccessToken);
|
||||||
|
}
|
||||||
|
|
||||||
|
$raw = $this->getRawMessage();
|
||||||
|
$googleServiceGmailMessage->setRaw($raw);
|
||||||
|
|
||||||
|
$service = new Google_Service_Gmail($googleClient);
|
||||||
|
$result = $service->users_messages->send("me", $googleServiceGmailMessage);
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get message body.
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getMessageBody(): string
|
||||||
|
{
|
||||||
|
$templateTower = new TemplatePower(PATH_TPL . "admin" . PATH_SEP . "email.tpl");
|
||||||
|
$templateTower->prepare();
|
||||||
|
$templateTower->assign("server", System::getServerHostname());
|
||||||
|
$templateTower->assign("date", date("H:i:s"));
|
||||||
|
$templateTower->assign("ver", System::getVersion());
|
||||||
|
$templateTower->assign("engine", G::LoadTranslation("ID_MESS_ENGINE_TYPE_4"));
|
||||||
|
$templateTower->assign("msg", G::LoadTranslation("ID_MESS_TEST_BODY"));
|
||||||
|
$outputContent = $templateTower->getOutputContent();
|
||||||
|
return $outputContent;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get a plain text of the test message.
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getRawMessage(): string
|
||||||
|
{
|
||||||
|
$outputContent = $this->getMessageBody();
|
||||||
|
|
||||||
|
$strRawMessage = ""
|
||||||
|
. "From: Email <{$this->fromAccount}> \r\n"
|
||||||
|
. "To: <{$this->mailTo}>\r\n"
|
||||||
|
. "Subject: =?utf-8?B?" . base64_encode(G::LoadTranslation("ID_MESS_TEST_SUBJECT")) . "?=\r\n"
|
||||||
|
. "MIME-Version: 1.0\r\n"
|
||||||
|
. "Content-Type: text/html; charset=utf-8\r\n"
|
||||||
|
. "Content-Transfer-Encoding: quoted-printable\r\n\r\n"
|
||||||
|
. "{$outputContent}\r\n";
|
||||||
|
|
||||||
|
$raw = rtrim(strtr(base64_encode($strRawMessage), '+/', '-_'), '=');
|
||||||
|
return $raw;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This sends a test email with PHPMailerOAuth object, as long
|
||||||
|
* as the test flag is activated.
|
||||||
|
* @return PHPMailerOAuth
|
||||||
|
*/
|
||||||
|
public function sendTestMailWithPHPMailerOAuth(): PHPMailerOAuth
|
||||||
|
{
|
||||||
|
$phpMailerOAuth = new PHPMailerOAuth();
|
||||||
|
if (!filter_var($this->fromAccount, FILTER_VALIDATE_EMAIL)) {
|
||||||
|
return $phpMailerOAuth;
|
||||||
|
}
|
||||||
|
if (!filter_var($this->mailTo, FILTER_VALIDATE_EMAIL)) {
|
||||||
|
return $phpMailerOAuth;
|
||||||
|
}
|
||||||
|
if ($this->sendTestMail === 0) {
|
||||||
|
return $phpMailerOAuth;
|
||||||
|
}
|
||||||
|
$senderEmail = $this->senderEmail;
|
||||||
|
if (!filter_var($senderEmail, FILTER_VALIDATE_EMAIL)) {
|
||||||
|
$senderEmail = $this->fromAccount;
|
||||||
|
}
|
||||||
|
if (empty($this->senderName)) {
|
||||||
|
$this->senderName = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
$phpMailerOAuth->isHTML(true);
|
||||||
|
$phpMailerOAuth->isSMTP();
|
||||||
|
$phpMailerOAuth->Host = 'smtp.gmail.com';
|
||||||
|
$phpMailerOAuth->SMTPAuth = true;
|
||||||
|
$phpMailerOAuth->AuthType = 'XOAUTH2';
|
||||||
|
$phpMailerOAuth->oauthUserEmail = $this->fromAccount;
|
||||||
|
$phpMailerOAuth->oauthClientId = $this->clientID;
|
||||||
|
$phpMailerOAuth->oauthClientSecret = $this->clientSecret;
|
||||||
|
$phpMailerOAuth->oauthRefreshToken = $this->refreshToken;
|
||||||
|
$phpMailerOAuth->SetFrom($senderEmail, $this->senderName);
|
||||||
|
$phpMailerOAuth->Subject = G::LoadTranslation("ID_MESS_TEST_SUBJECT");
|
||||||
|
$phpMailerOAuth->Body = utf8_encode($this->getMessageBody());
|
||||||
|
$phpMailerOAuth->AddAddress($this->mailTo);
|
||||||
|
$status = $phpMailerOAuth->Send();
|
||||||
|
$this->saveIntoStandardLogs($status ? "sent" : "pending");
|
||||||
|
$this->saveIntoAppMessage($status ? "sent" : "pending");
|
||||||
|
return $phpMailerOAuth;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Register into APP_MESSAGE table.
|
||||||
|
* @param string $status
|
||||||
|
*/
|
||||||
|
public function saveIntoAppMessage(string $status = "")
|
||||||
|
{
|
||||||
|
$appMsgUid = G::generateUniqueID();
|
||||||
|
$spool = new AppMessage();
|
||||||
|
$spool->setAppMsgUid($appMsgUid);
|
||||||
|
$spool->setMsgUid("");
|
||||||
|
$spool->setAppUid("");
|
||||||
|
$spool->setDelIndex(0);
|
||||||
|
$spool->setAppMsgType(WsBase::MESSAGE_TYPE_TEST_EMAIL);
|
||||||
|
$spool->setAppMsgTypeId(isset(AppMessage::$app_msg_type_values[WsBase::MESSAGE_TYPE_TEST_EMAIL]) ? AppMessage::$app_msg_type_values[WsBase::MESSAGE_TYPE_TEST_EMAIL] : 0);
|
||||||
|
$spool->setAppMsgSubject(G::LoadTranslation("ID_MESS_TEST_SUBJECT"));
|
||||||
|
$spool->setAppMsgFrom($this->fromAccount);
|
||||||
|
$spool->setAppMsgTo($this->mailTo);
|
||||||
|
$spool->setAppMsgBody(utf8_encode($this->getMessageBody()));
|
||||||
|
$spool->setAppMsgDate(date('Y-m-d H:i:s'));
|
||||||
|
$spool->setAppMsgCc("");
|
||||||
|
$spool->setAppMsgBcc("");
|
||||||
|
$spool->setappMsgAttach(serialize([""]));
|
||||||
|
$spool->setAppMsgTemplate("");
|
||||||
|
$spool->setAppMsgStatus($status);
|
||||||
|
$spool->setAppMsgStatusId(AppMessage::$app_msg_status_values[$status] ? AppMessage::$app_msg_status_values[$status] : 0);
|
||||||
|
$spool->setAppMsgSendDate(date('Y-m-d H:i:s'));
|
||||||
|
$spool->setAppMsgShowMessage(1);
|
||||||
|
$spool->setAppMsgError("");
|
||||||
|
$spool->setAppNumber(0);
|
||||||
|
$spool->setTasId(0);
|
||||||
|
$spool->setProId(0);
|
||||||
|
$spool->save();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Register into standard logs.
|
||||||
|
* @param string $status
|
||||||
|
*/
|
||||||
|
public function saveIntoStandardLogs(string $status = "")
|
||||||
|
{
|
||||||
|
$channel = "Test Email Servers Configuration";
|
||||||
|
$severity = 200; //INFO
|
||||||
|
$message = "Email Server test has been sent";
|
||||||
|
$context = [
|
||||||
|
"emailServerUid" => $this->emailServerUid,
|
||||||
|
"emailEngine" => $this->emailEngine,
|
||||||
|
"from" => $this->fromAccount,
|
||||||
|
"senderAccount" => $this->mailTo,
|
||||||
|
"senderEmail" => $this->senderEmail,
|
||||||
|
"senderName" => $this->senderName,
|
||||||
|
"status" => $status
|
||||||
|
];
|
||||||
|
$workspace = config("system.workspace");
|
||||||
|
Bootstrap::registerMonolog($channel, $severity, $message, $context, $workspace);
|
||||||
|
}
|
||||||
|
}
|
||||||
12
workflow/engine/src/ProcessMaker/Model/AppMessage.php
Normal file
12
workflow/engine/src/ProcessMaker/Model/AppMessage.php
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace ProcessMaker\Model;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
|
class AppMessage extends Model
|
||||||
|
{
|
||||||
|
protected $table = 'APP_MESSAGE';
|
||||||
|
public $timestamps = false;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -3,6 +3,7 @@
|
|||||||
namespace ProcessMaker\Model;
|
namespace ProcessMaker\Model;
|
||||||
|
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
use Illuminate\Support\Facades\Crypt;
|
||||||
|
|
||||||
class EmailServerModel extends Model
|
class EmailServerModel extends Model
|
||||||
{
|
{
|
||||||
@@ -31,13 +32,25 @@ class EmailServerModel extends Model
|
|||||||
'EMAIL_SERVER.SMTPSECURE',
|
'EMAIL_SERVER.SMTPSECURE',
|
||||||
'EMAIL_SERVER.MESS_TRY_SEND_INMEDIATLY',
|
'EMAIL_SERVER.MESS_TRY_SEND_INMEDIATLY',
|
||||||
'EMAIL_SERVER.MAIL_TO',
|
'EMAIL_SERVER.MAIL_TO',
|
||||||
'EMAIL_SERVER.MESS_DEFAULT'
|
'EMAIL_SERVER.MESS_DEFAULT',
|
||||||
|
'EMAIL_SERVER.OAUTH_CLIENT_ID',
|
||||||
|
'EMAIL_SERVER.OAUTH_CLIENT_SECRET',
|
||||||
|
'EMAIL_SERVER.OAUTH_REFRESH_TOKEN'
|
||||||
];
|
];
|
||||||
$query = EmailServerModel::query()->select($selectedColumns);
|
$query = EmailServerModel::query()->select($selectedColumns);
|
||||||
$query->where('EMAIL_SERVER.MESS_UID', '=', $messUid);
|
$query->where('EMAIL_SERVER.MESS_UID', '=', $messUid);
|
||||||
$res = $query->get()->values()->toArray();
|
$res = $query->get()->values()->toArray();
|
||||||
$firstElement = head($res);
|
$firstElement = head($res);
|
||||||
|
|
||||||
|
if (!empty($firstElement)) {
|
||||||
|
$firstElement['OAUTH_CLIENT_ID'] = !empty($firstElement['OAUTH_CLIENT_ID']) ?
|
||||||
|
Crypt::decryptString($firstElement['OAUTH_CLIENT_ID']) : '';
|
||||||
|
$firstElement['OAUTH_CLIENT_SECRET'] = !empty($firstElement['OAUTH_CLIENT_SECRET']) ?
|
||||||
|
Crypt::decryptString($firstElement['OAUTH_CLIENT_SECRET']) : '';
|
||||||
|
$firstElement['OAUTH_REFRESH_TOKEN'] = !empty($firstElement['OAUTH_REFRESH_TOKEN']) ?
|
||||||
|
Crypt::decryptString($firstElement['OAUTH_REFRESH_TOKEN']) : '';
|
||||||
|
}
|
||||||
|
|
||||||
return $firstElement;
|
return $firstElement;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -64,7 +77,10 @@ class EmailServerModel extends Model
|
|||||||
'EMAIL_SERVER.SMTPSECURE',
|
'EMAIL_SERVER.SMTPSECURE',
|
||||||
'EMAIL_SERVER.MESS_TRY_SEND_INMEDIATLY',
|
'EMAIL_SERVER.MESS_TRY_SEND_INMEDIATLY',
|
||||||
'EMAIL_SERVER.MAIL_TO',
|
'EMAIL_SERVER.MAIL_TO',
|
||||||
'EMAIL_SERVER.MESS_DEFAULT'
|
'EMAIL_SERVER.MESS_DEFAULT',
|
||||||
|
'EMAIL_SERVER.OAUTH_CLIENT_ID',
|
||||||
|
'EMAIL_SERVER.OAUTH_CLIENT_SECRET',
|
||||||
|
'EMAIL_SERVER.OAUTH_REFRESH_TOKEN'
|
||||||
];
|
];
|
||||||
$query = EmailServerModel::query()->select($selectedColumns)
|
$query = EmailServerModel::query()->select($selectedColumns)
|
||||||
->where('MESS_DEFAULT', '=', 1);
|
->where('MESS_DEFAULT', '=', 1);
|
||||||
@@ -77,6 +93,12 @@ class EmailServerModel extends Model
|
|||||||
$firstElement['MESS_PASSWORD_HIDDEN'] = '';
|
$firstElement['MESS_PASSWORD_HIDDEN'] = '';
|
||||||
$firstElement['MESS_EXECUTE_EVERY'] = '';
|
$firstElement['MESS_EXECUTE_EVERY'] = '';
|
||||||
$firstElement['MESS_SEND_MAX'] = '';
|
$firstElement['MESS_SEND_MAX'] = '';
|
||||||
|
$firstElement['OAUTH_CLIENT_ID'] = !empty($firstElement['OAUTH_CLIENT_ID']) ?
|
||||||
|
Crypt::decryptString($firstElement['OAUTH_CLIENT_ID']) : '';
|
||||||
|
$firstElement['OAUTH_CLIENT_SECRET'] = !empty($firstElement['OAUTH_CLIENT_SECRET']) ?
|
||||||
|
Crypt::decryptString($firstElement['OAUTH_CLIENT_SECRET']) : '';
|
||||||
|
$firstElement['OAUTH_REFRESH_TOKEN'] = !empty($firstElement['OAUTH_REFRESH_TOKEN']) ?
|
||||||
|
Crypt::decryptString($firstElement['OAUTH_REFRESH_TOKEN']) : '';
|
||||||
}
|
}
|
||||||
|
|
||||||
return $firstElement;
|
return $firstElement;
|
||||||
|
|||||||
@@ -25,8 +25,6 @@ emailServer.application = {
|
|||||||
case "DEL":
|
case "DEL":
|
||||||
msg = _("ID_EMAIL_SERVER_DELETE_DATA");
|
msg = _("ID_EMAIL_SERVER_DELETE_DATA");
|
||||||
break;
|
break;
|
||||||
//case "LST":
|
|
||||||
// break;
|
|
||||||
case "TEST":
|
case "TEST":
|
||||||
msg = _("ID_EMAIL_SERVER_TEST_DATA");
|
msg = _("ID_EMAIL_SERVER_TEST_DATA");
|
||||||
break;
|
break;
|
||||||
@@ -40,9 +38,9 @@ emailServer.application = {
|
|||||||
|
|
||||||
/*----------------------------------********---------------------------------*/
|
/*----------------------------------********---------------------------------*/
|
||||||
if (Ext.getCmp("chkEmailServerDefault").checked) {
|
if (Ext.getCmp("chkEmailServerDefault").checked) {
|
||||||
/*----------------------------------********---------------------------------*/
|
/*----------------------------------********---------------------------------*/
|
||||||
var emailDefault = 1;
|
var emailDefault = 1;
|
||||||
/*----------------------------------********---------------------------------*/
|
/*----------------------------------********---------------------------------*/
|
||||||
} else {
|
} else {
|
||||||
var emailDefault = 0;
|
var emailDefault = 0;
|
||||||
}
|
}
|
||||||
@@ -102,7 +100,7 @@ emailServer.application = {
|
|||||||
cboEmailEngine: typeEmailEngine,
|
cboEmailEngine: typeEmailEngine,
|
||||||
fromMail: Ext.getCmp("txtFromMail").getValue(),
|
fromMail: Ext.getCmp("txtFromMail").getValue(),
|
||||||
fromName: Ext.getCmp("txtFromName").getValue(),
|
fromName: Ext.getCmp("txtFromName").getValue(),
|
||||||
sendTestMail: (Ext.getCmp("chkSendTestMail").checked)? 1 : 0,
|
sendTestMail: (Ext.getCmp("chkSendTestMail").checked) ? 1 : 0,
|
||||||
mailTo: Ext.getCmp("txtMailTo").getValue(),
|
mailTo: Ext.getCmp("txtMailTo").getValue(),
|
||||||
emailServerDefault: emailDefault
|
emailServerDefault: emailDefault
|
||||||
};
|
};
|
||||||
@@ -156,9 +154,6 @@ emailServer.application = {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
//case "LST":
|
|
||||||
// break;
|
|
||||||
|
|
||||||
case "TEST":
|
case "TEST":
|
||||||
showTestConnection(typeEmailEngine, dataResponse.data);
|
showTestConnection(typeEmailEngine, dataResponse.data);
|
||||||
|
|
||||||
@@ -213,6 +208,8 @@ emailServer.application = {
|
|||||||
emailServerSetMailTo(Ext.getCmp("chkSendTestMail").checked);
|
emailServerSetMailTo(Ext.getCmp("chkSendTestMail").checked);
|
||||||
|
|
||||||
Ext.getCmp("txtMailTo").setValue("");
|
Ext.getCmp("txtMailTo").setValue("");
|
||||||
|
Ext.getCmp("textClientId").setValue("");
|
||||||
|
Ext.getCmp("textClientSecret").setValue("");
|
||||||
|
|
||||||
/*----------------------------------********---------------------------------*/
|
/*----------------------------------********---------------------------------*/
|
||||||
Ext.getCmp("chkEmailServerDefault").setValue(false);
|
Ext.getCmp("chkEmailServerDefault").setValue(false);
|
||||||
@@ -229,19 +226,19 @@ emailServer.application = {
|
|||||||
case "UPD":
|
case "UPD":
|
||||||
var record = grdpnlMain.getSelectionModel().getSelected();
|
var record = grdpnlMain.getSelectionModel().getSelected();
|
||||||
|
|
||||||
if (typeof(record) != "undefined") {
|
if (typeof (record) != "undefined") {
|
||||||
Ext.getCmp("emailServerUid").setValue(record.get("MESS_UID"));
|
Ext.getCmp("emailServerUid").setValue(record.get("MESS_UID"));
|
||||||
|
|
||||||
Ext.getCmp("cboEmailEngine").setValue(record.get("MESS_ENGINE"));
|
Ext.getCmp("cboEmailEngine").setValue(record.get("MESS_ENGINE"));
|
||||||
emailServerSetEmailEngine(record.get("MESS_ENGINE"));
|
emailServerSetEmailEngine(record.get("MESS_ENGINE"));
|
||||||
|
|
||||||
Ext.getCmp("txtServer").setValue(record.get("MESS_SERVER"));
|
Ext.getCmp("txtServer").setValue(record.get("MESS_SERVER"));
|
||||||
Ext.getCmp("txtPort").setValue((record.get("MESS_PORT") != 0)? record.get("MESS_PORT") : "");
|
Ext.getCmp("txtPort").setValue((record.get("MESS_PORT") != 0) ? record.get("MESS_PORT") : "");
|
||||||
|
|
||||||
Ext.getCmp("txtIncomingServer").setValue(record.get("MESS_INCOMING_SERVER"));
|
Ext.getCmp("txtIncomingServer").setValue(record.get("MESS_INCOMING_SERVER"));
|
||||||
Ext.getCmp("txtIncomingPort").setValue((record.get("MESS_INCOMING_PORT") !== 0)? record.get("MESS_INCOMING_PORT") : "");
|
Ext.getCmp("txtIncomingPort").setValue((record.get("MESS_INCOMING_PORT") !== 0) ? record.get("MESS_INCOMING_PORT") : "");
|
||||||
|
|
||||||
Ext.getCmp("chkReqAuthentication").setValue((parseInt(record.get("MESS_RAUTH")) == 1)? true : false);
|
Ext.getCmp("chkReqAuthentication").setValue((parseInt(record.get("MESS_RAUTH")) == 1) ? true : false);
|
||||||
|
|
||||||
emailServerSetPassword(Ext.getCmp("chkReqAuthentication").checked);
|
emailServerSetPassword(Ext.getCmp("chkReqAuthentication").checked);
|
||||||
|
|
||||||
@@ -250,17 +247,19 @@ emailServer.application = {
|
|||||||
Ext.getCmp("txtFromMail").setValue(record.get("MESS_FROM_MAIL"));
|
Ext.getCmp("txtFromMail").setValue(record.get("MESS_FROM_MAIL"));
|
||||||
Ext.getCmp("txtFromName").setValue(record.get("MESS_FROM_NAME"));
|
Ext.getCmp("txtFromName").setValue(record.get("MESS_FROM_NAME"));
|
||||||
|
|
||||||
Ext.getCmp("rdoGrpSmtpSecure").setValue((record.get("SMTPSECURE") != "")? record.get("SMTPSECURE") : "No");
|
Ext.getCmp("rdoGrpSmtpSecure").setValue((record.get("SMTPSECURE") != "") ? record.get("SMTPSECURE") : "No");
|
||||||
Ext.getCmp("chkSendTestMail").setValue((parseInt(record.get("MESS_TRY_SEND_INMEDIATLY")) == 1)? true : false);
|
Ext.getCmp("chkSendTestMail").setValue((parseInt(record.get("MESS_TRY_SEND_INMEDIATLY")) == 1) ? true : false);
|
||||||
emailServerSetMailTo(Ext.getCmp("chkSendTestMail").checked);
|
emailServerSetMailTo(Ext.getCmp("chkSendTestMail").checked);
|
||||||
|
|
||||||
Ext.getCmp("txtMailTo").setValue(record.get("MAIL_TO"));
|
Ext.getCmp("txtMailTo").setValue(record.get("MAIL_TO"));
|
||||||
|
Ext.getCmp("textClientId").setValue(record.get("OAUTH_CLIENT_ID"));
|
||||||
|
Ext.getCmp("textClientSecret").setValue(record.get("OAUTH_CLIENT_SECRET"));
|
||||||
|
|
||||||
/*----------------------------------********---------------------------------*/
|
/*----------------------------------********---------------------------------*/
|
||||||
if (parseInt(record.get("MESS_DEFAULT")) == 1) {
|
if (parseInt(record.get("MESS_DEFAULT")) == 1) {
|
||||||
/*----------------------------------********---------------------------------*/
|
/*----------------------------------********---------------------------------*/
|
||||||
Ext.getCmp("chkEmailServerDefault").setValue(true);
|
Ext.getCmp("chkEmailServerDefault").setValue(true);
|
||||||
/*----------------------------------********---------------------------------*/
|
/*----------------------------------********---------------------------------*/
|
||||||
} else {
|
} else {
|
||||||
Ext.getCmp("chkEmailServerDefault").setValue(false);
|
Ext.getCmp("chkEmailServerDefault").setValue(false);
|
||||||
}
|
}
|
||||||
@@ -278,6 +277,12 @@ emailServer.application = {
|
|||||||
{
|
{
|
||||||
Ext.getCmp("frmEmailServer").getForm().clearInvalid();
|
Ext.getCmp("frmEmailServer").getForm().clearInvalid();
|
||||||
|
|
||||||
|
Ext.getCmp("textClientId").setVisible(false);
|
||||||
|
Ext.getCmp("textClientSecret").setVisible(false);
|
||||||
|
Ext.getCmp("buttonContinue").setVisible(false);
|
||||||
|
Ext.getCmp("btnTest").setVisible(true);
|
||||||
|
Ext.getCmp("btnSave").setVisible(true);
|
||||||
|
|
||||||
if (cboEmailEngine === "PHPMAILER") {
|
if (cboEmailEngine === "PHPMAILER") {
|
||||||
Ext.getCmp("txtServer").setVisible(true);
|
Ext.getCmp("txtServer").setVisible(true);
|
||||||
Ext.getCmp("txtPort").setVisible(true);
|
Ext.getCmp("txtPort").setVisible(true);
|
||||||
@@ -334,6 +339,29 @@ emailServer.application = {
|
|||||||
Ext.getCmp("txtIncomingPort").allowBlank = false;
|
Ext.getCmp("txtIncomingPort").allowBlank = false;
|
||||||
Ext.getCmp("txtAccountFrom").allowBlank = false;
|
Ext.getCmp("txtAccountFrom").allowBlank = false;
|
||||||
/*----------------------------------********---------------------------------*/
|
/*----------------------------------********---------------------------------*/
|
||||||
|
} else if (cboEmailEngine === "GMAILAPI") {
|
||||||
|
Ext.getCmp("txtServer").setVisible(false);
|
||||||
|
Ext.getCmp("txtPort").setVisible(false);
|
||||||
|
Ext.getCmp("txtIncomingServer").setVisible(false);
|
||||||
|
Ext.getCmp("txtIncomingPort").setVisible(false);
|
||||||
|
Ext.getCmp("chkReqAuthentication").setVisible(false);
|
||||||
|
Ext.getCmp("rdoGrpSmtpSecure").setVisible(false);
|
||||||
|
Ext.getCmp("btnTest").setVisible(false);
|
||||||
|
Ext.getCmp("btnSave").setVisible(false);
|
||||||
|
|
||||||
|
Ext.getCmp("txtAccountFrom").setVisible(true);
|
||||||
|
Ext.getCmp("textClientId").setVisible(true);
|
||||||
|
Ext.getCmp("textClientSecret").setVisible(true);
|
||||||
|
Ext.getCmp("buttonContinue").setVisible(true);
|
||||||
|
|
||||||
|
emailServerSetPassword(false);
|
||||||
|
|
||||||
|
Ext.getCmp("txtServer").allowBlank = true;
|
||||||
|
Ext.getCmp("txtPort").allowBlank = true;
|
||||||
|
Ext.getCmp("txtIncomingServer").allowBlank = true;
|
||||||
|
Ext.getCmp("txtIncomingPort").allowBlank = true;
|
||||||
|
Ext.getCmp("txtAccountFrom").allowBlank = false;
|
||||||
|
Ext.getCmp("txtPassword").allowBlank = true;
|
||||||
} else {
|
} else {
|
||||||
//MAIL
|
//MAIL
|
||||||
Ext.getCmp("txtServer").setVisible(false);
|
Ext.getCmp("txtServer").setVisible(false);
|
||||||
@@ -360,7 +388,7 @@ emailServer.application = {
|
|||||||
|
|
||||||
function emailServerSetPassword(flagPassChecked)
|
function emailServerSetPassword(flagPassChecked)
|
||||||
{
|
{
|
||||||
if (flagPassChecked) {
|
if (flagPassChecked && Ext.getCmp("cboEmailEngine").getValue() !== 'GMAILAPI') {
|
||||||
Ext.getCmp("txtPassword").setVisible(true);
|
Ext.getCmp("txtPassword").setVisible(true);
|
||||||
Ext.getCmp("txtPassword").allowBlank = false;
|
Ext.getCmp("txtPassword").allowBlank = false;
|
||||||
} else {
|
} else {
|
||||||
@@ -387,67 +415,67 @@ emailServer.application = {
|
|||||||
FLAGTEST = 1;
|
FLAGTEST = 1;
|
||||||
|
|
||||||
if (option === "PHPMAILER" || option === "IMAP") {
|
if (option === "PHPMAILER" || option === "IMAP") {
|
||||||
if (typeof(testData.resolving_name) != "undefined") {
|
if (typeof (testData.resolving_name) != "undefined") {
|
||||||
if (testData.resolving_name.result) {
|
if (testData.resolving_name.result) {
|
||||||
msg = msg + "<img src = \"/images/select-icon.png\" width=\"17\" height=\"17\" style=\"margin-right: 0.9em; color: #0000FF;\" />" + testData.resolving_name.title + "<br />";
|
msg = msg + "<img src = \"/images/select-icon.png\" width=\"17\" height=\"17\" style=\"margin-right: 0.9em; color: #0000FF;\" />" + testData.resolving_name.title + "<br />";
|
||||||
} else {
|
} else {
|
||||||
msg = msg + "<img src = \"/images/error.png\" width=\"21\" height=\"21\" style=\"margin-right: 0.6em;\" />" + testData.resolving_name.title + "<br /><span style=\"margin-left:2.3em; color: #0000FF;\">" + testData.resolving_name.message + "</span><br />";
|
msg = msg + "<img src = \"/images/error.png\" width=\"21\" height=\"21\" style=\"margin-right: 0.6em;\" />" + testData.resolving_name.title + "<br /><span style=\"margin-left:2.3em; color: #0000FF;\">" + testData.resolving_name.message + "</span><br />";
|
||||||
FLAGTEST = 0;
|
FLAGTEST = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (typeof(testData.check_port) != "undefined") {
|
if (typeof (testData.check_port) != "undefined") {
|
||||||
if (testData.check_port.result) {
|
if (testData.check_port.result) {
|
||||||
msg = msg + "<img src = \"/images/select-icon.png\" width=\"17\" height=\"17\" style=\"margin-right: 0.9em; color: #0000FF;\" />" + testData.check_port.title + "<br />";
|
msg = msg + "<img src = \"/images/select-icon.png\" width=\"17\" height=\"17\" style=\"margin-right: 0.9em; color: #0000FF;\" />" + testData.check_port.title + "<br />";
|
||||||
} else {
|
} else {
|
||||||
msg = msg + "<img src = \"/images/error.png\" width=\"21\" height=\"21\" style=\"margin-right: 0.6em;\" />" + testData.check_port.title + "<br /><span style=\"margin-left:2.3em; color: #0000FF;\">" + testData.check_port.message + "</span><br />";
|
msg = msg + "<img src = \"/images/error.png\" width=\"21\" height=\"21\" style=\"margin-right: 0.6em;\" />" + testData.check_port.title + "<br /><span style=\"margin-left:2.3em; color: #0000FF;\">" + testData.check_port.message + "</span><br />";
|
||||||
FLAGTEST = 0;
|
FLAGTEST = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (typeof(testData.establishing_connection_host) != "undefined") {
|
if (typeof (testData.establishing_connection_host) != "undefined") {
|
||||||
if (testData.establishing_connection_host.result) {
|
if (testData.establishing_connection_host.result) {
|
||||||
msg = msg + "<img src = \"/images/select-icon.png\" width=\"17\" height=\"17\" style=\"margin-right: 0.9em; color: #0000FF;\" />" + testData.establishing_connection_host.title + "<br />";
|
msg = msg + "<img src = \"/images/select-icon.png\" width=\"17\" height=\"17\" style=\"margin-right: 0.9em; color: #0000FF;\" />" + testData.establishing_connection_host.title + "<br />";
|
||||||
} else {
|
} else {
|
||||||
msg = msg + "<img src = \"/images/error.png\" width=\"21\" height=\"21\" style=\"margin-right: 0.6em;\" />" + testData.establishing_connection_host.title + "<br /><span style=\"margin-left:2.3em; color: #0000FF;\">" + testData.establishing_connection_host.message + "</span><br />";
|
msg = msg + "<img src = \"/images/error.png\" width=\"21\" height=\"21\" style=\"margin-right: 0.6em;\" />" + testData.establishing_connection_host.title + "<br /><span style=\"margin-left:2.3em; color: #0000FF;\">" + testData.establishing_connection_host.message + "</span><br />";
|
||||||
FLAGTEST = 0;
|
FLAGTEST = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (typeof(testData.login) != "undefined") {
|
if (typeof (testData.login) != "undefined") {
|
||||||
if (testData.login.result != "") {
|
if (testData.login.result != "") {
|
||||||
msg = msg + "<img src = \"/images/select-icon.png\" width=\"17\" height=\"17\" style=\"margin-right: 0.9em; color: #0000FF;\" />" + testData.login.title + "<br />";
|
msg = msg + "<img src = \"/images/select-icon.png\" width=\"17\" height=\"17\" style=\"margin-right: 0.9em; color: #0000FF;\" />" + testData.login.title + "<br />";
|
||||||
} else {
|
} else {
|
||||||
msg = msg + "<img src = \"/images/error.png\" width=\"21\" height=\"21\" style=\"margin-right: 0.6em;\" />" + testData.login.title + "<br /><span style=\"margin-left:2.3em; color: #0000FF;\">" + testData.login.message + "</span><br />";
|
msg = msg + "<img src = \"/images/error.png\" width=\"21\" height=\"21\" style=\"margin-right: 0.6em;\" />" + testData.login.title + "<br /><span style=\"margin-left:2.3em; color: #0000FF;\">" + testData.login.message + "</span><br />";
|
||||||
FLAGTEST = 0;
|
FLAGTEST = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (typeof(testData.sending_email) != "undefined") {
|
if (typeof (testData.sending_email) != "undefined") {
|
||||||
if (testData.sending_email.result) {
|
if (testData.sending_email.result) {
|
||||||
msg = msg + "<img src = \"/images/select-icon.png\" width=\"17\" height=\"17\" style=\"margin-right: 0.9em; color: #0000FF;\" />" + testData.sending_email.title + "<br />";
|
msg = msg + "<img src = \"/images/select-icon.png\" width=\"17\" height=\"17\" style=\"margin-right: 0.9em; color: #0000FF;\" />" + testData.sending_email.title + "<br />";
|
||||||
} else {
|
} else {
|
||||||
msg = msg + "<img src = \"/images/error.png\" width=\"21\" height=\"21\" style=\"margin-right: 0.6em;\" />" + testData.sending_email.title + "<br /><span style=\"margin-left:2.3em; color: #0000FF;\">" + testData.sending_email.message + "</span><br />";
|
msg = msg + "<img src = \"/images/error.png\" width=\"21\" height=\"21\" style=\"margin-right: 0.6em;\" />" + testData.sending_email.title + "<br /><span style=\"margin-left:2.3em; color: #0000FF;\">" + testData.sending_email.message + "</span><br />";
|
||||||
FLAGTEST = 0;
|
FLAGTEST = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
//MAIL
|
//MAIL
|
||||||
if (typeof(testData.verifying_mail) != "undefined") {
|
if (typeof (testData.verifying_mail) != "undefined") {
|
||||||
if (testData.verifying_mail.result) {
|
if (testData.verifying_mail.result) {
|
||||||
msg = msg + "<img src = \"/images/select-icon.png\" width=\"17\" height=\"17\" style=\"margin-right: 0.9em;\" />" + testData.verifying_mail.title + "<br />";
|
msg = msg + "<img src = \"/images/select-icon.png\" width=\"17\" height=\"17\" style=\"margin-right: 0.9em;\" />" + testData.verifying_mail.title + "<br />";
|
||||||
} else {
|
} else {
|
||||||
msg = msg + "<img src = \"/images/error.png\" width=\"21\" height=\"21\" style=\"margin-right: 0.6em;\" />" + testData.verifying_mail.title + "<br /><span style=\"margin-left:2.3em; color: #0000FF;\">" + testData.verifying_mail.message + "</span><br />";
|
msg = msg + "<img src = \"/images/error.png\" width=\"21\" height=\"21\" style=\"margin-right: 0.6em;\" />" + testData.verifying_mail.title + "<br /><span style=\"margin-left:2.3em; color: #0000FF;\">" + testData.verifying_mail.message + "</span><br />";
|
||||||
FLAGTEST = 0;
|
FLAGTEST = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (typeof(testData.sending_email) != "undefined") {
|
if (typeof (testData.sending_email) != "undefined") {
|
||||||
if (testData.sending_email.result) {
|
if (testData.sending_email.result) {
|
||||||
msg = msg + "<img src = \"/images/select-icon.png\" width=\"17\" height=\"17\" style=\"margin-right: 0.9em; color: #0000FF;\" />" + testData.sending_email.title + "<br />";
|
msg = msg + "<img src = \"/images/select-icon.png\" width=\"17\" height=\"17\" style=\"margin-right: 0.9em; color: #0000FF;\" />" + testData.sending_email.title + "<br />";
|
||||||
} else {
|
} else {
|
||||||
msg = msg + "<img src = \"/images/error.png\" width=\"21\" height=\"21\" style=\"margin-right: 0.6em;\" />" + testData.sending_email.title + "<br /><span style=\"margin-left:2.3em; color: #0000FF;\">" + testData.sending_email.message + "</span><br />";
|
msg = msg + "<img src = \"/images/error.png\" width=\"21\" height=\"21\" style=\"margin-right: 0.6em;\" />" + testData.sending_email.title + "<br /><span style=\"margin-left:2.3em; color: #0000FF;\">" + testData.sending_email.message + "</span><br />";
|
||||||
FLAGTEST = 0;
|
FLAGTEST = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -504,7 +532,9 @@ emailServer.application = {
|
|||||||
{name: "SMTPSECURE", type: "string"},
|
{name: "SMTPSECURE", type: "string"},
|
||||||
{name: "MESS_TRY_SEND_INMEDIATLY", type: "int"},
|
{name: "MESS_TRY_SEND_INMEDIATLY", type: "int"},
|
||||||
{name: "MAIL_TO", type: "string"},
|
{name: "MAIL_TO", type: "string"},
|
||||||
{name: "MESS_DEFAULT", type: "int"}
|
{name: "MESS_DEFAULT", type: "int"},
|
||||||
|
{name: "OAUTH_CLIENT_ID", type: "string"},
|
||||||
|
{name: "OAUTH_CLIENT_SECRET", type: "string"}
|
||||||
]
|
]
|
||||||
}),
|
}),
|
||||||
|
|
||||||
@@ -540,7 +570,7 @@ emailServer.application = {
|
|||||||
var emailUrlValidationText = /^[_a-z0-9-]+(\.[_a-z0-9-]+)*@([a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4}))|((([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]).){3}([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))$/i;
|
var emailUrlValidationText = /^[_a-z0-9-]+(\.[_a-z0-9-]+)*@([a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4}))|((([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]).){3}([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))$/i;
|
||||||
|
|
||||||
Ext.apply(Ext.form.VTypes, {
|
Ext.apply(Ext.form.VTypes, {
|
||||||
emailUrlValidation: function(val, field)
|
emailUrlValidation: function (val, field)
|
||||||
{
|
{
|
||||||
return emailUrlValidationText.test(val);
|
return emailUrlValidationText.test(val);
|
||||||
}
|
}
|
||||||
@@ -555,7 +585,8 @@ emailServer.application = {
|
|||||||
/*----------------------------------********---------------------------------*/
|
/*----------------------------------********---------------------------------*/
|
||||||
["IMAP", "SMTP - IMAP (PHPMailer)"],
|
["IMAP", "SMTP - IMAP (PHPMailer)"],
|
||||||
/*----------------------------------********---------------------------------*/
|
/*----------------------------------********---------------------------------*/
|
||||||
["MAIL", "Mail (PHP)"]
|
["MAIL", "Mail (PHP)"],
|
||||||
|
["GMAILAPI", "GMAIL API (PHPMailer)"]
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -579,7 +610,7 @@ emailServer.application = {
|
|||||||
forceSelection: true,
|
forceSelection: true,
|
||||||
|
|
||||||
listeners: {
|
listeners: {
|
||||||
select: function(combo, value)
|
select: function (combo, value)
|
||||||
{
|
{
|
||||||
emailServerSetEmailEngine(Ext.getCmp("cboEmailEngine").getValue());
|
emailServerSetEmailEngine(Ext.getCmp("cboEmailEngine").getValue());
|
||||||
}
|
}
|
||||||
@@ -597,7 +628,7 @@ emailServer.application = {
|
|||||||
id: "txtPort",
|
id: "txtPort",
|
||||||
name: "txtPort",
|
name: "txtPort",
|
||||||
|
|
||||||
fieldLabel: _("PORT_DEFAULT"), //Port (default 25)
|
fieldLabel: _("PORT_DEFAULT"), //Port (default 25)
|
||||||
|
|
||||||
anchor: "36%",
|
anchor: "36%",
|
||||||
maxLength: 3,
|
maxLength: 3,
|
||||||
@@ -615,7 +646,7 @@ emailServer.application = {
|
|||||||
id: "txtIncomingPort",
|
id: "txtIncomingPort",
|
||||||
name: "txtIncomingPort",
|
name: "txtIncomingPort",
|
||||||
|
|
||||||
fieldLabel: _("INCOMING_PORT_DEFAULT"), //Port (default 993)
|
fieldLabel: _("INCOMING_PORT_DEFAULT"), //Port (default 993)
|
||||||
|
|
||||||
anchor: "36%",
|
anchor: "36%",
|
||||||
maxLength: 3,
|
maxLength: 3,
|
||||||
@@ -628,7 +659,7 @@ emailServer.application = {
|
|||||||
|
|
||||||
boxLabel: _("REQUIRE_AUTHENTICATION"), //Require authentication
|
boxLabel: _("REQUIRE_AUTHENTICATION"), //Require authentication
|
||||||
|
|
||||||
handler: function()
|
handler: function ()
|
||||||
{
|
{
|
||||||
emailServerSetPassword(this.checked);
|
emailServerSetPassword(this.checked);
|
||||||
}
|
}
|
||||||
@@ -680,7 +711,7 @@ emailServer.application = {
|
|||||||
vertical: true,
|
vertical: true,
|
||||||
|
|
||||||
items: [
|
items: [
|
||||||
{boxLabel: "No", inputValue: "No", name: "rdoGrpSmtpSecure", checked: true},
|
{boxLabel: "No", inputValue: "No", name: "rdoGrpSmtpSecure", checked: true},
|
||||||
{boxLabel: "TLS", inputValue: "tls", name: "rdoGrpSmtpSecure"},
|
{boxLabel: "TLS", inputValue: "tls", name: "rdoGrpSmtpSecure"},
|
||||||
{boxLabel: "SSL", inputValue: "ssl", name: "rdoGrpSmtpSecure"}
|
{boxLabel: "SSL", inputValue: "ssl", name: "rdoGrpSmtpSecure"}
|
||||||
]
|
]
|
||||||
@@ -692,7 +723,7 @@ emailServer.application = {
|
|||||||
|
|
||||||
boxLabel: _("SEND_TEST_MAIL"), //Send a test mail
|
boxLabel: _("SEND_TEST_MAIL"), //Send a test mail
|
||||||
|
|
||||||
handler: function()
|
handler: function ()
|
||||||
{
|
{
|
||||||
emailServerSetMailTo(this.checked);
|
emailServerSetMailTo(this.checked);
|
||||||
}
|
}
|
||||||
@@ -756,66 +787,140 @@ emailServer.application = {
|
|||||||
var btnCancel = new Ext.Action({
|
var btnCancel = new Ext.Action({
|
||||||
id: "btnCancel",
|
id: "btnCancel",
|
||||||
text: _("ID_CANCEL"),
|
text: _("ID_CANCEL"),
|
||||||
|
|
||||||
width: 85,
|
width: 85,
|
||||||
disabled: false,
|
disabled: false,
|
||||||
|
handler: function () {
|
||||||
handler: function ()
|
Ext.getCmp("frmEmailServer").setVisible(true);
|
||||||
{
|
|
||||||
winData.hide();
|
winData.hide();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
var textClientId = new Ext.form.TextField({
|
||||||
|
id: "textClientId",
|
||||||
|
name: "textClientId",
|
||||||
|
fieldLabel: _("ID_CLIENT_ID")
|
||||||
|
});
|
||||||
|
var textClientSecret = new Ext.form.TextField({
|
||||||
|
id: "textClientSecret",
|
||||||
|
name: "textClientSecret",
|
||||||
|
fieldLabel: _("ID_CLIENT_SECRET")
|
||||||
|
});
|
||||||
|
var buttonContinue = new Ext.Action({
|
||||||
|
id: 'buttonContinue',
|
||||||
|
text: _("ID_CONTINUE"),
|
||||||
|
width: 85,
|
||||||
|
handler: function () {
|
||||||
|
var frmEmailServer, parameters;
|
||||||
|
frmEmailServer = Ext.getCmp("frmEmailServer");
|
||||||
|
if (frmEmailServer.getForm().isValid()) {
|
||||||
|
winData.setDisabled(true);
|
||||||
|
|
||||||
|
parameters = {
|
||||||
|
option: 'createAuthUrl',
|
||||||
|
emailEngine: Ext.getCmp("cboEmailEngine").getValue(),
|
||||||
|
clientID: Ext.getCmp("textClientId").getValue(),
|
||||||
|
clientSecret: Ext.getCmp("textClientSecret").getValue(),
|
||||||
|
fromAccount: Ext.getCmp("txtAccountFrom").getValue(),
|
||||||
|
senderEmail: Ext.getCmp("txtFromMail").getValue(),
|
||||||
|
senderName: Ext.getCmp("txtFromName").getValue(),
|
||||||
|
sendTestMail: (Ext.getCmp("chkSendTestMail").checked) ? 1 : 0,
|
||||||
|
mailTo: Ext.getCmp("txtMailTo").getValue(),
|
||||||
|
setDefaultConfiguration: Ext.getCmp("chkEmailServerDefault").checked ? 1 : 0
|
||||||
|
};
|
||||||
|
|
||||||
|
if (EMAILSERVEROPTION === "UPD") {
|
||||||
|
parameters.emailServerUid = Ext.getCmp("emailServerUid").getValue();
|
||||||
|
}
|
||||||
|
|
||||||
|
Ext.Ajax.request({
|
||||||
|
url: "emailServerAjax",
|
||||||
|
method: "POST",
|
||||||
|
params: parameters,
|
||||||
|
success: function (response) {
|
||||||
|
winData.setDisabled(false);
|
||||||
|
var dataResponse = Ext.util.JSON.decode(response.responseText);
|
||||||
|
if (dataResponse.status === 200) {
|
||||||
|
if (window.parent.parent) {
|
||||||
|
window.parent.parent.location = dataResponse.data;
|
||||||
|
} else if (window.parent) {
|
||||||
|
window.parent.location = dataResponse.data;
|
||||||
|
} else {
|
||||||
|
window.location = dataResponse.data;
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
Ext.MessageBox.show({
|
||||||
|
title: _("ID_ERROR"),
|
||||||
|
icon: Ext.MessageBox.ERROR,
|
||||||
|
msg: dataResponse.message,
|
||||||
|
buttons: {ok: _("ID_ACCEPT")}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
failure: function () {
|
||||||
|
winData.setDisabled(false);
|
||||||
|
Ext.MessageBox.show({
|
||||||
|
title: _("ID_ERROR"),
|
||||||
|
icon: Ext.MessageBox.ERROR,
|
||||||
|
msg: "",
|
||||||
|
buttons: {ok: _("ID_ACCEPT")}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
Ext.MessageBox.alert(_("ID_INVALID_DATA"), _("ID_CHECK_FIELDS_MARK_RED"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
var frmEmailServer = new Ext.FormPanel({
|
||||||
|
id: "frmEmailServer",
|
||||||
|
frame: true,
|
||||||
|
labelAlign: "right",
|
||||||
|
labelWidth: 150,
|
||||||
|
autoWidth: true,
|
||||||
|
autoScroll: false,
|
||||||
|
defaults: {width: 325},
|
||||||
|
items: [
|
||||||
|
{
|
||||||
|
xtype: "hidden",
|
||||||
|
id: "emailServerUid",
|
||||||
|
name: "emailServerUid"
|
||||||
|
},
|
||||||
|
cboEmailEngine,
|
||||||
|
txtServer,
|
||||||
|
txtPort,
|
||||||
|
txtIncomingServer,
|
||||||
|
txtIncomingPort,
|
||||||
|
chkReqAuthentication,
|
||||||
|
textClientId,
|
||||||
|
textClientSecret,
|
||||||
|
txtAccountFrom,
|
||||||
|
txtPassword,
|
||||||
|
txtFromMail,
|
||||||
|
txtFromName,
|
||||||
|
rdoGrpSmtpSecure,
|
||||||
|
chkSendTestMail,
|
||||||
|
txtMailTo
|
||||||
|
/*----------------------------------********---------------------------------*/
|
||||||
|
, chkEmailServerDefault
|
||||||
|
/*----------------------------------********---------------------------------*/
|
||||||
|
]
|
||||||
|
});
|
||||||
|
|
||||||
//Components
|
//Components
|
||||||
var winData = new Ext.Window({
|
var winData = new Ext.Window({
|
||||||
layout: "fit",
|
layout: "fit",
|
||||||
width: 550,
|
width: 550,
|
||||||
height: 450,
|
height: 450,
|
||||||
//title: "",
|
|
||||||
modal: true,
|
modal: true,
|
||||||
resizable: false,
|
resizable: false,
|
||||||
closeAction: "hide",
|
closeAction: "hide",
|
||||||
|
items: [frmEmailServer],
|
||||||
items: [
|
buttons: [buttonContinue, btnTest, btnSave, btnCancel]
|
||||||
new Ext.FormPanel({
|
|
||||||
id: "frmEmailServer",
|
|
||||||
|
|
||||||
frame: true,
|
|
||||||
labelAlign: "right",
|
|
||||||
labelWidth: 150,
|
|
||||||
autoWidth: true,
|
|
||||||
autoScroll: false,
|
|
||||||
|
|
||||||
defaults: {width: 325},
|
|
||||||
|
|
||||||
items: [
|
|
||||||
{
|
|
||||||
xtype: "hidden",
|
|
||||||
id: "emailServerUid",
|
|
||||||
name: "emailServerUid"
|
|
||||||
},
|
|
||||||
cboEmailEngine,
|
|
||||||
txtServer,
|
|
||||||
txtPort,
|
|
||||||
txtIncomingServer,
|
|
||||||
txtIncomingPort,
|
|
||||||
chkReqAuthentication,
|
|
||||||
txtAccountFrom,
|
|
||||||
txtPassword,
|
|
||||||
txtFromMail,
|
|
||||||
txtFromName,
|
|
||||||
rdoGrpSmtpSecure,
|
|
||||||
chkSendTestMail,
|
|
||||||
txtMailTo
|
|
||||||
/*----------------------------------********---------------------------------*/
|
|
||||||
, chkEmailServerDefault
|
|
||||||
/*----------------------------------********---------------------------------*/
|
|
||||||
]
|
|
||||||
})
|
|
||||||
],
|
|
||||||
|
|
||||||
buttons: [btnTest, btnSave, btnCancel]
|
|
||||||
});
|
});
|
||||||
|
winData.show();
|
||||||
|
winData.hide();
|
||||||
|
|
||||||
var winTestConnection = new Ext.Window({
|
var winTestConnection = new Ext.Window({
|
||||||
layout: "fit",
|
layout: "fit",
|
||||||
@@ -906,7 +1011,7 @@ emailServer.application = {
|
|||||||
{
|
{
|
||||||
var record = grdpnlMain.getSelectionModel().getSelected();
|
var record = grdpnlMain.getSelectionModel().getSelected();
|
||||||
|
|
||||||
if (typeof(record) != "undefined") {
|
if (typeof (record) != "undefined") {
|
||||||
Ext.getCmp("btnSave").disable();
|
Ext.getCmp("btnSave").disable();
|
||||||
|
|
||||||
EMAILSERVEROPTION = "UPD";
|
EMAILSERVEROPTION = "UPD";
|
||||||
@@ -927,18 +1032,18 @@ emailServer.application = {
|
|||||||
{
|
{
|
||||||
var record = grdpnlMain.getSelectionModel().getSelected();
|
var record = grdpnlMain.getSelectionModel().getSelected();
|
||||||
|
|
||||||
if (typeof(record) != "undefined") {
|
if (typeof (record) != "undefined") {
|
||||||
Ext.MessageBox.confirm(
|
Ext.MessageBox.confirm(
|
||||||
_("ID_CONFIRM"),
|
_("ID_CONFIRM"),
|
||||||
_("ID_EMAIL_SERVER_DELETE_WARNING_MESSAGE"),
|
_("ID_EMAIL_SERVER_DELETE_WARNING_MESSAGE"),
|
||||||
function (btn)
|
function (btn) {
|
||||||
{
|
if (btn == "yes") {
|
||||||
if (btn == "yes") {
|
EMAILSERVEROPTION = "DEL";
|
||||||
EMAILSERVEROPTION = "DEL";
|
Ext.getCmp("cboEmailEngine").setValue(record.get("MESS_ENGINE"));
|
||||||
|
Ext.getCmp("rdoGrpSmtpSecure").setValue((record.get("SMTPSECURE") != "") ? record.get("SMTPSECURE") : "No");
|
||||||
emailServerProcessAjax(EMAILSERVEROPTION, record.get("MESS_UID"));
|
emailServerProcessAjax(EMAILSERVEROPTION, record.get("MESS_UID"));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1016,32 +1121,32 @@ emailServer.application = {
|
|||||||
|
|
||||||
var rendererMessServer = function (value)
|
var rendererMessServer = function (value)
|
||||||
{
|
{
|
||||||
return (value != "")? value : "-";
|
return (value != "") ? value : "-";
|
||||||
};
|
};
|
||||||
|
|
||||||
var rendererMessPort = function (value)
|
var rendererMessPort = function (value)
|
||||||
{
|
{
|
||||||
return (value != 0)? value : "-";
|
return (value != 0) ? value : "-";
|
||||||
};
|
};
|
||||||
|
|
||||||
var rendererMessIncomingServer = function (value)
|
var rendererMessIncomingServer = function (value)
|
||||||
{
|
{
|
||||||
return (value !== "")? value : "-";
|
return (value !== "") ? value : "-";
|
||||||
};
|
};
|
||||||
|
|
||||||
var rendererMessIncomingPort = function (value)
|
var rendererMessIncomingPort = function (value)
|
||||||
{
|
{
|
||||||
return (value !== 0)? value : "-";
|
return (value !== 0) ? value : "-";
|
||||||
};
|
};
|
||||||
|
|
||||||
var rendererMessSmtpSecure = function (value)
|
var rendererMessSmtpSecure = function (value)
|
||||||
{
|
{
|
||||||
return (value != "")? value : "-";
|
return (value != "") ? value : "-";
|
||||||
};
|
};
|
||||||
|
|
||||||
var rendererMessDefault = function (value)
|
var rendererMessDefault = function (value)
|
||||||
{
|
{
|
||||||
return (value == 1)? "<img src = \"/images/ext/default/saved.png\" width=\"17\" height=\"17\" style=\"margin-right: 0.9em;\" />" : "";
|
return (value == 1) ? "<img src = \"/images/ext/default/saved.png\" width=\"17\" height=\"17\" style=\"margin-right: 0.9em;\" />" : "";
|
||||||
};
|
};
|
||||||
|
|
||||||
var cmodel = new Ext.grid.ColumnModel({
|
var cmodel = new Ext.grid.ColumnModel({
|
||||||
@@ -1050,20 +1155,20 @@ emailServer.application = {
|
|||||||
},
|
},
|
||||||
|
|
||||||
columns: [
|
columns: [
|
||||||
{id: "MESS_UID", dataIndex: "MESS_UID", hidden: true, header: "uid_emailServer", width: 0, hideable: false, align: "left"},
|
{id: "MESS_UID", dataIndex: "MESS_UID", hidden: true, header: "uid_emailServer", width: 0, hideable: false, align: "left"},
|
||||||
{id: "MESS_ENGINE", dataIndex: "MESS_ENGINE", hidden: false, header: _("EMAIL_ENGINE"), width: 80, hideable: true, align: "left"},
|
{id: "MESS_ENGINE", dataIndex: "MESS_ENGINE", hidden: false, header: _("EMAIL_ENGINE"), width: 80, hideable: true, align: "left"},
|
||||||
{id: "MESS_SERVER", dataIndex: "MESS_SERVER", hidden: false, header: _("ID_SERVER"), width: 150, hideable: true, align: "center", renderer: rendererMessServer},
|
{id: "MESS_SERVER", dataIndex: "MESS_SERVER", hidden: false, header: _("ID_SERVER"), width: 150, hideable: true, align: "center", renderer: rendererMessServer},
|
||||||
{id: "MESS_PORT", dataIndex: "MESS_PORT", hidden: false, header: _("ID_EMAIL_SERVER_PORT"), width: 50, hideable: true, align: "center", renderer: rendererMessPort},
|
{id: "MESS_PORT", dataIndex: "MESS_PORT", hidden: false, header: _("ID_EMAIL_SERVER_PORT"), width: 50, hideable: true, align: "center", renderer: rendererMessPort},
|
||||||
{id: "MESS_INCOMING_SERVER", dataIndex: "MESS_INCOMING_SERVER", hidden: true, header: _("ID_INCOMING_SERVER"), width: 150, hideable: true, align: "center", renderer: rendererMessIncomingServer},
|
{id: "MESS_INCOMING_SERVER", dataIndex: "MESS_INCOMING_SERVER", hidden: true, header: _("ID_INCOMING_SERVER"), width: 150, hideable: true, align: "center", renderer: rendererMessIncomingServer},
|
||||||
{id: "MESS_INCOMING_PORT", dataIndex: "MESS_INCOMING_PORT", hidden: true, header: _("ID_EMAIL_SERVER_PORT"), width: 50, hideable: true, align: "center", renderer: rendererMessIncomingPort},
|
{id: "MESS_INCOMING_PORT", dataIndex: "MESS_INCOMING_PORT", hidden: true, header: _("ID_EMAIL_SERVER_PORT"), width: 50, hideable: true, align: "center", renderer: rendererMessIncomingPort},
|
||||||
{id: "MESS_RAUTH", dataIndex: "MESS_RAUTH", hidden: true, header: _("REQUIRE_AUTHENTICATION"), width: 50, hideable: false, align: "left"},
|
{id: "MESS_RAUTH", dataIndex: "MESS_RAUTH", hidden: true, header: _("REQUIRE_AUTHENTICATION"), width: 50, hideable: false, align: "left"},
|
||||||
{id: "MESS_ACCOUNT", dataIndex: "MESS_ACCOUNT", hidden: false, header: _("ID_EMAIL_SERVER_ACCOUNT_FROM"), width: 130, hideable: true, align: "left"},
|
{id: "MESS_ACCOUNT", dataIndex: "MESS_ACCOUNT", hidden: false, header: _("ID_EMAIL_SERVER_ACCOUNT_FROM"), width: 130, hideable: true, align: "left"},
|
||||||
{id: "MESS_PASSWORD", dataIndex: "MESS_PASSWORD", hidden: true, header: _("ID_PASSWORD"), width: 130, hideable: false, align: "left"},
|
{id: "MESS_PASSWORD", dataIndex: "MESS_PASSWORD", hidden: true, header: _("ID_PASSWORD"), width: 130, hideable: false, align: "left"},
|
||||||
{id: "MESS_FROM_MAIL", dataIndex: "MESS_FROM_MAIL", hidden: false, header: _("ID_FROM_EMAIL"), width: 130, hideable: true, align: "left"},
|
{id: "MESS_FROM_MAIL", dataIndex: "MESS_FROM_MAIL", hidden: false, header: _("ID_FROM_EMAIL"), width: 130, hideable: true, align: "left"},
|
||||||
{id: "MESS_FROM_NAME", dataIndex: "MESS_FROM_NAME", hidden: false, header: _("ID_FROM_NAME"), width: 150, hideable: true, align: "left"},
|
{id: "MESS_FROM_NAME", dataIndex: "MESS_FROM_NAME", hidden: false, header: _("ID_FROM_NAME"), width: 150, hideable: true, align: "left"},
|
||||||
{id: "SMTPSECURE", dataIndex: "SMTPSECURE", hidden: false, header: _("USE_SECURE_CONNECTION"), width: 140, hideable: true, align: "center", renderer: rendererMessSmtpSecure},
|
{id: "SMTPSECURE", dataIndex: "SMTPSECURE", hidden: false, header: _("USE_SECURE_CONNECTION"), width: 140, hideable: true, align: "center", renderer: rendererMessSmtpSecure},
|
||||||
{id: "MESS_TRY_SEND_INMEDIATLY", dataIndex: "MESS_TRY_SEND_INMEDIATLY", hidden: true, header: _("SEND_TEST_MAIL"), width: 50, hideable: false, align: "left"},
|
{id: "MESS_TRY_SEND_INMEDIATLY", dataIndex: "MESS_TRY_SEND_INMEDIATLY", hidden: true, header: _("SEND_TEST_MAIL"), width: 50, hideable: false, align: "left"},
|
||||||
{id: "MAIL_TO", dataIndex: "MAIL_TO", hidden: false, header: _("MAIL_TO"), width: 150, hideable: true, align: "left"},
|
{id: "MAIL_TO", dataIndex: "MAIL_TO", hidden: false, header: _("MAIL_TO"), width: 150, hideable: true, align: "left"},
|
||||||
{id: "MESS_DEFAULT", dataIndex: "MESS_DEFAULT", hidden: false, header: _("ID_EMAIL_SERVER_DEFAULT"), width: 50, hideable: true, align: "center", renderer: rendererMessDefault}
|
{id: "MESS_DEFAULT", dataIndex: "MESS_DEFAULT", hidden: false, header: _("ID_EMAIL_SERVER_DEFAULT"), width: 50, hideable: true, align: "center", renderer: rendererMessDefault}
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
@@ -1129,7 +1234,7 @@ emailServer.application = {
|
|||||||
{
|
{
|
||||||
var record = grdpnlMain.getSelectionModel().getSelected();
|
var record = grdpnlMain.getSelectionModel().getSelected();
|
||||||
|
|
||||||
if (typeof(record) != "undefined") {
|
if (typeof (record) != "undefined") {
|
||||||
Ext.getCmp("btnSave").disable();
|
Ext.getCmp("btnSave").disable();
|
||||||
|
|
||||||
EMAILSERVEROPTION = "UPD";
|
EMAILSERVEROPTION = "UPD";
|
||||||
@@ -1157,14 +1262,14 @@ emailServer.application = {
|
|||||||
|
|
||||||
//Initialize events
|
//Initialize events
|
||||||
grdpnlMain.on(
|
grdpnlMain.on(
|
||||||
"rowcontextmenu",
|
"rowcontextmenu",
|
||||||
function (grid, rowIndex, evt)
|
function (grid, rowIndex, evt)
|
||||||
{
|
{
|
||||||
var sm = grid.getSelectionModel();
|
var sm = grid.getSelectionModel();
|
||||||
sm.selectRow(rowIndex, sm.isSelected(rowIndex));
|
sm.selectRow(rowIndex, sm.isSelected(rowIndex));
|
||||||
},
|
},
|
||||||
this
|
this
|
||||||
);
|
);
|
||||||
|
|
||||||
grdpnlMain.addListener("rowcontextmenu", onMnuContext, this);
|
grdpnlMain.addListener("rowcontextmenu", onMnuContext, this);
|
||||||
|
|
||||||
@@ -1178,6 +1283,10 @@ emailServer.application = {
|
|||||||
autoScroll: false,
|
autoScroll: false,
|
||||||
items: [grdpnlMain]
|
items: [grdpnlMain]
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if (errorMessageIfNotAuthenticate && errorMessageIfNotAuthenticate !== "") {
|
||||||
|
Ext.MessageBox.alert(_("ID_INVALID_DATA"), errorMessageIfNotAuthenticate);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user