/** * Store a newly created user in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { // Validate the form data $result = $this->validate($request, ['email' => 'required|email|max:255|unique:users', 'password' => 'required|confirmed|min:6']); // Assemble registration credentials and attributes $credentials = ['email' => trim($request->get('email')), 'password' => $request->get('password'), 'first_name' => $request->get('first_name', null), 'last_name' => $request->get('last_name', null)]; $activate = (bool) $request->get('activate', false); // Attempt the registration $result = $this->authManager->register($credentials, $activate); if ($result->isFailure()) { return $result->dispatch; } // Do we need to send an activation email? if (!$activate) { $code = $result->activation->getCode(); $email = $result->user->email; Mail::queue('centaur.email.welcome', ['code' => $code, 'email' => $email], function ($message) use($email) { $message->to($email)->subject('Your account has been created'); }); } // Assign User Roles foreach ($request->get('roles', []) as $slug => $id) { $role = Sentinel::findRoleBySlug($slug); if ($role) { $role->users()->attach($result->user); } } $result->setMessage("User {$request->get('email')} has been created."); return $result->dispatch(route('users.index')); }
/** @test */ public function it_does_not_resets_passwords_with_an_invalid_reset_code() { // Given $credentials = ['email' => '*****@*****.**', 'password' => 'password']; $result = $this->authManager->register($credentials); $reminder = $this->app['sentinel.reminders']->create($result->user); $newPassword = '******'; // Attempt the Reset $result = $this->authManager->resetPassword('incorrect_reset_code', $newPassword); // Verify $this->assertInstanceOf(ExceptionReply::class, $result); $this->assertEquals("Invalid or expired password reset code; please request a new link.", $result->message); }
/** * Create a new user instance after a valid registration. * * @param array $data * @return Response|Redirect */ protected function postRegister(Request $request) { // Validate the form data $result = $this->validate($request, ['email' => 'required|email|max:255|unique:users', 'password' => 'required|confirmed|min:6']); // Assemble registration credentials $credentials = ['email' => trim($request->get('email')), 'password' => $request->get('password')]; // Attempt the registration $result = $this->authManager->register($credentials); if ($result->isFailure()) { return $result->dispatch(); } // Send the activation email $code = $result->activation->getCode(); $email = $result->user->email; Mail::queue('centaur.email.welcome', ['code' => $code, 'email' => $email], function ($message) use($email) { $message->to($email)->subject('Your account has been created'); }); // Ask the user to check their email for the activation link $result->setMessage('Registration complete. Please check your email for activation instructions.'); // There is no need to send the payload data to the end user $result->clearPayload(); // Return the appropriate response return $result->dispatch(route('dashboard')); }