Esempio n. 1
0
 /**
  * Check if current action is permitted for current context (ks/partner/user)
  * @param bool $allowPrivatePartnerData true if access to private partner data is allowed, false otherwise (kaltura network)
  * @throws APIErrors::MISSING_KS
  */
 protected function isPermitted(&$allowPrivatePartnerData)
 {
     // if no partner defined but required -> error MISSING_KS
     if (!$this->partner && $this->partnerRequired($this->actionName)) {
         throw new KalturaAPIException(APIErrors::MISSING_KS);
     }
     // check if actions is permitted for current context
     $isActionPermitted = kPermissionManager::isActionPermitted($this->serviceId, $this->actionName);
     // if action permitted - no problem to access action and the private partner data
     if ($isActionPermitted) {
         $allowPrivatePartnerData = true;
         // allow private partner data
         return true;
         // action permitted with access to partner private data
     }
     // action not permitted for current user - check if kaltura network is allowed
     if (!kCurrentContext::$ks && $this->kalturaNetworkAllowed($this->actionName)) {
         // if the service action support kaltura network - continue without private data
         $allowPrivatePartnerData = false;
         // DO NOT allow private partner data
         return true;
         // action permitted (without private partner data)
     }
     // action not permitted, not even without private partner data access
     return false;
 }