Mail alert on service token generate from BO

This commit is contained in:
Jérémy Munsch 2021-09-08 17:14:39 +02:00
parent 72a5b73902
commit de25ed732c
5 changed files with 114 additions and 1 deletions

View file

@ -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'");

View file

@ -0,0 +1,30 @@
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class GenerateApiToken extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return auth()->check();
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
//
];
}
}

View file

@ -0,0 +1,55 @@
<?php
namespace App\Mail;
use App\Models\Service;
use App\Models\User;
use Illuminate\Mail\Mailable;
class ServiceCredentialRenewed extends Mailable
{
/**
* The concerned service
*
* @var \App\Models\Service
*/
public $service;
/**
* The user who did the action
*
* @var \App\Models\User
*/
public $user;
/**
* Create a new message instance.
*
* @return void
*/
public function __construct(Service $service, User $user)
{
$this->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'))
);
}
}

View file

@ -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 !

View file

@ -0,0 +1,13 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>{{ config('app.name') }} Service Warning</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<h1>Un service vient d'être régénéré sur {{ $appName }}</h1>
<h2>{{ $service->name }} (marque : {{ $service->brand->name }})</h2>
<h3>Régénéré le {{ $service->updated_at->format('D d/m/Y H:i') }} <br> par {{ $by }}</h3>
<p><b>Celà va empêcher le service de fonctionner</b> tant que les crédentials d'api n'auront pas été mis à jour sur le service concerné, veuillez faire au plus vite !</p>
</body>
</html>