public function toObject($obj = null, $props_to_skip = array()) { if (!$obj) { $obj = new kCategoryKuserAdvancedFilter(); } if (!$this->memberIdEq && !$this->memberIdIn) { throw new KalturaAPIException(KalturaErrors::PROPERTY_VALIDATION_CANNOT_BE_NULL, 'memberIdEq,memberIdIn'); } if (!$this->memberPermissionsMatchOr && !$this->memberPermissionsMatchAnd) { throw new KalturaAPIException(KalturaErrors::PROPERTY_VALIDATION_CANNOT_BE_NULL, 'memberIdEq,memberIdIn'); } if ($this->memberIdEq) { $kuser = kuserPeer::getKuserByPartnerAndUid(kCurrentContext::getCurrentPartnerId(), $this->memberIdEq); if (!$kuser) { throw new KalturaAPIException(KalturaErrors::USER_NOT_FOUND); } $kuserIds = array($kuser->getId()); // retrieve categories that the user is a member by a group. $kgroupIds = KuserKgroupPeer::retrieveKgroupIdsByKuserId($kuser->getId()); if (!is_null($kgroupIds) && is_array($kgroupIds)) { $kuserIds = array_merge($kgroupIds, $kuserIds); } $obj->setMemberIdIn($kuserIds); } if ($this->memberIdIn) { $kusers = kuserPeer::getKuserByPartnerAndUids(kCurrentContext::getCurrentPartnerId(), explode(',', $this->memberIdIn)); $kuserIds = array(); if (!$kusers || !count($kusers)) { throw new KalturaAPIException(KalturaErrors::USER_NOT_FOUND); } foreach ($kusers as $kuser) { $kuserIds[] = $kuser->getId(); } // retrieve categories that the users are members by a group. $kgroupIds = KuserKgroupPeer::retrieveKgroupIdsByKuserIds($kuserIds); if (!is_null($kgroupIds) && is_array($kgroupIds)) { $kuserIds = array_merge($kgroupIds, $kuserIds); } $obj->setMemberIdIn($kuserIds); } return parent::toObject($obj, $props_to_skip); }
public function isEntitledKuserPublish($kuserId, $useUserGroups = true) { $entitledKusersArray = explode(',', $this->getEntitledKusersPublish()); if (in_array(trim($kuserId), $entitledKusersArray)) { return true; } if ($useUserGroups == true) { $kuserKGroupIds = KuserKgroupPeer::retrieveKgroupIdsByKuserIds(array($kuserId)); foreach ($kuserKGroupIds as $groupKId) { if (in_array($groupKId, $entitledKusersArray)) { return true; } } } return false; }