diff --git a/app/Http/Controllers/ServiceController.php b/app/Http/Controllers/ServiceController.php index ac752ed..98cdcff 100644 --- a/app/Http/Controllers/ServiceController.php +++ b/app/Http/Controllers/ServiceController.php @@ -2,7 +2,10 @@ namespace App\Http\Controllers; +use App\Http\Requests\GenerateApiToken; +use App\Mail\ServiceCredentialRenewed; use App\Models\Service; +use Illuminate\Support\Facades\Mail; use Kwaadpepper\CrudPolicies\Http\Requests\CrudIndexRequest; use Kwaadpepper\CrudPolicies\Traits\CrudController; @@ -27,11 +30,15 @@ class ServiceController extends Controller return view('service.index', $view->getData()); } - public function generateApiToken(Service $service) + // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundInExtendedClassBeforeLastUsed + public function generateApiToken(GenerateApiToken $request, Service $service) { + /** @var \App\Models\User $user */ + $user = auth()->user(); $bearerToken = $service->generateBearerToken(); $bearerPwd = $service->bearer_pwd; $service->saveOrFail(); + Mail::send(new ServiceCredentialRenewed($service, $user)); return back() // phpcs:ignore Generic.Files.LineLength.TooLong ->with('error', "ATTENTION : METTEZ À JOUR LE SITE ! \nNouveau token d'API de $service->name : '$bearerToken' et mot de passe '$bearerPwd'"); diff --git a/app/Http/Requests/GenerateApiToken.php b/app/Http/Requests/GenerateApiToken.php new file mode 100644 index 0000000..cecfde4 --- /dev/null +++ b/app/Http/Requests/GenerateApiToken.php @@ -0,0 +1,30 @@ +check(); + } + + /** + * Get the validation rules that apply to the request. + * + * @return array + */ + public function rules() + { + return [ + // + ]; + } +} diff --git a/app/Mail/ServiceCredentialRenewed.php b/app/Mail/ServiceCredentialRenewed.php new file mode 100644 index 0000000..5a32473 --- /dev/null +++ b/app/Mail/ServiceCredentialRenewed.php @@ -0,0 +1,55 @@ +service = $service; + $this->user = $user; + } + + /** + * Build the message. + * + * @return $this + */ + public function build() + { + return $this->view('mail.service-renewed') + ->subject('!!! Warning !!!, New service credential have been generated !') + ->text('mail.service-renewed-plain') + ->with('appName', config('app.name')) + ->with('service', $this->service) + ->with('by', sprintf('%s %s (%s)', $this->user->firstname, $this->user->lastname, $this->user->email)) + ->to( + config('mail.contactsList.serviceweb', 'equipe.web@ldc.fr'), + sprintf('%s service warning', config('app.name')) + ); + } +} diff --git a/resources/views/mail/service-renewed-plain.blade.php b/resources/views/mail/service-renewed-plain.blade.php new file mode 100644 index 0000000..b3b0c69 --- /dev/null +++ b/resources/views/mail/service-renewed-plain.blade.php @@ -0,0 +1,8 @@ + +{{ config('app.name') }} Service Warning + +Un service vient d'être régénéré sur {{ $appName }} +{{ $service->name }} (marque : {{ $service->brand->name }}) +Régénéré le {{ $service->updated_at->format('D/m/Y H:i') }} +par {{ $by }} +Celà va empêcher le service de fonctionner tant que les crédentials d'api n'auront pas été mis à jour sur le service concerné, veuillez faire au plus vite ! diff --git a/resources/views/mail/service-renewed.blade.php b/resources/views/mail/service-renewed.blade.php new file mode 100644 index 0000000..31a1180 --- /dev/null +++ b/resources/views/mail/service-renewed.blade.php @@ -0,0 +1,13 @@ + + +
+Celà va empêcher le service de fonctionner tant que les crédentials d'api n'auront pas été mis à jour sur le service concerné, veuillez faire au plus vite !
+ +