diff --git a/app/Http/Controllers/Settings/Email.php b/app/Http/Controllers/Settings/Email.php index 2ccc438d9..510ad6ade 100644 --- a/app/Http/Controllers/Settings/Email.php +++ b/app/Http/Controllers/Settings/Email.php @@ -4,8 +4,10 @@ namespace App\Http\Controllers\Settings; use App\Abstracts\Http\Controller; use App\Http\Requests\Setting\Setting as Request; +use App\Models\Common\Company; use App\Models\Common\EmailTemplate; use App\Models\Setting\Setting; +use App\Utilities\Installer; use Illuminate\Support\Str; class Email extends Controller @@ -58,6 +60,8 @@ class Email extends Controller $fields = $request->all(); $prefix = $request->get('_prefix', 'email'); + $total_companies = Company::count(); + foreach ($fields as $key => $value) { $real_key = $prefix . '.' . $key; @@ -72,6 +76,10 @@ class Email extends Controller continue; } + if ($total_companies == 1) { + $this->oneCompany($real_key, $value); + } + setting()->set($real_key, $value); } @@ -114,4 +122,32 @@ class Email extends Controller unset($fields[$subject_key]); unset($fields[$body_key]); } + + protected function oneCompany($real_key, $value) + { + if (empty($value)) { + return; + } + + switch ($real_key) { + case 'email.protocol': + Installer::updateEnv(['MAIL_MAILER' => '"' . $value . '"']); + break; + case 'email.smtp_host': + Installer::updateEnv(['MAIL_HOST' => '"' . $value . '"']); + break; + case 'email.smtp_port': + Installer::updateEnv(['MAIL_PORT' => '"' . $value . '"']); + break; + case 'email.smtp_username': + Installer::updateEnv(['MAIL_USERNAME' => '"' . $value . '"']); + break; + case 'email.smtp_password': + Installer::updateEnv(['MAIL_PASSWORD' => '"' . $value . '"']); + break; + case 'email.smtp_encryption': + Installer::updateEnv(['MAIL_ENCRYPTION' => '"' . $value . '"']); + break; + } + } }