Example #1
0
 /**
  * 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'));
 }
 /**
  * Handle a Logout Request
  * @return Response|Redirect
  */
 public function getLogout(Request $request)
 {
     // Terminate the user's current session.  Passing true as the
     // second parameter kills all of the user's active sessions.
     $result = $this->authManager->logout(null, null);
     // Return the appropriate response
     return $result->dispatch(route('utama'));
 }
 /**
  * Activate a user if they have provided the correct code
  * @param  string $code
  * @return Response|Redirect
  */
 public function getActivate(Request $request, $code)
 {
     // Attempt the registration
     $result = $this->authManager->activate($code);
     if ($result->isFailure()) {
         // Normally an exception would trigger a redirect()->back() However,
         // because they get here via direct link, back() will take them
         // to "/";  I would prefer they be sent to the login page.
         $result->setRedirectUrl(route('auth.login.form'));
         return $result->dispatch();
     }
     // Ask the user to check their email for the activation link
     $result->setMessage('Registration complete.  You may now log in.');
     // There is no need to send the payload data to the end user
     $result->clearPayload();
     // Return the appropriate response
     return $result->dispatch(route('dashboard'));
 }
 /**
  * Process a password reset form submission
  * @param  Request $request
  * @param  string  $code
  * @return Response|Redirect
  */
 public function postReset(Request $request, $code)
 {
     // Validate the form data
     $result = $this->validate($request, ['password' => 'required|confirmed|min:6']);
     // Attempt the password reset
     $result = $this->authManager->resetPassword($code, $request->get('password'));
     if ($result->isFailure()) {
         return $result->dispatch();
     }
     // Return the appropriate response
     return $result->dispatch(route('auth.login.form'));
 }
Example #5
0
 /** @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);
 }