public function validateForResponseProfile()
 {
     if (kEntitlementUtils::getEntitlementEnforcement()) {
         if (PermissionPeer::isValidForPartner(PermissionName::FEATURE_ENABLE_RESPONSE_PROFILE_USER_CACHE, kCurrentContext::getCurrentPartnerId())) {
             KalturaResponseProfileCacher::useUserCache();
             return;
         }
         throw new KalturaAPIException(KalturaErrors::CANNOT_LIST_RELATED_ENTITLED_WHEN_ENTITLEMENT_IS_ENABLE, get_class($this));
     }
 }
 public function validateForResponseProfile()
 {
     if (!kCurrentContext::$is_admin_session && !$this->idEqual && !$this->idIn && !$this->systemNameEqual && !$this->systemNameIn) {
         if (PermissionPeer::isValidForPartner(PermissionName::FEATURE_ENABLE_RESPONSE_PROFILE_USER_CACHE, kCurrentContext::getCurrentPartnerId())) {
             KalturaResponseProfileCacher::useUserCache();
             return;
         }
         throw new KalturaAPIException(KalturaCuePointErrors::USER_KS_CANNOT_LIST_RELATED_CUE_POINTS, get_class($this));
     }
 }
Beispiel #3
0
 public final function fromObject($srcObj, KalturaDetachedResponseProfile $responseProfile = null)
 {
     if (!is_object($srcObj)) {
         KalturaLog::err("expected an object, got " . print_r($srcObj, true));
         return;
     }
     $thisClass = get_class($this);
     $srcObjClass = get_class($srcObj);
     $fromObjectClass = "Map_{$thisClass}_{$srcObjClass}";
     if (!class_exists($fromObjectClass)) {
         $cacheFileName = kConf::get("cache_root_path") . "/api_v3/fromObject/{$fromObjectClass}.php";
         if (!file_exists($cacheFileName)) {
             $cacheDir = dirname($cacheFileName);
             if (!is_dir($cacheDir)) {
                 mkdir($cacheDir);
                 chmod($cacheDir, 0755);
             }
             $fromObjectClassCode = $this->generateFromObjectClass($srcObj, $fromObjectClass);
             if (!$fromObjectClassCode) {
                 return;
             }
             kFile::safeFilePutContents($cacheFileName, $fromObjectClassCode);
         }
         require_once $cacheFileName;
     }
     $fromObjectClass::fromObject($this, $srcObj, $responseProfile);
     $this->doFromObject($srcObj, $responseProfile);
     if ($srcObj instanceof IRelatedObject) {
         KalturaResponseProfileCacher::onPersistentObjectLoaded($srcObj);
         if ($responseProfile && $responseProfile->relatedProfiles) {
             // trigger validation
             $responseProfile->validateNestedObjects();
             $this->relatedObjects = KalturaResponseProfileCacher::start($srcObj, $responseProfile);
             if (!$this->relatedObjects) {
                 $this->loadRelatedObjects($responseProfile);
                 KalturaResponseProfileCacher::stop($srcObj, $this);
             }
         }
     }
 }
