public function testCountForUser() { $dates = array(date('Y-m-d H:i:s', strtotime('-3 minute')), date('Y-m-d H:i:s', strtotime('-2 minute')), date('Y-m-d H:i:s', strtotime('-1 minute'))); Helper::dbFixture(UsersLogin::LoginAttemptsTable, array(array('host' => ip2long(self::SecondIpFixture), 'date' => $dates[0], 'status' => LoginAttempt::SuccessStatus, 'user_id' => 1), array('host' => ip2long(self::FirstIpFixture), 'date' => $dates[1], 'status' => LoginAttempt::FailStatus, 'user_id' => 1), array('host' => ip2long(self::FirstIpFixture), 'date' => $dates[2], 'status' => LoginAttempt::FailStatus, 'user_id' => 1))); UsersLogin::login(self::Login, self::Password); $user = UsersLogin::getCurrentSession(); $info = new LoginInfo(); $info->countForUser($user); $fixture = array('success' => array('ip' => self::SecondIpFixture, 'date' => $dates[0], 'method' => ''), 'fail' => array('ip' => self::FirstIpFixture, 'date' => $dates[2], 'count' => 2)); $this->assertEquals($fixture, $info->getViewData()); }
/** * */ protected function action() { $data = $this->userSession->getParseData(); $skipFields = UserAccount::getPrivateFields(); $result = array(); $allowedFields = array('login', 'email'); foreach ($data as $key => $row) { if (!in_array($key, $skipFields) || in_array($key, $allowedFields)) { $result[$key] = $row; } } // $result['last_activity_date'] = $this->userSession->last_activity_date->getCyrilicViewValue(); $loginInfo = \Extasy\Users\login\LoginInfo::getFromSession(); $result['loginAttempts'] = $loginInfo->getViewData(); return $result; }
/** * Обновляет дату последней активности * @return */ public function updateLastActivityDate() { $this->last_activity_date->setValue(date('Y-m-d H:i')); $this->update(); \Extasy\Users\login\LoginInfo::setupSession($this); }
public static function setupSession($user) { $info = new LoginInfo(); $info->countForUser($user); $_SESSION[__CLASS__] = serialize($info); }