From a30904ace4f46e5c96c9626c4511397a4e055851 Mon Sep 17 00:00:00 2001 From: DariusIII Date: Mon, 5 Aug 2019 15:44:00 +0200 Subject: [PATCH] Fix sending invites when site is in invite mode --- Changelog | 2 ++ app/Http/Controllers/Admin/UserController.php | 2 +- app/Http/Controllers/AjaxController.php | 25 +++++++++++++++++++ app/Http/Controllers/ContactUsController.php | 2 +- app/Models/User.php | 9 ++++--- app/Observers/UserServiceObserver.php | 6 ++--- resources/views/themes/Gentele/profile.tpl | 1 - resources/views/themes/admin/group-list.tpl | 4 +-- routes/web.php | 4 +++ 9 files changed, 43 insertions(+), 12 deletions(-) create mode 100644 app/Http/Controllers/AjaxController.php diff --git a/Changelog b/Changelog index 98f5f72f8..fcbb7e17f 100755 --- a/Changelog +++ b/Changelog @@ -1,3 +1,5 @@ +2019-08-05 DariusIII + * Chg: Fix sending invites when site is in invite mode 2019-08-04 DariusIII * Chg: Update used libraries to their latest versions 2019-08-02 DariusIII diff --git a/app/Http/Controllers/Admin/UserController.php b/app/Http/Controllers/Admin/UserController.php index c1c75d9b7..2edf86ba0 100644 --- a/app/Http/Controllers/Admin/UserController.php +++ b/app/Http/Controllers/Admin/UserController.php @@ -151,7 +151,7 @@ class UserController extends BasePageController \Firewall::blacklist($editedUser->host); } $editedUser->refresh(); - SendAccountChangedEmail::dispatch($editedUser); + SendAccountChangedEmail::dispatch($editedUser)->onQueue('emails'); } } diff --git a/app/Http/Controllers/AjaxController.php b/app/Http/Controllers/AjaxController.php new file mode 100644 index 000000000..95f1595fb --- /dev/null +++ b/app/Http/Controllers/AjaxController.php @@ -0,0 +1,25 @@ +setPrefs(); + if ($request->has('action') && (int) $request->input('action') === 1 && $request->has('emailto')) { + $emailTo = $request->input('emailto'); + $ret = User::sendInvite(url('/'), $this->userdata->id, $emailTo); + if (! $ret) { + print 'Invite not sent.'; + } else { + print 'Invite sent. Alternatively paste them following link to register - ' . $ret; + } + } else { + print 'Invite not sent.'; + } + } +} diff --git a/app/Http/Controllers/ContactUsController.php b/app/Http/Controllers/ContactUsController.php index 2de252e60..0d88544f1 100644 --- a/app/Http/Controllers/ContactUsController.php +++ b/app/Http/Controllers/ContactUsController.php @@ -42,7 +42,7 @@ class ContactUsController extends BasePageController } if (! preg_match("/\n/i", $request->input('useremail'))) { - SendContactUsEmail::dispatch($email, $mailTo, $mailBody); + SendContactUsEmail::dispatch($email, $mailTo, $mailBody)->onQueue('contactemail'); } $msg = "

Thank you for getting in touch with ".Settings::settingValue('site.main.title').'.

'; } diff --git a/app/Models/User.php b/app/Models/User.php index 94a81a15c..9cd09e308 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -400,13 +400,13 @@ class User extends Authenticatable $users = self::query()->whereDate('rolechangedate', '=', $value)->get(); $days = $now->diffInDays($value); foreach ($users as $user) { - SendAccountWillExpireEmail::dispatch($user, $days); + SendAccountWillExpireEmail::dispatch($user, $days)->onQueue('emails'); } } foreach (self::query()->whereDate('rolechangedate', '<', $now)->get() as $expired) { $expired->update(['roles_id' => self::ROLE_USER, 'rolechangedate' => null]); $expired->syncRoles('User'); - SendAccountExpiredEmail::dispatch($expired); + SendAccountExpiredEmail::dispatch($expired)->onQueue('emails'); } } @@ -881,10 +881,10 @@ class User extends Authenticatable public static function sendInvite($serverUrl, $uid, $emailTo): string { $token = \Token::randomString(40); - $url = $serverUrl.'register?invitecode='.$token; + $url = $serverUrl.'/register?invitecode='.$token; Invitation::addInvite($uid, $token); - SendInviteEmail::dispatch($emailTo, $uid, $url); + SendInviteEmail::dispatch($emailTo, $uid, $url)->onQueue('emails'); return $url; } @@ -896,6 +896,7 @@ class User extends Authenticatable * limits to apply. * * @param int $days + * @throws \Exception */ public static function pruneRequestHistory($days = 0): void { diff --git a/app/Observers/UserServiceObserver.php b/app/Observers/UserServiceObserver.php index 1f3907512..1556ca82e 100644 --- a/app/Observers/UserServiceObserver.php +++ b/app/Observers/UserServiceObserver.php @@ -37,8 +37,8 @@ class UserServiceObserver ] ); if (! empty(Settings::settingValue('site.main.email') && File::isFile(base_path().'/_install/install.lock'))) { - SendNewRegisteredAccountMail::dispatch($user); - SendWelcomeEmail::dispatch($user); + SendNewRegisteredAccountMail::dispatch($user)->onQueue('newreg'); + SendWelcomeEmail::dispatch($user)->onQueue('welcomeemails'); UserVerification::generate($user); UserVerification::send($user, 'User email verification required'); @@ -50,6 +50,6 @@ class UserServiceObserver */ public function deleting(User $user) { - SendAccountDeletedEmail::dispatch($user); + SendAccountDeletedEmail::dispatch($user)->onQueue('deleted'); } } diff --git a/resources/views/themes/Gentele/profile.tpl b/resources/views/themes/Gentele/profile.tpl index 0c9a2fa7b..7707be6d7 100755 --- a/resources/views/themes/Gentele/profile.tpl +++ b/resources/views/themes/Gentele/profile.tpl @@ -183,7 +183,6 @@