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; }