From 4bc66213a43f587fcdbaf936b505a851cbb212de Mon Sep 17 00:00:00 2001 From: Arno Kaimbacher Date: Tue, 13 Oct 2020 12:18:49 +0200 Subject: [PATCH] - inform main admin about new user registration - in UserController.php new user is created and and email will be sent - email view is in resources/views/emails/newUserEmail.blade.php - App\MailNewUser Mailable --- .../Settings/Access/UserController.php | 27 +++++++--- app/Mail/NewUser.php | 36 +++++++++++++ config/app.php | 2 +- config/mail.php | 52 +++++++++++++++---- resources/views/emails/newUserEmail.blade.php | 19 +++++++ 5 files changed, 118 insertions(+), 18 deletions(-) create mode 100644 app/Mail/NewUser.php create mode 100644 resources/views/emails/newUserEmail.blade.php diff --git a/app/Http/Controllers/Settings/Access/UserController.php b/app/Http/Controllers/Settings/Access/UserController.php index 664187b..5d16b53 100644 --- a/app/Http/Controllers/Settings/Access/UserController.php +++ b/app/Http/Controllers/Settings/Access/UserController.php @@ -2,11 +2,13 @@ namespace App\Http\Controllers\Settings\Access; use App\Http\Controllers\Controller; +use App\Mail\NewUser; use App\Models\Role; use App\Models\User; use Illuminate\Http\Request; -use Illuminate\Support\Facades\Hash; use Illuminate\Support\Facades\Auth; +use Illuminate\Support\Facades\Hash; +use Illuminate\Support\Facades\Mail; class UserController extends Controller { @@ -81,6 +83,18 @@ class UserController extends Controller } } + // inform main admin about new user + $adminUser = User::where('email', config('mail.mailadmin'))->first(); + if ($adminUser) { + // Mail::to("receiver@example.com")->send(new DemoEmail($objDemo)); + $details = [ + 'title' => 'New user ', + 'admin_name' => $adminUser->login, + 'email' => $user->email, + ]; + Mail::to($adminUser->email)->send(new NewUser($details)); + } + return redirect() ->route('access.user.index') ->with('success', 'User has been created successfully'); @@ -149,7 +163,7 @@ class UserController extends Controller $errors = new \Illuminate\Support\MessageBag(); if (array_key_exists('current_password', $input)) { - // if user is not admin he must enter old_password if a new password is defined + // if user is not admin he must enter old_password if a new password is defined if (!Auth::user()->hasRole('Administrator') && $input['current_password'] == null && $input['password'] != null) { //ModelState.AddModelError("OldPassword", Resources.User_Edit_OldPasswordEmpty); //$flash_message = 'Current password should not be empty.'; @@ -158,7 +172,6 @@ class UserController extends Controller $valid = false; } - if ($input['current_password'] != null && $this->validateUser($user->id, $input['current_password']) == false) { //$flash_message = 'Password does not match the current password.'; $errors->add('your_custom_error', 'Password does not match the current password.'); @@ -166,8 +179,6 @@ class UserController extends Controller } } - - //$input = $request->only(['login', 'email', 'password']); //Retreive the name, email and password fields if ($valid == true) { $user->login = $input['login']; @@ -175,7 +186,7 @@ class UserController extends Controller if ($input['password']) { $user->password = Hash::make($input['password']); } - + $user->save(); $roles = $request['roles']; //Retreive all roles @@ -194,8 +205,8 @@ class UserController extends Controller // ->with('flash_message', 'User successfully edited.'); } return back() - ->withInput($input) - ->withErrors($errors); + ->withInput($input) + ->withErrors($errors); } /** diff --git a/app/Mail/NewUser.php b/app/Mail/NewUser.php new file mode 100644 index 0000000..3452d0e --- /dev/null +++ b/app/Mail/NewUser.php @@ -0,0 +1,36 @@ +details = $details; + } + + /** + * Build the message. + * + * @return $this + */ + public function build() + { + return $this + ->subject('Mail from www.tethys.at') + ->view('emails.newUserEmail'); + } +} diff --git a/config/app.php b/config/app.php index 73ca162..a1648a7 100755 --- a/config/app.php +++ b/config/app.php @@ -15,7 +15,7 @@ return [ 'workspacePath' => storage_path() . DIRECTORY_SEPARATOR . "workspace", - 'name' => env('APP_NAME', 'App'), + 'name' => env('APP_NAME', 'Tethys'), /* |-------------------------------------------------------------------------- diff --git a/config/mail.php b/config/mail.php index 34297e0..329544f 100644 --- a/config/mail.php +++ b/config/mail.php @@ -54,7 +54,10 @@ return [ | */ - 'from' => ['address' => env('MAIL_FROM', null), 'name' => 'Hasan Doha'], + 'from' => [ + 'address' => env('MAIL_FROM_ADDRESS', 'hello@example.com'), + 'name' => env('MAIL_FROM_NAME', 'Example'), + ], /* |-------------------------------------------------------------------------- @@ -67,7 +70,7 @@ return [ | */ - 'encryption' => 'tls', + 'encryption' => env('MAIL_ENCRYPTION', 'tls'), /* |-------------------------------------------------------------------------- @@ -95,6 +98,8 @@ return [ 'password' => env('MAIL_PASSWORD'), + 'mailadmin' => env('MAIL_ADMIN', 'hello@example.com'), + /* |-------------------------------------------------------------------------- | Sendmail System Path @@ -106,19 +111,48 @@ return [ | */ - 'sendmail' => '/usr/sbin/sendmail -bs', + // 'sendmail' => '/usr/sbin/sendmail -bs', + + 'sendmail' => 'sendmail -bs', - /* + 'stream' => [ + 'ssl' => [ + 'allow_self_signed' => true, + 'verify_peer' => false, + 'verify_peer_name' => false, + ], + ], + + /* |-------------------------------------------------------------------------- - | Mail "Pretend" + | Markdown Mail Settings |-------------------------------------------------------------------------- | - | When this option is enabled, e-mail will not actually be sent over the - | web and will instead be written to your application's logs files so - | you may inspect the message. This is great for local development. + | If you are using Markdown based email rendering, you may configure your + | theme and component paths here, allowing you to customize the design + | of the emails. Or, you may simply stick with the Laravel defaults! | */ - 'pretend' => false, + 'markdown' => [ + 'theme' => 'default', + + 'paths' => [ + resource_path('views/vendor/mail'), + ], + ], + + /* + |-------------------------------------------------------------------------- + | Log Channel + |-------------------------------------------------------------------------- + | + | If you are using the "log" driver, you may specify the logging channel + | if you prefer to keep mail messages separate from other log entries + | for simpler reading. Otherwise, the default channel will be used. + | + */ + + 'log_channel' => env('MAIL_LOG_CHANNEL'), ]; diff --git a/resources/views/emails/newUserEmail.blade.php b/resources/views/emails/newUserEmail.blade.php new file mode 100644 index 0000000..7cfdf5e --- /dev/null +++ b/resources/views/emails/newUserEmail.blade.php @@ -0,0 +1,19 @@ + + + + www.tethys.at" + + +

{{ $details['title'] }}

+ +

+ Dear {{$details['admin_name']}}, +

+ + a new user with email {{ $details['email'] }} has been registered to your site. + +Thanks, +{{ config('app.name') }} +

Thank you

+ +