Skip to content

Commit 76b7f47

Browse files
committed
Request validation + user email check
1 parent 72e6412 commit 76b7f47

File tree

4 files changed

+35
-6
lines changed

4 files changed

+35
-6
lines changed

README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,10 @@ The given user is not yet verified.
214214

215215
No user found for the given e-mail adresse.
216216

217+
* `UserHasNoEmailException`
218+
219+
User email property is null or empty.
220+
217221
### Error View
218222

219223
By default the `user-verification.blade.php` view will be loaded for the verification error route `/email-verification/error`. If an error occurs, the user will be redirected to this route and this view will be rendered.
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<?php
2+
/**
3+
* This file is part of Jrean\UserVerification package.
4+
*
5+
* (c) Jean Ragouin <[email protected]> <www.askjong.com>
6+
*/
7+
namespace Jrean\UserVerification\Exceptions;
8+
9+
use Exception;
10+
11+
class UserHasNoEmailException extends Exception
12+
{
13+
/**
14+
* The exception description.
15+
*
16+
* @var string
17+
*/
18+
protected $message = 'The given user instance has an empty or null email field.';
19+
}

src/Traits/VerifiesUsers.php

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,9 @@ trait VerifiesUsers
2525
*/
2626
public function getVerification(Request $request, $token)
2727
{
28-
$this->validateRequest($request);
28+
if (! $this->validateRequest($request)) {
29+
return redirect($this->redirectIfVerificationFails());
30+
}
2931

3032
try {
3133
UserVerificationFacade::process($request->input('email'), $token, $this->userTable());
@@ -54,7 +56,7 @@ public function getVerificationError()
5456
* Validate the verification link.
5557
*
5658
* @param string $token
57-
* @return Response
59+
* @return bool
5860
*/
5961
protected function validateRequest(Request $request)
6062
{
@@ -63,7 +65,7 @@ protected function validateRequest(Request $request)
6365
]);
6466

6567
if ($validator->fails()) {
66-
return redirect($this->redirectIfVerificationFails());
68+
return false;
6769
}
6870
}
6971

src/UserVerification.php

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,18 @@
77
namespace Jrean\UserVerification;
88

99
use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;
10-
/* use Illuminate\Contracts\Mail\Mailer as MailerContract; */
11-
use Illuminate\Mail\Mailer;
1210
use Illuminate\Database\Schema\Builder;
11+
use Illuminate\Mail\Mailer;
1312
use Illuminate\Support\Facades\DB;
1413
use Illuminate\Support\Str;
15-
use Jrean\UserVerification\Mail\VerificationTokenGenerated;
1614
use Jrean\UserVerification\Events\UserVerified;
1715
use Jrean\UserVerification\Events\VerificationEmailSent;
1816
use Jrean\UserVerification\Exceptions\ModelNotCompliantException;
1917
use Jrean\UserVerification\Exceptions\TokenMismatchException;
18+
use Jrean\UserVerification\Exceptions\UserHasNoEmailException;
2019
use Jrean\UserVerification\Exceptions\UserIsVerifiedException;
2120
use Jrean\UserVerification\Exceptions\UserNotFoundException;
21+
use Jrean\UserVerification\Mail\VerificationTokenGenerated;
2222

2323
class UserVerification
2424
{
@@ -57,6 +57,10 @@ public function __construct(Mailer $mailer, Builder $schema)
5757
*/
5858
public function generate(AuthenticatableContract $user)
5959
{
60+
if (empty($user->email)) {
61+
throw new UserHasNoEmailException();
62+
}
63+
6064
return $this->saveToken($user, $this->generateToken());
6165
}
6266

0 commit comments

Comments
 (0)