public function findByUser(UserModelInterface $user, $ipAddress = null)
 {
     $model = $this->createModel();
     $query = $model->where('user_id', '=', $userId = $user->getId());
     if ($ipAddress) {
         $query->where(function ($query) use($ipAddress) {
             $query->where('ip_address', '=', $ipAddress);
             $query->orWhere('ip_address', '=', NULL);
         });
     }
     if (!($throttle = $query->first())) {
         $throttle = $this->createModel();
         $throttle->user_id = $userId;
         if ($ipAddress) {
             $throttle->ip_address = $ipAddress;
         }
         $throttle->save();
     }
     return $throttle;
 }
示例#2
0
 public function login(UserModelInterface $user, $remember = false)
 {
     if (!$user->isActivated()) {
         $login = $user->getLogin();
         throw new \Exception("Cannot login user [{$login}] as they are not activated.");
     }
     $this->user = $user;
     $toPersist = array($user->getId(), $user->getPersistCode());
     $this->session->put('user', $toPersist);
     if ($remember) {
         $this->cookie->forever('user', $toPersist);
     }
     $user->recordLogin();
 }