Dan Brown

Made email confirmations work with LDAP auth

The email_confirmed user field now actually indicates if an email is confirmed rather than defaulting to true if not checked.
 This ensures toggleing the 'Require email confirmation' setting actually makes all currently unconfirmed users confirm thier emails.
...@@ -194,14 +194,11 @@ class AuthController extends Controller ...@@ -194,14 +194,11 @@ class AuthController extends Controller
194 } 194 }
195 195
196 if (setting('registration-confirmation') || setting('registration-restrict')) { 196 if (setting('registration-confirmation') || setting('registration-restrict')) {
197 - $newUser->email_confirmed = false;
198 $newUser->save(); 197 $newUser->save();
199 $this->emailConfirmationService->sendConfirmation($newUser); 198 $this->emailConfirmationService->sendConfirmation($newUser);
200 return redirect('/register/confirm'); 199 return redirect('/register/confirm');
201 } 200 }
202 201
203 - $newUser->email_confirmed = true;
204 -
205 auth()->login($newUser); 202 auth()->login($newUser);
206 session()->flash('success', 'Thanks for signing up! You are now registered and signed in.'); 203 session()->flash('success', 'Thanks for signing up! You are now registered and signed in.');
207 return redirect($this->redirectPath()); 204 return redirect($this->redirectPath());
......
...@@ -11,14 +11,12 @@ class Authenticate ...@@ -11,14 +11,12 @@ class Authenticate
11 { 11 {
12 /** 12 /**
13 * The Guard implementation. 13 * The Guard implementation.
14 - *
15 * @var Guard 14 * @var Guard
16 */ 15 */
17 protected $auth; 16 protected $auth;
18 17
19 /** 18 /**
20 * Create a new filter instance. 19 * Create a new filter instance.
21 - *
22 * @param Guard $auth 20 * @param Guard $auth
23 */ 21 */
24 public function __construct(Guard $auth) 22 public function __construct(Guard $auth)
...@@ -28,14 +26,13 @@ class Authenticate ...@@ -28,14 +26,13 @@ class Authenticate
28 26
29 /** 27 /**
30 * Handle an incoming request. 28 * Handle an incoming request.
31 - *
32 * @param \Illuminate\Http\Request $request 29 * @param \Illuminate\Http\Request $request
33 * @param \Closure $next 30 * @param \Closure $next
34 * @return mixed 31 * @return mixed
35 */ 32 */
36 public function handle($request, Closure $next) 33 public function handle($request, Closure $next)
37 { 34 {
38 - if(auth()->check() && auth()->user()->email_confirmed == false) { 35 + if ($this->auth->check() && setting('registration-confirmation') && !$this->auth->user()->email_confirmed) {
39 return redirect()->guest('/register/confirm/awaiting'); 36 return redirect()->guest('/register/confirm/awaiting');
40 } 37 }
41 38
......
...@@ -115,7 +115,7 @@ class LdapUserProvider implements UserProvider ...@@ -115,7 +115,7 @@ class LdapUserProvider implements UserProvider
115 $model->name = $userDetails['name']; 115 $model->name = $userDetails['name'];
116 $model->external_auth_id = $userDetails['uid']; 116 $model->external_auth_id = $userDetails['uid'];
117 $model->email = $userDetails['email']; 117 $model->email = $userDetails['email'];
118 - $model->email_confirmed = true; 118 + $model->email_confirmed = false;
119 return $model; 119 return $model;
120 } 120 }
121 121
......
...@@ -106,7 +106,8 @@ class UserRepo ...@@ -106,7 +106,8 @@ class UserRepo
106 return $this->user->forceCreate([ 106 return $this->user->forceCreate([
107 'name' => $data['name'], 107 'name' => $data['name'],
108 'email' => $data['email'], 108 'email' => $data['email'],
109 - 'password' => bcrypt($data['password']) 109 + 'password' => bcrypt($data['password']),
110 + 'email_confirmed' => false
110 ]); 111 ]);
111 } 112 }
112 113
......