Пример #1
0
 /**
  * @param \App\Models\User $user
  * @param string           $code
  *
  * @return bool
  */
 public function complete(User $user, $code)
 {
     $expires = $this->expires();
     $activation = UserActivation::where('user_id', $user->id)->where('code', $code)->where('completed', false)->where('created_at', '>', $expires)->first();
     if ($activation === null) {
         return false;
     }
     $activation->fill(['completed' => true, 'completed_at' => Carbon::now()]);
     $activation->save();
     return true;
 }
Пример #2
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');
 }