protected function checkAttemptLimit($userId) { $this->loginAttempts = GlobalCache::get($this->attemptLimitKey($userId)); if ($this->loginAttempts > 3) { throw new Exception('too many attempts', 403); } }
public function paginate(ModelCriteria $query, $page = 1, $maxPerPage = 25) { $queryMd5 = md5($query->toString()); $key = $query->getTableMap()->getName() . '_query_' . $queryMd5 . '_' . $page . '_' . $maxPerPage; $records = GlobalCache::get($key); if (empty($records) === true) { $records = $query->paginate($page, $maxPerPage); if ($records->isEmpty() === false) { GlobalCache::set($key, $records); } } return $records; }
public static function getInstanceFromPool($key) { $object = static::defaultGetInstanceFromPool($key); if (Propel::isInstancePoolingEnabled()) { if (empty($object) === true) { $object = GlobalCache::get(static::getPrefix() . $key); } if ($object === false) { $object = null; } else { static::defaultAddInstanceToPool($object, $key); } } return $object; }
public static function processLock($singleton = false) { $processName = md5(basename($_SERVER['SCRIPT_FILENAME'])); $serverName = php_uname('n'); $key = 'process_lock_' . $processName; if ($singleton === true && GlobalCache::exists($key) !== false) { exit; } if (APPLICATION_ENV != Environment::LOCAL) { $maxTime = 10; sleep(rand(0, $maxTime)); $processName = md5(basename($_SERVER['SCRIPT_FILENAME'])); $serverName = php_uname('n'); $key = 'process_lock_' . $processName; GlobalCache::set($key, $serverName); sleep($maxTime + 5); $winner = GlobalCache::get($key); if ($winner !== $serverName) { exit; } } }