diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php index 8e43ef0..54d1443 100644 --- a/app/Http/Controllers/UserController.php +++ b/app/Http/Controllers/UserController.php @@ -3,10 +3,18 @@ namespace App\Http\Controllers; use App\Models\User; +use Illuminate\Database\Eloquent\Model; class UserController extends CrudController { /** @var User */ protected static $modelClass = User::class; + + public function storedModel(Model &$model) + { + /** @var \App\Models\User */ + $model = $model; + $model->sendMailConfirm(); + } } diff --git a/app/Jobs/SendUserCreatedEmail.php b/app/Jobs/SendUserCreatedEmail.php new file mode 100644 index 0000000..d17c49c --- /dev/null +++ b/app/Jobs/SendUserCreatedEmail.php @@ -0,0 +1,44 @@ +user = $user->withoutRelations(); + } + + /** + * Execute the job. + * + * @return void + */ + public function handle() + { + Mail::to(['email' => $this->user->email]) + ->send(new UserCreatedMail($this->user)); + Log::debug(sprintf('Sent %s to %s', UserCreatedMail::class, $this->user->email)); + } +} diff --git a/app/Mail/UserCreatedMail.php b/app/Mail/UserCreatedMail.php new file mode 100644 index 0000000..41f59cd --- /dev/null +++ b/app/Mail/UserCreatedMail.php @@ -0,0 +1,37 @@ +user = $user; + } + + /** + * Build the message. + * + * @return $this + */ + public function build() + { + return $this + ->subject(sprintf('%s : Votre compte a été crée', config('app.name'))) + ->view('emails.mail-created') + ->text('emails.mail-created-plain') + ->with('user', $this->user) + ->with('pwd', $this->user->tmpPass); + } +} diff --git a/app/Models/User.php b/app/Models/User.php index cbf45df..8e0f7ef 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -5,6 +5,7 @@ namespace App\Models; use App\Enums\CrudAction; use App\Enums\CrudType; use App\Enums\Role; +use App\Jobs\SendUserCreatedEmail; use App\Traits\IsCrudModel; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\SoftDeletes; @@ -30,6 +31,9 @@ class User extends Authenticatable protected $crudValueColumn = 'id'; + // stores unhashed pwd + public $tmpPass = null; + /** * The attributes that are mass assignable. * @@ -144,6 +148,7 @@ class User extends Authenticatable static::creating(function (User $user) { if (\is_null($user->password)) { $user->password = Str::random(10); + $user->tmpPass = $user->password; } if (Hash::needsRehash($user->password)) { $user->password = Hash::make($user->password); @@ -175,4 +180,9 @@ class User extends Authenticatable { return $this->belongsToMany(Project::class); } + + public function sendMailConfirm() + { + dispatch(new SendUserCreatedEmail($this)); + } } diff --git a/resources/views/emails/mail-created-plain.blade.php b/resources/views/emails/mail-created-plain.blade.php new file mode 100644 index 0000000..af3eb5b --- /dev/null +++ b/resources/views/emails/mail-created-plain.blade.php @@ -0,0 +1,4 @@ +Bonjour {{ $user->name }}, +Votre compte {{ config('app.name') }} vient d'être créé. Votre identifiant est votre email. +Votre mot de passe est le suivant: {{$pwd }} +Merci d'enregistrer celui-ci dans un gestionnaire de mot de passe et de supprimer cet email au plus vite. diff --git a/resources/views/emails/mail-created.blade.php b/resources/views/emails/mail-created.blade.php new file mode 100644 index 0000000..0bf4f87 --- /dev/null +++ b/resources/views/emails/mail-created.blade.php @@ -0,0 +1,13 @@ + + + + {{ config('app.name') }} + + + +

Bonjour {{ $user->name }},

+

Votre compte {{ config('app.name') }} vient d'être créé. Votre identifiant est votre email.

+

Votre mot de passe est le suivant : {{$pwd }}

+

Merci d'enregistrer celui-ci dans un gestionnaire de mot de passe et de supprimer cet email au plus vite.

+ + diff --git a/resources/views/ticket/form-inputs.blade.php b/resources/views/ticket/form-inputs.blade.php index e015468..9e5bded 100644 --- a/resources/views/ticket/form-inputs.blade.php +++ b/resources/views/ticket/form-inputs.blade.php @@ -1,6 +1,6 @@ @include('modules.error-messages') @php -$userPr = Auth::user()->projects; +$userPr = Auth::user()->projects ?? collect([]); @endphp
diff --git a/resources/views/ticket/index.blade.php b/resources/views/ticket/index.blade.php index 78bb4b0..157e169 100644 --- a/resources/views/ticket/index.blade.php +++ b/resources/views/ticket/index.blade.php @@ -1,6 +1,9 @@ @extends('layout.app') @section('content') +@php +$userPr = Auth::user()->projects ?? collect([]); +@endphp

Gestion des tickets @if(request()->status) (Archivés) @endif