Пример #1
0
 /**
  * Activate an account [Web only].
  *
  * @param \Illuminate\Http\Request $request
  * @param string|null              $token
  *
  * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector
  * @throws \App\Exceptions\Common\ValidationException
  */
 public function activate(Request $request, $token = null)
 {
     $data = !is_null($token) ? ['token' => $token] : $request->all();
     $validator = app('validator')->make($data, ['token' => 'required|string']);
     if ($validator->fails()) {
         throw new ValidationException($validator);
     }
     $activation = UserActivation::whereCode($data['token'])->first();
     if (!$activation) {
         throw new TokenNotValidException();
     }
     /** @var \App\Models\User $user */
     $user = User::findOrFail($activation->user_id);
     $this->complete($user, $data['token']);
     return $request->expectsJson() ? response()->json(['message' => 'Activated']) : redirect($this->redirectPath())->with('message', 'Activation successful');
 }