diff --git a/app/Listeners/CheckoutableListener.php b/app/Listeners/CheckoutableListener.php index 7d8b5c1c9..cf9464a78 100644 --- a/app/Listeners/CheckoutableListener.php +++ b/app/Listeners/CheckoutableListener.php @@ -73,14 +73,17 @@ class CheckoutableListener * 2. The item has a EULA * 3. The item should send an email at check-in/check-out */ - if ($notifiable instanceof User && $notifiable->email != '') { + if ($notifiable instanceof User) { if ($event->checkoutable->requireAcceptance() || $event->checkoutable->getEula() || (method_exists($event->checkoutable, 'checkin_email') && $event->checkoutable->checkin_email())) { - Mail::to($notifiable)->cc($ccEmails)->send($mailable); + if (!empty($notifiable->email)) { + Mail::to($notifiable)->cc($ccEmails)->send($mailable); + } else { + Mail::cc($ccEmails)->send($mailable); + } Log::info('Sending email, Locale: ' . ($event->checkedOutTo->locale ?? 'default')); } } - // Send Webhook notification if ($this->shouldSendWebhookNotification()) { Notification::route(Setting::getSettings()->webhook_selected, Setting::getSettings()->webhook_endpoint) diff --git a/routes/web.php b/routes/web.php index e54f4f706..e0e623e8d 100644 --- a/routes/web.php +++ b/routes/web.php @@ -25,7 +25,9 @@ use App\Http\Controllers\Auth\ForgotPasswordController; use App\Http\Controllers\Auth\ResetPasswordController; use App\Livewire\Importer; use App\Models\Asset; +use App\Models\Setting; use App\Models\User; +use Illuminate\Support\Facades\Mail; use Illuminate\Support\Facades\Route; use Illuminate\Support\Facades\Auth; @@ -552,21 +554,32 @@ Route::middleware(['auth'])->get( [DashboardController::class, 'index'] )->name('home'); Route::get('/test-email', function() { - $item = Asset::find(1); // Load some test data - $admin = User::find(1); - $target = User::find(2); + $item = \App\Models\LicenseSeat::find(1); // Load some test data + $admin = User::find(2); + $target = User::find(1); $acceptance = null; // Simulate acceptance data $note = 'Test note'; + $settings = Setting::getSettings(); + $adminCcEmailsArray = []; - $fields = []; - if (($item->model) && ($item->model->fieldset)) { - $fields = $item->model->fieldset->fields; + if($settings->admin_cc_email !== '') { + $adminCcEmail = $settings->admin_cc_email; + $adminCcEmailsArray = array_map('trim', explode(',', $adminCcEmail)); + } + $ccEmails = array_filter($adminCcEmailsArray); + if (!empty($target->email)) { + Mail::to($target)->cc($ccEmails)->send( new \App\Mail\CheckoutLicenseMail( + $item, + $admin, + $target, + $acceptance, + $note)); + } else { + Mail::cc($ccEmails)->send(new \App\Mail\CheckoutLicenseMail( + $item, + $admin, + $target, + $acceptance, + $note)); } - - return new \App\Mail\CheckoutAssetMail( - $item, - $admin, - $target, - $acceptance, - $note); }); \ No newline at end of file