1
0
mirror of https://github.com/freescout-helpdesk/freescout.git synced 2024-11-23 19:02:46 +01:00

Merge pull request #1227 from davask/encrypt_mail_password

encrypt mail password
This commit is contained in:
FreeScout 2021-05-21 15:35:29 +03:00 committed by GitHub
commit 323524ac1b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 45 additions and 2 deletions

View File

@ -187,13 +187,14 @@ class SettingsController extends Controller
];
break;
case 'emails':
$mail_password = Option::get('mail_password', \Config::get('mail.password'));
$settings = [
'mail_from' => \App\Misc\Mail::getSystemMailFrom(),
'mail_driver' => Option::get('mail_driver', \Config::get('mail.driver')),
'mail_host' => Option::get('mail_host', \Config::get('mail.host')),
'mail_port' => Option::get('mail_port', \Config::get('mail.port')),
'mail_username' => Option::get('mail_username', \Config::get('mail.username')),
'mail_password' => Option::get('mail_password', \Config::get('mail.password')),
'mail_password' => !is_null($mail_password) ? decrypt($mail_password) : null,
'mail_encryption' => Option::get('mail_encryption', \Config::get('mail.encryption')),
'fetch_schedule' => config('app.fetch_schedule'),
];
@ -298,6 +299,7 @@ class SettingsController extends Controller
// By some reason isset() does not work for empty elements.
if (array_key_exists($option_name, $request->settings)) {
$option_value = $request->settings[$option_name];
if ($option_name == "mail_password") $option_value = encrypt($option_value);
Option::set($option_name, $option_value);
} else {
// If option does not exist, default will be used,

View File

@ -159,7 +159,7 @@ class Mail
\Config::set('mail.password', null);
} else {
\Config::set('mail.username', Option::get('mail_username'));
\Config::set('mail.password', Option::get('mail_password'));
\Config::set('mail.password', decrypt(Option::get('mail_password')));
}
\Config::set('mail.encryption', Option::get('mail_encryption'));
}

View File

@ -0,0 +1,41 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class EncryptOptionPassword extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
\App\Option::get('mail_password', \Config::get('mail.password'));
$section = 'emails';
$settings = [
'mail_password' => !is_null($mail_password) ? encrypt($mail_password) : null;
];
$Option->processSave($section, $settings);
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
\App\Option::get('mail_password', \Config::get('mail.password'));
$section = 'emails';
$settings = [
'mail_password' => !is_null($mail_password) ? decrypt($mail_password) : null;
];
$Option->processSave($section, $settings);
}
}