Beispiel #4
0
 public final function fromObject($srcObj, KalturaDetachedResponseProfile $responseProfile = null)
 {
     if (!is_object($srcObj)) {
         KalturaLog::err("expected an object, got " . print_r($srcObj, true));
         return;
     }
     if ($srcObj instanceof IRelatedObject && $responseProfile && $responseProfile->relatedProfiles) {
         if (KalturaResponseProfileCacher::start($this, $srcObj, $responseProfile)) {
             return;
         }
     }
     $thisClass = get_class($this);
     $srcObjClass = get_class($srcObj);
     $fromObjectClass = "Map_{$thisClass}_{$srcObjClass}";
     if (!class_exists($fromObjectClass)) {
         $cacheFileName = kConf::get("cache_root_path") . "/api_v3/fromObject/{$fromObjectClass}.php";
         $max_include_retries = 10;
         $fromObjectClassCode = null;
         while (!@(include_once $cacheFileName) and $max_include_retries--) {
             if (!$fromObjectClassCode) {
                 $fromObjectClassCode = $this->generateFromObjectClass($srcObj, $fromObjectClass);
                 if (!$fromObjectClassCode) {
                     return;
                 }
             }
             $cacheDir = dirname($cacheFileName);
             if (!is_dir($cacheDir)) {
                 mkdir($cacheDir);
                 chmod($cacheDir, 0775);
             }
             kFile::safeFilePutContents($cacheFileName, $fromObjectClassCode, 0644);
         }
         if (!class_exists($fromObjectClass)) {
             throw new Exception("Could not include cached code file - {$cacheFileName}");
         }
     }
     $fromObjectClass::fromObject($this, $srcObj, $responseProfile);
     $this->doFromObject($srcObj, $responseProfile);
     if ($srcObj instanceof IRelatedObject) {
         KalturaResponseProfileCacher::onPersistentObjectLoaded($srcObj);
         if ($responseProfile && $responseProfile->relatedProfiles) {
             $responseProfile->validateNestedObjects();
             $this->loadRelatedObjects($responseProfile);
             KalturaResponseProfileCacher::stop($srcObj, $this);
         }
     }
 }
 public static function stop(IRelatedObject $object, KalturaObject $apiObject)
 {
     if ($object !== self::$cachedObject) {
         KalturaLog::debug("Object [" . get_class(self::$cachedObject) . "][" . self::$cachedObject->getId() . "] still caching");
         return;
     }
     if ($apiObject->relatedObjects) {
         KalturaLog::debug("Stop " . get_class($apiObject) . " [" . print_r($apiObject, true) . "]");
         $key = self::getObjectSpecificCacheKey(self::$cachedObject, self::$responseProfileKey);
         $value = self::getObjectSpecificCacheValue($apiObject, self::$cachedObject, self::$responseProfileKey);
         self::set($key, $value);
     } else {
         KalturaLog::debug("API Object [" . get_class($apiObject) . "] has no related objects");
     }
     self::$cachedObject = null;
     self::$cachePerUser = false;
 }
 /**
  * Recalculate response profile cached objects
  * 
  * @action recalculate
  * @param KalturaResponseProfileCacheRecalculateOptions $options
  * @return KalturaResponseProfileCacheRecalculateResults
  */
 function recalculateAction(KalturaResponseProfileCacheRecalculateOptions $options)
 {
     return KalturaResponseProfileCacher::recalculateCacheBySessionType($options);
 }
 public static function stop(IBaseObject $object, KalturaObject $apiObject)
 {
     if ($object !== self::$cachedObject) {
         KalturaLog::debug("Object [" . get_class(self::$cachedObject) . "][" . self::$cachedObject->getId() . "] still caching");
         return;
     }
     KalturaLog::debug("Stop " . get_class($apiObject) . " [" . print_r($apiObject, true) . "]");
     $key = self::getObjectSpecificCacheKey(self::$cachedObject, self::$responseProfileKey);
     $value = self::getObjectSpecificCacheValue($apiObject, self::$cachedObject, self::$responseProfileKey);
     self::set($key, $value);
     self::$cachedObject = null;
 }
 public function validateForResponseProfile()
 {
     if (kEntitlementUtils::getEntitlementEnforcement()) {
         if (PermissionPeer::isValidForPartner(PermissionName::FEATURE_ENABLE_RESPONSE_PROFILE_USER_CACHE, kCurrentContext::getCurrentPartnerId())) {
             KalturaResponseProfileCacher::useUserCache();
             return;
         }
         throw new KalturaAPIException(KalturaErrors::CANNOT_LIST_RELATED_ENTITLED_WHEN_ENTITLEMENT_IS_ENABLE, get_class($this));
     }
     if (!kCurrentContext::$is_admin_session && !$this->idEqual && !$this->idIn && !$this->referenceIdEqual && !$this->redirectFromEntryId && !$this->referenceIdIn && !$this->parentEntryIdEqual) {
         if (kCurrentContext::$ks_object->privileges === ks::PATTERN_WILDCARD || kCurrentContext::$ks_object->getPrivilegeValue(ks::PRIVILEGE_LIST) === ks::PATTERN_WILDCARD) {
             return;
         }
         if (PermissionPeer::isValidForPartner(PermissionName::FEATURE_ENABLE_RESPONSE_PROFILE_USER_CACHE, kCurrentContext::getCurrentPartnerId())) {
             KalturaResponseProfileCacher::useUserCache();
             return;
         }
         throw new KalturaAPIException(KalturaErrors::USER_KS_CANNOT_LIST_RELATED_ENTRIES, get_class($this));
     }
 }