mirror of
https://github.com/VueFileManager/vuefilemanager.git
synced 2026-04-30 19:45:59 +00:00
improved email setup in admin settings
This commit is contained in:
@@ -57,7 +57,7 @@ class SetupDevEnvironment extends Command
|
||||
|
||||
$this->info('Storing default settings and content...');
|
||||
($this->seedDefaultPages)();
|
||||
($this->seedDefaultSettings)($this->argument('type'));
|
||||
($this->seedDefaultSettings)($this->argument('license'));
|
||||
($this->seedDefaultLanguage)();
|
||||
$this->store_default_settings();
|
||||
|
||||
@@ -82,6 +82,8 @@ class SetupDevEnvironment extends Command
|
||||
'--stop-when-empty' => true,
|
||||
]);
|
||||
|
||||
$this->warn('Please make sure your current host/domain where you are running app is included in your .env SANCTUM_STATEFUL_DOMAINS variable.');
|
||||
|
||||
$this->info('Everything is done, congratulations! 🥳🥳🥳');
|
||||
}
|
||||
|
||||
@@ -1026,7 +1028,7 @@ class SetupDevEnvironment extends Command
|
||||
],
|
||||
[
|
||||
'name' => 'license',
|
||||
'value' => $this->argument('type'),
|
||||
'value' => $this->argument('license'),
|
||||
],
|
||||
[
|
||||
'name' => 'purchase_code',
|
||||
|
||||
@@ -8,9 +8,12 @@ use Domain\Pages\Actions\SeedDefaultPagesAction;
|
||||
use Domain\Settings\Actions\SeedDefaultSettingsAction;
|
||||
use Domain\Localization\Actions\SeedDefaultLanguageAction;
|
||||
use Domain\SetupWizard\Actions\CreateDiskDirectoriesAction;
|
||||
use Illuminate\Foundation\Testing\WithFaker;
|
||||
|
||||
class SetupProdEnvironment extends Command
|
||||
{
|
||||
use WithFaker;
|
||||
|
||||
/**
|
||||
* The name and signature of the console command.
|
||||
*/
|
||||
@@ -30,6 +33,7 @@ class SetupProdEnvironment extends Command
|
||||
private SeedDefaultPagesAction $seedDefaultPages,
|
||||
) {
|
||||
parent::__construct();
|
||||
$this->setUpFaker();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -51,7 +55,7 @@ class SetupProdEnvironment extends Command
|
||||
$this->store_default_settings();
|
||||
|
||||
($this->seedDefaultPages)();
|
||||
($this->seedDefaultSettings)($this->argument('type'));
|
||||
($this->seedDefaultSettings)($this->argument('license'));
|
||||
($this->seedDefaultLanguage)();
|
||||
|
||||
$this->info('Creating default admin...');
|
||||
@@ -60,6 +64,8 @@ class SetupProdEnvironment extends Command
|
||||
$this->info('Clearing application cache...');
|
||||
$this->clear_cache();
|
||||
|
||||
$this->warn('Please make sure your current host/domain where you are running app is included in your .env SANCTUM_STATEFUL_DOMAINS variable.');
|
||||
|
||||
$this->info('Everything is done, congratulations! 🥳🥳🥳');
|
||||
}
|
||||
|
||||
@@ -136,7 +142,7 @@ class SetupProdEnvironment extends Command
|
||||
],
|
||||
[
|
||||
'name' => 'license',
|
||||
'value' => $this->argument('type'),
|
||||
'value' => $this->argument('license'),
|
||||
],
|
||||
[
|
||||
'name' => 'purchase_code',
|
||||
@@ -197,7 +203,15 @@ class SetupProdEnvironment extends Command
|
||||
$user
|
||||
->settings()
|
||||
->create([
|
||||
'name' => 'Admin',
|
||||
'first_name' => 'Jane',
|
||||
'last_name' => 'Doe',
|
||||
'address' => $this->faker->address,
|
||||
'state' => $this->faker->state,
|
||||
'city' => $this->faker->city,
|
||||
'postal_code' => $this->faker->postcode,
|
||||
'country' => $this->faker->randomElement(['SK', 'CZ', 'DE', 'FR']),
|
||||
'phone_number' => $this->faker->phoneNumber,
|
||||
'timezone' => $this->faker->randomElement(['+1.0', '+2.0', '+3.0']),
|
||||
]);
|
||||
|
||||
// Show user credentials
|
||||
@@ -218,6 +232,12 @@ class SetupProdEnvironment extends Command
|
||||
$this->call('key:generate', [
|
||||
'--force' => true,
|
||||
]);
|
||||
|
||||
$currentHost = request()->getHost() . ',' . request()->getHost() . ':' . request()->getPort();
|
||||
|
||||
setEnvironmentValue([
|
||||
'SANCTUM_STATEFUL_DOMAINS' => "localhost,localhost:8000,127.0.0.1,127.0.0.1:8000,::1,$currentHost",
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,36 +0,0 @@
|
||||
<?php
|
||||
namespace Domain\Settings\Controllers;
|
||||
|
||||
use Artisan;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\Response;
|
||||
|
||||
class SetEmailController
|
||||
{
|
||||
/**
|
||||
* Set new email credentials to .env file
|
||||
*/
|
||||
public function __invoke(Request $request): Response
|
||||
{
|
||||
// TODO: pridat validator do requestu
|
||||
// Abort in demo mode
|
||||
abort_if(is_demo(), 204, 'Done.');
|
||||
|
||||
if (! app()->runningUnitTests()) {
|
||||
setEnvironmentValue([
|
||||
'MAIL_DRIVER' => $request->input('driver'),
|
||||
'MAIL_HOST' => $request->input('host'),
|
||||
'MAIL_PORT' => $request->input('port'),
|
||||
'MAIL_USERNAME' => $request->input('username'),
|
||||
'MAIL_PASSWORD' => $request->input('password'),
|
||||
'MAIL_ENCRYPTION' => $request->input('encryption'),
|
||||
]);
|
||||
|
||||
// Clear config cache
|
||||
Artisan::call('config:clear');
|
||||
Artisan::call('config:cache');
|
||||
}
|
||||
|
||||
return response('Done', 204);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,65 @@
|
||||
<?php
|
||||
|
||||
namespace Domain\Settings\Controllers;
|
||||
|
||||
use Artisan;
|
||||
use Domain\Settings\Requests\StoreEmailCredentialsRequest;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\Response;
|
||||
|
||||
class StoreEmailCredentialsController
|
||||
{
|
||||
/**
|
||||
* Set new email credentials to .env file
|
||||
*/
|
||||
public function __invoke(StoreEmailCredentialsRequest $request): Response
|
||||
{
|
||||
// Abort in demo mode
|
||||
abort_if(is_demo(), 204, 'Done.');
|
||||
|
||||
if (!app()->runningUnitTests()) {
|
||||
|
||||
$mail = [
|
||||
'log' => [
|
||||
'MAIL_DRIVER' => 'log',
|
||||
],
|
||||
'postmark' => [
|
||||
'MAIL_DRIVER' => 'postmark',
|
||||
'POSTMARK_TOKEN' => $request->input('postmark.token'),
|
||||
],
|
||||
'smtp' => [
|
||||
'MAIL_DRIVER' => 'smtp',
|
||||
'MAIL_HOST' => $request->input('smtp.host'),
|
||||
'MAIL_PORT' => $request->input('smtp.port'),
|
||||
'MAIL_USERNAME' => $request->input('smtp.username'),
|
||||
'MAIL_PASSWORD' => $request->input('smtp.password'),
|
||||
'MAIL_ENCRYPTION' => $request->input('smtp.encryption'),
|
||||
],
|
||||
'ses' => [
|
||||
'MAIL_DRIVER' => 'ses',
|
||||
'AWS_ACCESS_KEY_ID' => $request->input('ses.access_key'),
|
||||
'AWS_SECRET_ACCESS_KEY' => $request->input('ses.secret_access_key'),
|
||||
'AWS_DEFAULT_REGION' => $request->input('ses.default_region'),
|
||||
'AWS_SESSION_TOKEN' => $request->input('ses.session_token'),
|
||||
],
|
||||
'mailgun' => [
|
||||
'MAIL_DRIVER' => 'mailgun',
|
||||
'MAILGUN_DOMAIN' => $request->input('mailgun.domain'),
|
||||
'MAILGUN_SECRET' => $request->input('mailgun.secret'),
|
||||
'MAILGUN_ENDPOINT' => $request->input('mailgun.endpoint'),
|
||||
],
|
||||
];
|
||||
|
||||
// Store credentials for mail
|
||||
setEnvironmentValue(
|
||||
$mail[$request->input('mailDriver')]
|
||||
);
|
||||
|
||||
// Clear config cache
|
||||
Artisan::call('config:clear');
|
||||
Artisan::call('config:cache');
|
||||
}
|
||||
|
||||
return response('Done', 204);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
<?php
|
||||
namespace Domain\Settings\Requests;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class StoreEmailCredentialsRequest extends FormRequest
|
||||
{
|
||||
/**
|
||||
* Determine if the user is authorized to make this request.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function authorize()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function rules()
|
||||
{
|
||||
return [
|
||||
'mailDriver' => 'required|string',
|
||||
'smtp' => 'sometimes|array',
|
||||
'ses' => 'sometimes|array',
|
||||
'mailgun' => 'sometimes|array',
|
||||
'postmark' => 'sometimes|array',
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -44,6 +44,7 @@ class StoreEnvironmentSettingsController extends Controller
|
||||
'MAIL_DRIVER' => 'log',
|
||||
],
|
||||
'postmark' => [
|
||||
'MAIL_DRIVER' => 'postmark',
|
||||
'POSTMARK_TOKEN' => $request->input('postmark.token'),
|
||||
],
|
||||
'smtp' => [
|
||||
|
||||
@@ -33,9 +33,10 @@ class StoreEnvironmentSetupRequest extends FormRequest
|
||||
'storage.region' => 'sometimes|nullable|string',
|
||||
'storage.bucket' => 'sometimes|nullable|string',
|
||||
'mailDriver' => 'required|string',
|
||||
'mail' => 'sometimes|array',
|
||||
'smtp' => 'sometimes|array',
|
||||
'ses' => 'sometimes|array',
|
||||
'mailgun' => 'sometimes|array',
|
||||
'postmark' => 'sometimes|array',
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user