Пример #1
0
 /**
  * @param      string $ks
  * @param      PropelPDO $con the connection to use
  * @return     bool
  */
 public static function isInvalid($ks, PropelPDO $con = null)
 {
     $criteria = new Criteria();
     $criteria->add(invalidSessionPeer::KS, base64_decode($ks));
     $cnt = invalidSessionPeer::doSelectOne($criteria, $con);
     return $cnt > 0;
 }
 /**
  * @param      ks $ks
  * @return     invalidSession
  */
 public static function invalidateKs(ks $ks, PropelPDO $con = null)
 {
     $criteria = new Criteria();
     $criteria->add(invalidSessionPeer::KS, $ks->getHash());
     $invalidSession = invalidSessionPeer::doSelectOne($criteria, $con);
     if (!$invalidSession) {
         $invalidSession = new invalidSession();
         $invalidSession->setKs($ks->getHash());
         $invalidSession->setKsValidUntil($ks->valid_until);
     }
     $invalidSession->setActionsLimit(null);
     $invalidSession->save();
     return $invalidSession;
 }
Пример #3
0
 public static function invalidateByKey($key, $type, $validUntil, PropelPDO $con = null)
 {
     $criteria = new Criteria();
     $criteria->add(invalidSessionPeer::KS, $key);
     $criteria->add(invalidSessionPeer::TYPE, $type);
     $invalidSession = invalidSessionPeer::doSelectOne($criteria, $con);
     if (!$invalidSession) {
         $invalidSession = new invalidSession();
         $invalidSession->setKs($key);
         $invalidSession->setType($type);
         $invalidSession->setKsValidUntil($validUntil);
     }
     $invalidSession->setActionsLimit(null);
     $invalidSession->save();
     return $invalidSession;
 }
Пример #4
0
 public function isValid($partner_id, $puser_id, $type = false)
 {
     if (!$this->valid_string) {
         return self::INVALID_STR;
     }
     if (!$this->matchPartner($partner_id)) {
         return self::INVALID_PARTNER;
     }
     if (!$this->matchUser($puser_id)) {
         return self::INVALID_USER;
     }
     if ($type !== false) {
         // do not check ks type
         if (!$this->type == $type) {
             return self::INVALID_TYPE;
         }
     }
     if ($this->expired()) {
         return self::EXPIRED;
     }
     if (!$this->isUserIPAllowed()) {
         return self::EXCEEDED_RESTRICTED_IP;
     }
     if ($this->original_str && $partner_id != Partner::BATCH_PARTNER_ID && !$this->isWidgetSession() && $this->isKSInvalidated() !== false) {
         $criteria = new Criteria();
         $ksCriterion = $criteria->getNewCriterion(invalidSessionPeer::TYPE, invalidSession::INVALID_SESSION_TYPE_KS);
         $ksCriterion->addAnd($criteria->getNewCriterion(invalidSessionPeer::KS, $this->getHash()));
         $sessionId = $this->getSessionIdHash();
         if ($sessionId) {
             $invalidSession = $criteria->getNewCriterion(invalidSessionPeer::KS, $sessionId);
             $invalidSession->addAnd($criteria->getNewCriterion(invalidSessionPeer::TYPE, invalidSession::INVALID_SESSION_TYPE_SESSION_ID));
             $ksCriterion->addOr($invalidSession);
         }
         $criteria->add($ksCriterion);
         $dbKs = invalidSessionPeer::doSelectOne($criteria);
         if ($dbKs) {
             $currentActionLimit = $dbKs->getActionsLimit();
             if (is_null($currentActionLimit)) {
                 return self::LOGOUT;
             } elseif ($currentActionLimit <= 0) {
                 return self::EXCEEDED_ACTIONS_LIMIT;
             }
             $dbKs->setActionsLimit($currentActionLimit - 1);
             $dbKs->save();
         } else {
             $limit = $this->isSetLimitAction();
             if ($limit) {
                 invalidSessionPeer::actionsLimitKs($this, $limit - 1);
             }
         }
     }
     // creates the kuser
     if ($partner_id != Partner::BATCH_PARTNER_ID && PermissionPeer::isValidForPartner(PermissionName::FEATURE_END_USER_REPORTS, $partner_id)) {
         $this->kuser = kuserPeer::createKuserForPartner($partner_id, $puser_id);
         if (!$puser_id && $this->kuser->getScreenName() != 'Unknown') {
             $this->kuser->setScreenName('Unknown');
             $this->kuser->save();
         }
     }
     return self::OK;
 }
 public function isValid($partner_id, $puser_id, $type = false)
 {
     if (!$this->valid_string) {
         return self::INVALID_STR;
     }
     if (!$this->matchPartner($partner_id)) {
         return self::INVALID_PARTNER;
     }
     if (!$this->matchUser($puser_id)) {
         return self::INVALID_USER;
     }
     if ($type !== false) {
         // do not check ks type
         if (!$this->type == $type) {
             return self::INVALID_TYPE;
         }
     }
     if ($this->expired()) {
         return self::EXPIRED;
     }
     $allowedIPRestriction = $this->isSetIPRestriction();
     if ($allowedIPRestriction && $allowedIPRestriction != kCurrentContext::$user_ip) {
         KalturaLog::err("ipRestriction: EXCEEDED_RESTRICTED_IP");
         return self::EXCEEDED_RESTRICTED_IP;
     }
     if ($this->original_str && $partner_id != Partner::BATCH_PARTNER_ID && !$this->isWidgetSession() && $this->isKSInvalidated() !== false) {
         $criteria = new Criteria();
         $criteria->add(invalidSessionPeer::KS, $this->getHash());
         $dbKs = invalidSessionPeer::doSelectOne($criteria);
         if ($dbKs) {
             $currentActionLimit = $dbKs->getActionsLimit();
             if (is_null($currentActionLimit)) {
                 return self::LOGOUT;
             } elseif ($currentActionLimit <= 0) {
                 return self::EXCEEDED_ACTIONS_LIMIT;
             }
             $dbKs->setActionsLimit($currentActionLimit - 1);
             $dbKs->save();
         } else {
             $limit = $this->isSetLimitAction();
             if ($limit) {
                 invalidSessionPeer::actionsLimitKs($this, $limit - 1);
             }
         }
     }
     // creates the kuser
     if (PermissionPeer::isValidForPartner(PermissionName::FEATURE_END_USER_REPORTS, $partner_id)) {
         $kuser = kuserPeer::createKuserForPartner($partner_id, $puser_id);
         if (!$puser_id) {
             $kuser->setScreenName('Unknown');
             $kuser->save();
         }
     }
     return self::OK;
 }