Esempio n. 1
0
 protected function checkAttemptLimit($userId)
 {
     $this->loginAttempts = GlobalCache::get($this->attemptLimitKey($userId));
     if ($this->loginAttempts > 3) {
         throw new Exception('too many attempts', 403);
     }
 }
Esempio n. 2
0
 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;
 }
Esempio n. 4
0
 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;
         }
     }
 }