/** * 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; }
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); }