Move code to event handlers instead of registration routine.

This commit is contained in:
James Cole
2016-03-28 19:50:24 +02:00
parent 70c8a524cd
commit cc88d5962e
6 changed files with 168 additions and 29 deletions

View File

@@ -4,6 +4,7 @@ declare(strict_types = 1);
namespace FireflyIII\Http\Controllers\Auth;
use Auth;
use FireflyIII\Events\UserRegistration;
use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Http\Controllers\Controller;
use FireflyIII\Repositories\User\UserRepositoryInterface;
@@ -91,14 +92,13 @@ class AuthController extends Controller
/**
* Handle a registration request for the application.
*
* @param UserRepositoryInterface $repository
* @param \Illuminate\Http\Request $request
*
* @return \Illuminate\Http\Response
* @throws FireflyException
* @throws \Illuminate\Foundation\Validation\ValidationException
*/
public function register(UserRepositoryInterface $repository, Request $request)
public function register(Request $request)
{
$validator = $this->validator($request->all());
@@ -123,37 +123,18 @@ class AuthController extends Controller
}
Auth::login($this->create($request->all()));
$user = $this->create($request->all());
// get the email address
if (Auth::user() instanceof User) {
$email = Auth::user()->email;
$address = route('index');
$ipAddress = $request->ip();
// send email.
try {
Mail::send(
['emails.registered-html', 'emails.registered'], ['address' => $address, 'ip' => $ipAddress], function (Message $message) use ($email) {
$message->to($email, $email)->subject('Welcome to Firefly III! ');
}
);
} catch (Swift_TransportException $e) {
Log::error($e->getMessage());
}
// trigger user registration event:
event(new UserRegistration($user, $request->ip()));
// set flash message
Session::flash('success', strval(trans('firefly.registered')));
Session::flash('gaEventCategory', 'user');
Session::flash('gaEventAction', 'new-registration');
Auth::login($user);
// first user ever?
if ($repository->count() == 1) {
$repository->attachRole(Auth::user(), 'owner');
}
Session::flash('success', strval(trans('firefly.registered')));
Session::flash('gaEventCategory', 'user');
Session::flash('gaEventAction', 'new-registration');
return redirect($this->redirectPath());
}
throw new FireflyException('The authenticated user object is invalid.');
return redirect($this->redirectPath());
}
/**