예제 #1
0
 /**
      * getAccessAction
      * input: flavor ids, drmProvider
      * Get Access Action
      * @action getAccess
      * @param string $entryId
      * @param string $flavorIds
      * @param string $referrer
 * @return KalturaDrmLicenseAccessDetails
      **/
 public function getAccessAction($entryId, $flavorIds, $referrer)
 {
     $response = new KalturaDrmLicenseAccessDetails();
     $response->policy = "";
     $response->duration = 0;
     $response->absolute_duration = 0;
     $flavorIdsArr = explode(",", $flavorIds);
     $entry = entryPeer::retrieveByPK($entryId);
     if (isset($entry)) {
         try {
             $drmLU = new DrmLicenseUtils($entry, $referrer);
             if ($this->validateFlavorAssetssAllowed($drmLU, $flavorIdsArr) == true) {
                 $policyId = $drmLU->getPolicyId();
                 KalturaLog::info("policy_id is '{$policyId}'");
                 $dbPolicy = DrmPolicyPeer::retrieveByPK($policyId);
                 if (isset($dbPolicy)) {
                     $expirationDate = DrmLicenseUtils::calculateExpirationDate($dbPolicy, $entry);
                     $response->policy = $dbPolicy->getName();
                     $response->duration = $expirationDate;
                     $response->absolute_duration = $expirationDate;
                     KalturaLog::info("response is  '" . print_r($response, true) . "' ");
                 } else {
                     KalturaLog::err("Could not get DRM policy from DB");
                 }
             }
         } catch (Exception $e) {
             KalturaLog::err("Could not validate license access, returned with message '" . $e->getMessage() . "'");
         }
     } else {
         KalturaLog::err("Entry '{$entryId}' not found");
     }
     return $response;
 }
예제 #2
0
 public function calculateLicenseDates(PlayReadyPolicy $policy, entry $entry)
 {
     $expirationDate = null;
     $removalDate = null;
     $expirationDate = DrmLicenseUtils::calculateExpirationDate($policy, $entry);
     switch ($policy->getLicenseRemovalPolicy()) {
         case PlayReadyLicenseRemovalPolicy::FIXED_FROM_EXPIRATION:
             $removalDate = $expirationDate + dateUtils::DAY * $policy->getLicenseRemovalDuration();
             break;
         case PlayReadyLicenseRemovalPolicy::ENTRY_SCHEDULING_END:
             $removalDate = $entry->getEndDate();
             break;
     }
     //override begin and expiration dates from ks if passed
     if (kCurrentContext::$ks_object) {
         $privileges = kCurrentContext::$ks_object->getPrivileges();
         $allParams = explode(',', $privileges);
         foreach ($allParams as $param) {
             $exParam = explode(':', $param);
             if ($exParam[0] == self::PLAY_READY_BEGIN_DATE_PARAM) {
                 $beginDate = $exParam[1];
             }
             if ($exParam[0] == self::PLAY_READY_EXPIRATION_DATE_PARAM) {
                 $expirationDate = $exParam[1];
             }
         }
     }
     return array($beginDate, $expirationDate, $removalDate);
 }