* Extracted any email confirmation text into langs.
* Added new notification on confirmation email send fail.
Closes #187
use BookStack\Services\EmailConfirmationService;
use BookStack\Services\SocialAuthService;
use BookStack\User;
+use Exception;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Validator;
$this->userRepo = $userRepo;
$this->redirectTo = baseUrl('/');
$this->redirectPath = baseUrl('/');
- $this->username = config('auth.method') === 'standard' ? 'email' : 'username';
parent::__construct();
}
if (setting('registration-confirmation') || setting('registration-restrict')) {
$newUser->save();
- $this->emailConfirmationService->sendConfirmation($newUser);
+
+ try {
+ $this->emailConfirmationService->sendConfirmation($newUser);
+ } catch (Exception $e) {
+ session()->flash('error', trans('auth.email_confirm_send_error'));
+ }
+
return redirect('/register/confirm');
}
$user->email_confirmed = true;
$user->save();
auth()->login($user);
- session()->flash('success', 'Your email has been confirmed!');
+ session()->flash('success', trans('auth.email_confirm_success'));
$this->emailConfirmationService->deleteConfirmationsByUser($user);
return redirect($this->redirectPath);
}
'email' => 'required|email|exists:users,email'
]);
$user = $this->userRepo->getByEmail($request->get('email'));
+
+ try {
+ $this->emailConfirmationService->sendConfirmation($user);
+ } catch (Exception $e) {
+ session()->flash('error', trans('auth.email_confirm_send_error'));
+ return redirect('/register/confirm');
+ }
+
$this->emailConfirmationService->sendConfirmation($user);
- session()->flash('success', 'Confirmation email resent, Please check your inbox.');
+ session()->flash('success', trans('auth.email_confirm_resent'));
return redirect('/register/confirm');
}
namespace BookStack\Http\Controllers;
use BookStack\Activity;
+use Exception;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
// Get avatar from gravatar and save
if (!config('services.disable_services')) {
- $avatar = \Images::saveUserGravatar($user);
- $user->avatar()->associate($avatar);
- $user->save();
+ try {
+ $avatar = \Images::saveUserGravatar($user);
+ $user->avatar()->associate($avatar);
+ $user->save();
+ } catch (Exception $e) {
+ \Log::error('Failed to save user gravatar image');
+ }
+
}
return redirect('/settings/users');
*/
public function toMail($notifiable)
{
+ $appName = ['appName' => setting('app-name')];
return (new MailMessage)
- ->subject('Confirm your email on ' . session('app-name'))
- ->greeting('Thanks for joining ' . setting('app-name') . '!')
- ->line('Please confirm your email address by clicking the button below:')
- ->action('Confirm Email', baseUrl('/register/confirm/' . $this->token));
+ ->subject(trans('auth.email_confirm_subject', $appName))
+ ->greeting(trans('auth.email_confirm_greeting', $appName))
+ ->line(trans('auth.email_confirm_text'))
+ ->action(trans('auth.email_confirm_action'), baseUrl('/register/confirm/' . $this->token));
}
}
use BookStack\Role;
use BookStack\User;
+use Exception;
use Setting;
class UserRepo
// Get avatar from gravatar and save
if (!config('services.disable_services')) {
- $avatar = \Images::saveUserGravatar($user);
- $user->avatar()->associate($avatar);
- $user->save();
+ try {
+ $avatar = \Images::saveUserGravatar($user);
+ $user->avatar()->associate($avatar);
+ $user->save();
+ } catch (Exception $e) {
+ $user->save();
+ \Log::error('Failed to save user gravatar image');
+ }
}
return $user;
public function saveUserGravatar(User $user, $size = 500)
{
$emailHash = md5(strtolower(trim($user->email)));
- $url = 'http://www.gravatar.com/avatar/' . $emailHash . '?s=' . $size . '&d=identicon';
+ $url = 'https://www.gravatar.com/avatar/' . $emailHash . '?s=' . $size . '&d=identicon';
$imageName = str_replace(' ', '-', $user->name . '-gravatar.png');
$image = $this->saveNewFromUrl($url, 'user', $imageName);
$image->created_by = $user->id;
*/
'failed' => 'These credentials do not match our records.',
'throttle' => 'Too many login attempts. Please try again in :seconds seconds.',
+
+ /**
+ * Email Confirmation Text
+ */
+ 'email_confirm_subject' => 'Confirm your email on :appName',
+ 'email_confirm_greeting' => 'Thanks for joining :appName!',
+ 'email_confirm_text' => 'Please confirm your email address by clicking the button below:',
+ 'email_confirm_action' => 'Confirm Email',
+ 'email_confirm_send_error' => 'Email confirmation required but the system could not send the email. Contact the admin to ensure email is set up correctly.',
+ 'email_confirm_success' => 'Your email has been confirmed!',
+ 'email_confirm_resent' => 'Confirmation email resent, Please check your inbox.',
];
\ No newline at end of file