/**
      * 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;
 }
Example #2
0
 public static function setupPartner($partnerId)
 {
     $c = new Criteria();
     $c->add(DrmPolicyPeer::PARTNER_ID, $partnerId);
     $c->add(DrmPolicyPeer::STATUS, DrmPolicyStatus::ACTIVE);
     $c->add(DrmPolicyPeer::PROVIDER, DrmProviderType::CENC);
     $policies = DrmPolicyPeer::doSelectOne($c);
     if (!count($policies)) {
         KalturaLog::debug("DRM setup for partner " . $partnerId);
         list($defaultPolicy) = self::createPartnerPolicies($partnerId);
         self::createDefaultAccessControl($partnerId, $defaultPolicy);
     }
 }
 public static function setupPartner($partnerId)
 {
     $c = new Criteria();
     $c->add(DrmPolicyPeer::PARTNER_ID, $partnerId);
     $c->add(DrmPolicyPeer::STATUS, DrmPolicyStatus::ACTIVE);
     $c->add(DrmPolicyPeer::PROVIDER, PlayReadyPlugin::getPlayReadyProviderCoreValue());
     $policies = DrmPolicyPeer::doSelectOne($c);
     if (!count($policies)) {
         KalturaLog::debug("playready setup for partner " . $partnerId);
         list($defaultPolicy, $rentalPolicy, $purchasePolicy, $subscriptionPolicy) = self::createPartnerPolicies($partnerId);
         self::createDefaultAccessControl($partnerId, $defaultPolicy, $rentalPolicy, $purchasePolicy, $subscriptionPolicy);
     }
 }
Example #4
0
 /**
  * Get Play Ready policy and dates for license creation
  * 
  * @action getLicenseDetails
  * @param string $keyId
  * @param string $deviceId
  * @param int $deviceType
  * @param string $entryId
  * @param string $referrer 64base encoded  
  * @return KalturaPlayReadyLicenseDetails $response
  * 
  * @throws KalturaErrors::MISSING_MANDATORY_PARAMETER
  * @throws KalturaErrors::ENTRY_ID_NOT_FOUND
  * @throws KalturaPlayReadyErrors::ENTRY_NOT_FOUND_BY_KEY_ID
  * @throws KalturaPlayReadyErrors::PLAYREADY_POLICY_NOT_FOUND
  */
 public function getLicenseDetailsAction($keyId, $deviceId, $deviceType, $entryId = null, $referrer = null)
 {
     KalturaLog::debug('Get Play Ready license details for keyID: ' . $keyId);
     $entry = $this->getLicenseRequestEntry($keyId, $entryId);
     $referrerDecoded = base64_decode(str_replace(" ", "+", $referrer));
     if (!is_string($referrerDecoded)) {
         $referrerDecoded = "";
     }
     // base64_decode can return binary data
     $drmLU = new DrmLicenseUtils($entry, $referrerDecoded);
     $policyId = $drmLU->getPolicyId();
     if (!isset($policyId)) {
         throw new KalturaAPIException(KalturaPlayReadyErrors::PLAYREADY_POLICY_NOT_FOUND, $entry->getId());
     }
     $dbPolicy = DrmPolicyPeer::retrieveByPK($policyId);
     if (!$dbPolicy) {
         throw new KalturaAPIException(KalturaPlayReadyErrors::PLAYREADY_POLICY_OBJECT_NOT_FOUND, $policyId);
     }
     list($beginDate, $expirationDate, $removalDate) = $this->calculateLicenseDates($dbPolicy, $entry);
     $policy = new KalturaPlayReadyPolicy();
     $policy->fromObject($dbPolicy, $this->getResponseProfile());
     $this->registerDevice($deviceId, $deviceType);
     $response = new KalturaPlayReadyLicenseDetails();
     $response->policy = $policy;
     $response->beginDate = $beginDate;
     $response->expirationDate = $expirationDate;
     $response->removalDate = $removalDate;
     return $response;
 }
Example #5
0
 /**
  * List KalturaDrmPolicy objects
  * 
  * @action list
  * @param KalturaDrmPolicyFilter $filter
  * @param KalturaFilterPager $pager
  * @return KalturaDrmPolicyListResponse
  */
 public function listAction(KalturaDrmPolicyFilter $filter = null, KalturaFilterPager $pager = null)
 {
     if (!$filter) {
         $filter = new KalturaDrmPolicyFilter();
     }
     $drmPolicyFilter = $filter->toObject();
     $c = new Criteria();
     $drmPolicyFilter->attachToCriteria($c);
     $count = DrmPolicyPeer::doCount($c);
     if (!$pager) {
         $pager = new KalturaFilterPager();
     }
     $pager->attachToCriteria($c);
     $list = DrmPolicyPeer::doSelect($c);
     $response = new KalturaDrmPolicyListResponse();
     $response->objects = KalturaDrmPolicyArray::fromDbArray($list, $this->getResponseProfile());
     $response->totalCount = $count;
     return $response;
 }
