diff --git a/workflow/engine/classes/WsBase.php b/workflow/engine/classes/WsBase.php index ae11abe97..ff4c22fc8 100644 --- a/workflow/engine/classes/WsBase.php +++ b/workflow/engine/classes/WsBase.php @@ -1,5 +1,6 @@ getRow(); $arrayConfigAux = $row; $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"]) : ''; } } } diff --git a/workflow/engine/classes/model/map/EmailServerMapBuilder.php b/workflow/engine/classes/model/map/EmailServerMapBuilder.php index db79096b7..c9981fb5a 100644 --- a/workflow/engine/classes/model/map/EmailServerMapBuilder.php +++ b/workflow/engine/classes/model/map/EmailServerMapBuilder.php @@ -95,11 +95,11 @@ class EmailServerMapBuilder $tMap->addColumn('MESS_DEFAULT', 'MessDefault', 'int', CreoleTypes::INTEGER, true, null); - $tMap->addColumn('OAUTH_CLIENT_ID', 'OauthClientId', 'string', CreoleTypes::VARCHAR, true, 256); + $tMap->addColumn('OAUTH_CLIENT_ID', 'OauthClientId', 'string', CreoleTypes::VARCHAR, true, 512); - $tMap->addColumn('OAUTH_CLIENT_SECRET', 'OauthClientSecret', 'string', CreoleTypes::VARCHAR, true, 256); + $tMap->addColumn('OAUTH_CLIENT_SECRET', 'OauthClientSecret', 'string', CreoleTypes::VARCHAR, true, 512); - $tMap->addColumn('OAUTH_REFRESH_TOKEN', 'OauthRefreshToken', 'string', CreoleTypes::VARCHAR, true, 256); + $tMap->addColumn('OAUTH_REFRESH_TOKEN', 'OauthRefreshToken', 'string', CreoleTypes::VARCHAR, true, 512); $tMap->addValidator('MESS_ENGINE', 'validValues', 'propel.validator.ValidValuesValidator', 'MAIL|PHPMAILER|XOAUTH2|GMAILAPI', 'Please enter a valid value for MESS_ENGINE'); diff --git a/workflow/engine/config/schema.xml b/workflow/engine/config/schema.xml index f0b80e808..60d5d3f60 100644 --- a/workflow/engine/config/schema.xml +++ b/workflow/engine/config/schema.xml @@ -5004,9 +5004,9 @@ - - - + + + diff --git a/workflow/engine/data/mysql/schema.sql b/workflow/engine/data/mysql/schema.sql index b89e52241..9cc363687 100644 --- a/workflow/engine/data/mysql/schema.sql +++ b/workflow/engine/data/mysql/schema.sql @@ -2781,9 +2781,9 @@ CREATE TABLE `EMAIL_SERVER` `MESS_TRY_SEND_INMEDIATLY` INTEGER default 0 NOT NULL, `MAIL_TO` VARCHAR(256) default '', `MESS_DEFAULT` INTEGER default 0 NOT NULL, - `OAUTH_CLIENT_ID` VARCHAR(256) default '' NOT NULL, - `OAUTH_CLIENT_SECRET` VARCHAR(256) default '' NOT NULL, - `OAUTH_REFRESH_TOKEN` VARCHAR(256) default '' 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`) )ENGINE=InnoDB DEFAULT CHARSET='utf8'; #----------------------------------------------------------------------------- diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/EmailServer.php b/workflow/engine/src/ProcessMaker/BusinessModel/EmailServer.php index 3b1166cd1..6af4c2957 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/EmailServer.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/EmailServer.php @@ -5,6 +5,7 @@ use AppMessage; use Bootstrap; use Exception; use G; +use Illuminate\Support\Facades\Crypt; use ProcessMaker\Core\System; use SpoolRun; use TemplatePower; @@ -809,6 +810,13 @@ class EmailServer $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); $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); if ($emailServer->validate()) { @@ -1197,9 +1212,12 @@ class EmailServer $arrayData["MESS_PASSWORD_HIDDEN"] = ''; $arrayData["MESS_EXECUTE_EVERY"] = ''; $arrayData["MESS_SEND_MAX"] = ''; - $arrayData["OAUTH_CLIENT_ID"] = $row["OAUTH_CLIENT_ID"]; - $arrayData["OAUTH_CLIENT_SECRET"] = $row["OAUTH_CLIENT_SECRET"]; - $arrayData["OAUTH_REFRESH_TOKEN"] = $row["OAUTH_REFRESH_TOKEN"]; + $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 @@ -1296,6 +1314,9 @@ class EmailServer while ($rsCriteria->next()) { $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); } @@ -1349,6 +1370,9 @@ class EmailServer $row["MESS_PASSWORD_HIDDEN"] = ''; $row["MESS_EXECUTE_EVERY"] = ''; $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 (!$flagGetRecord)? $this->getEmailServerDataFromRecord($row) : $row; diff --git a/workflow/engine/src/ProcessMaker/Model/EmailServerModel.php b/workflow/engine/src/ProcessMaker/Model/EmailServerModel.php index 12faca19e..0322f23ff 100644 --- a/workflow/engine/src/ProcessMaker/Model/EmailServerModel.php +++ b/workflow/engine/src/ProcessMaker/Model/EmailServerModel.php @@ -3,6 +3,7 @@ namespace ProcessMaker\Model; use Illuminate\Database\Eloquent\Model; +use Illuminate\Support\Facades\Crypt; class EmailServerModel extends Model { @@ -41,6 +42,15 @@ class EmailServerModel extends Model $res = $query->get()->values()->toArray(); $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; } @@ -83,6 +93,12 @@ class EmailServerModel extends Model $firstElement['MESS_PASSWORD_HIDDEN'] = ''; $firstElement['MESS_EXECUTE_EVERY'] = ''; $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;