/** * List all categories * * @action list * @param KalturaCategoryUserFilter $filter * @param KalturaFilterPager $pager * @return KalturaCategoryUserListResponse * @throws KalturaErrors::MUST_FILTER_USERS_OR_CATEGORY */ function listAction(KalturaCategoryUserFilter $filter = null, KalturaFilterPager $pager = null) { if (!($filter->categoryIdEqual || $filter->categoryIdIn || $filter->userIdIn || $filter->userIdEqual)) { throw new KalturaAPIException(KalturaErrors::MUST_FILTER_USERS_OR_CATEGORY); } if (!$filter) { $filter = new KalturaCategoryUserFilter(); } if (!$pager) { $pager = new kalturaFilterPager(); } if ($filter->userIdIn) { $usersIds = explode(',', $filter->userIdIn); $partnerId = kCurrentContext::$partner_id ? kCurrentContext::$partner_id : kCurrentContext::$ks_partner_id; $c = new Criteria(); $c->add(kuserPeer::PARTNER_ID, $partnerId, Criteria::EQUAL); $c->add(kuserPeer::PUSER_ID, $usersIds, Criteria::IN); $kusers = kuserPeer::doSelect($c); $usersIds = array(); foreach ($kusers as $kuser) { $usersIds[] = $kuser->getId(); } $filter->userIdIn = implode(',', $usersIds); } if ($filter->userIdEqual) { $partnerId = kCurrentContext::$partner_id ? kCurrentContext::$partner_id : kCurrentContext::$ks_partner_id; $c = new Criteria(); $c->add(kuserPeer::PARTNER_ID, $partnerId); $c->add(kuserPeer::PUSER_ID, $filter->userIdEqual); $c->add(kuserPeer::STATUS, KuserStatus::ACTIVE); kuserPeer::setUseCriteriaFilter(false); $kuser = kuserPeer::doSelectOne($c); kuserPeer::setUseCriteriaFilter(true); //batch should be abke to get categoryUser of deleted users. if (!$kuser || $kuser->getStatus() != KuserStatus::ACTIVE && kCurrentContext::$ks_partner_id != Partner::BATCH_PARTNER_ID) { KalturaLog::debug('User not found'); $response = new KalturaCategoryUserListResponse(); $response->objects = new KalturaCategoryUserArray(); $response->totalCount = 0; return $response; } $filter->userIdEqual = $kuser->getId(); } $categories = array(); if ($filter->categoryIdEqual) { $categories[] = categoryPeer::retrieveByPK($filter->categoryIdEqual); } elseif ($filter->categoryIdIn) { $categories = categoryPeer::retrieveByPKs(explode(',', $filter->categoryIdIn)); } $categoriesInheritanceRoot = array(); foreach ($categories as $category) { if (is_null($category)) { continue; } if ($category->getInheritanceType() == InheritanceType::INHERIT) { if ($filter->categoryDirectMembers && kCurrentContext::$master_partner_id == Partner::BATCH_PARTNER_ID) { $categoriesInheritanceRoot[$category->getId()] = $category->getId(); } else { //if category inheris members - change filter to -> inherited from parent id = category->getIheritedParent $categoriesInheritanceRoot[$category->getInheritedParentId()] = $category->getInheritedParentId(); } } else { $categoriesInheritanceRoot[$category->getId()] = $category->getId(); } } $filter->categoryDirectMembers = null; $filter->categoryIdEqual = null; $filter->categoryIdIn = implode(',', $categoriesInheritanceRoot); //if filter had categories that doesn't exists or not entitled - should return 0 objects. if (count($categories) && !count($categoriesInheritanceRoot)) { $response = new KalturaCategoryUserListResponse(); $response->totalCount = 0; return $response; } $categoryKuserFilter = new categoryKuserFilter(); $filter->toObject($categoryKuserFilter); $c = KalturaCriteria::create(categoryKuserPeer::OM_CLASS); $categoryKuserFilter->attachToCriteria($c); $c->applyFilters(); $totalCount = categoryKuserPeer::doCount($c); $pager->attachToCriteria($c); $list = categoryKuserPeer::doSelect($c); $newList = KalturaCategoryUserArray::fromDbArray($list); $response = new KalturaCategoryUserListResponse(); $response->objects = $newList; $response->totalCount = $totalCount; return $response; }
/** * Retrieve a list of available UIConfs * * @action list * @param KalturaUiConfFilter $filter * @param KalturaFilterPager $pager * @return KalturaUiConfListResponse */ function listAction(KalturaUiConfFilter $filter = null, KalturaFilterPager $pager = null) { myDbHelper::$use_alternative_con = myDbHelper::DB_HELPER_CONN_PROPEL2; if (!$filter) { $filter = new KalturaUiConfFilter(); } $uiConfFilter = new uiConfFilter(); $filter->toObject($uiConfFilter); $c = new Criteria(); $uiConfFilter->attachToCriteria($c); $count = uiConfPeer::doCount($c); if (!$pager) { $pager = new kalturaFilterPager(); } $pager->attachToCriteria($c); $list = uiConfPeer::doSelect($c); $newList = KalturaUiConfArray::fromUiConfArray($list); $response = new KalturaUiConfListResponse(); $response->objects = $newList; $response->totalCount = $count; return $response; }