Example #6
0
 /**
  * Builds a Criteria object containing the primary key for this object.
  *
  * Unlike buildCriteria() this method includes the primary key values regardless
  * of whether or not they have been modified.
  *
  * @return     Criteria The Criteria object containing value(s) for primary key(s).
  */
 public function buildPkeyCriteria()
 {
     $criteria = new Criteria(DrmPolicyPeer::DATABASE_NAME);
     $criteria->add(DrmPolicyPeer::ID, $this->id);
     if ($this->alreadyInSave) {
         if ($this->isColumnModified(DrmPolicyPeer::CUSTOM_DATA)) {
             if (!is_null($this->custom_data_md5)) {
                 $criteria->add(DrmPolicyPeer::CUSTOM_DATA, "MD5(cast(" . DrmPolicyPeer::CUSTOM_DATA . " as char character set latin1)) = '{$this->custom_data_md5}'", Criteria::CUSTOM);
             } else {
                 $criteria->add(DrmPolicyPeer::CUSTOM_DATA, NULL, Criteria::ISNULL);
             }
         }
         if (count($this->modifiedColumns) == 2 && $this->isColumnModified(DrmPolicyPeer::UPDATED_AT)) {
             $theModifiedColumn = null;
             foreach ($this->modifiedColumns as $modifiedColumn) {
                 if ($modifiedColumn != DrmPolicyPeer::UPDATED_AT) {
                     $theModifiedColumn = $modifiedColumn;
                 }
             }
             $atomicColumns = DrmPolicyPeer::getAtomicColumns();
             if (in_array($theModifiedColumn, $atomicColumns)) {
                 $criteria->add($theModifiedColumn, $this->getByName($theModifiedColumn, BasePeer::TYPE_COLNAME), Criteria::NOT_EQUAL);
             }
         }
     }
     return $criteria;
 }
<?php

ini_set("memory_limit", "1024M");
if ($argc < 3) {
    die('DRM Policy ID and signing key required.\\n');
}
chdir(__DIR__ . '/../');
require_once __DIR__ . '/../bootstrap.php';
$drmPolicyId = $argv[1];
$signingKey = $argv[2];
shout("Adding signing key [" . $signingKey . "] to drm policy [" . $drmPolicyId . "]", true);
$drmDbPolicy = DrmPolicyPeer::retrieveByPK($drmPolicyId);
if (is_null($drmDbPolicy)) {
    throw new kCoreException("DRM Policy Id is invalid");
}
$drmDbPolicy->putInCustomData(DrmProfile::CUSTOM_DATA_SIGNING_KEY, $signingKey);
$drmDbPolicy->save();
shout("Finished adding signingkey to drm policy", true);
//write to log function
function shout($str, $newLine = false)
{
    echo "[" . date('H:i:s') . "] " . $str . ($newLine ? "\n" : "");
}
Example #8
0
 /**
  * Retrieve drm policy according to systemName
  * @param string $systemName
  * @param int $excludeId
  * @param PropelPDO $con
  * @return DrmPolicy
  */
 public static function retrieveBySystemName($systemName, $excludeId = null, PropelPDO $con = null)
 {
     $c = new Criteria();
     $c->add(DrmPolicyPeer::SYSTEM_NAME, $systemName);
     return DrmPolicyPeer::doSelectOne($c);
 }
Example #9
0
 public function getFieldNameFromPeer($field_name)
 {
     $res = DrmPolicyPeer::translateFieldName($field_name, $this->field_name_translation_type, BasePeer::TYPE_COLNAME);
     return $res;
 }
Example #10
0
 /**
  * Retrieve multiple objects by pkey.
  *
  * @param      array $pks List of primary keys
  * @param      PropelPDO $con the connection to use
  * @throws     PropelException Any exceptions caught during processing will be
  *		 rethrown wrapped into a PropelException.
  */
 public static function retrieveByPKs($pks, PropelPDO $con = null)
 {
     $objs = null;
     if (empty($pks)) {
         $objs = array();
     } else {
         $criteria = new Criteria(DrmPolicyPeer::DATABASE_NAME);
         $criteria->add(DrmPolicyPeer::ID, $pks, Criteria::IN);
         $objs = DrmPolicyPeer::doSelect($criteria, $con);
     }
     return $objs;
 }