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