/** * delete by userId and groupId * * @action delete * @param string $userId * @param string $groupId */ function deleteAction($userId, $groupId) { $partnerId = $this->getPartnerId(); //verify kuser exists $kuser = kuserPeer::getKuserByPartnerAndUid($partnerId, $userId); if (!$kuser) { throw new KalturaAPIException(KalturaErrors::INVALID_USER_ID, $userId); } //verify group exists $kgroup = kuserPeer::getKuserByPartnerAndUid($partnerId, $groupId); if (!$kgroup) { //if the delete worker was triggered due to group deletion if (kCurrentContext::$master_partner_id != Partner::BATCH_PARTNER_ID) { throw new KalturaAPIException(KalturaErrors::GROUP_NOT_FOUND, $groupId); } kuserPeer::setUseCriteriaFilter(false); $kgroup = kuserPeer::getKuserByPartnerAndUid($partnerId, $groupId); kuserPeer::setUseCriteriaFilter(true); if (!$kgroup) { throw new KalturaAPIException(KalturaErrors::GROUP_NOT_FOUND, $groupId); } } $dbKuserKgroup = KuserKgroupPeer::retrieveByKuserIdAndKgroupId($kuser->getId(), $kgroup->getId()); if (!$dbKuserKgroup) { throw new KalturaAPIException(KalturaErrors::GROUP_USER_DOES_NOT_EXIST, $userId, $groupId); } $dbKuserKgroup->setStatus(KuserKgroupStatus::DELETED); $dbKuserKgroup->save(); $groupUser = new KalturaGroupUser(); $groupUser->fromObject($dbKuserKgroup); }
/** * Create a new Partner object * * @action register * @param KalturaPartner $partner * @param string $cmsPassword * @param int $templatePartnerId * @param bool $silent * @return KalturaPartner * * @throws APIErrors::PARTNER_REGISTRATION_ERROR */ public function registerAction(KalturaPartner $partner, $cmsPassword = "", $templatePartnerId = null, $silent = false) { KalturaResponseCacher::disableCache(); $dbPartner = $partner->toPartner(); $c = new Criteria(); $c->addAnd(UserLoginDataPeer::LOGIN_EMAIL, $partner->adminEmail, Criteria::EQUAL); $existingUser = UserLoginDataPeer::doSelectOne($c); /*@var $exisitingUser UserLoginData */ try { if ($cmsPassword == "") { $cmsPassword = null; } $parentPartnerId = null; if ($this->getKs() && $this->getKs()->isAdmin()) { $parentPartnerId = $this->getKs()->partner_id; if ($parentPartnerId == Partner::ADMIN_CONSOLE_PARTNER_ID) { $parentPartnerId = null; } else { // only if this partner is a var/group, allow setting it as parent for the new created partner $parentPartner = PartnerPeer::retrieveByPK($parentPartnerId); if (!($parentPartner->getPartnerGroupType() == PartnerGroupType::VAR_GROUP || $parentPartner->getPartnerGroupType() == PartnerGroupType::GROUP)) { throw new KalturaAPIException(KalturaErrors::NON_GROUP_PARTNER_ATTEMPTING_TO_ASSIGN_CHILD, $parentPartnerId); } if ($templatePartnerId) { $templatePartner = PartnerPeer::retrieveByPK($templatePartnerId); if (!$templatePartner || $templatePartner->getPartnerParentId() != $parentPartnerId) { throw new KalturaAPIException(KalturaErrors::NON_GROUP_PARTNER_ATTEMPTING_TO_ASSIGN_CHILD, $parentPartnerId); } } } } $partner_registration = new myPartnerRegistration($parentPartnerId); $ignorePassword = false; if ($existingUser && ($this->getKs()->partner_id == Partner::ADMIN_CONSOLE_PARTNER_ID || $this->getKs()->partner_id == $parentPartnerId)) { kuserPeer::setUseCriteriaFilter(false); $kuserOfLoginData = kuserPeer::getKuserByEmail($partner->adminEmail, $existingUser->getConfigPartnerId()); kuserPeer::setUseCriteriaFilter(true); if ($kuserOfLoginData) { $ignorePassword = true; } } list($pid, $subpid, $pass, $hashKey) = $partner_registration->initNewPartner($dbPartner->getName(), $dbPartner->getAdminName(), $dbPartner->getAdminEmail(), $dbPartner->getCommercialUse(), "yes", $dbPartner->getDescription(), $dbPartner->getUrl1(), $cmsPassword, $dbPartner, $ignorePassword, $templatePartnerId); $dbPartner = PartnerPeer::retrieveByPK($pid); // send a confirmation email as well as the result of the service $partner_registration->sendRegistrationInformationForPartner($dbPartner, false, $existingUser, $silent); } catch (Exception $ex) { KalturaLog::CRIT($ex); // this assumes the partner name is unique - TODO - remove key from DB ! throw new KalturaAPIException(APIErrors::PARTNER_REGISTRATION_ERROR); } $partner = new KalturaPartner(); // start from blank $partner->fromPartner($dbPartner); $partner->secret = $dbPartner->getSecret(); $partner->adminSecret = $dbPartner->getAdminSecret(); $partner->cmsPassword = $pass; return $partner; }
function getAdminUsers($lastUser, $userLimitEachLoop) { kuserPeer::clearInstancePool(); UserRolePeer::clearInstancePool(); $c = new Criteria(); $c->addAnd(kuserPeer::ID, $lastUser, Criteria::GREATER_THAN); $c->addAnd(kuserPeer::IS_ADMIN, true, Criteria::EQUAL); $c->addAscendingOrderByColumn(kuserPeer::ID); $c->setLimit($userLimitEachLoop); kuserPeer::setUseCriteriaFilter(false); $users = kuserPeer::doSelect($c); kuserPeer::setUseCriteriaFilter(true); return $users; }
if ($key === 'admin') { $partner = PartnerPeer::retrieveByPk(-2); $partner->setAdminSessionRoleId($newRole->getId()); $partner->save(); } } } //------------------------------------------------------ // get users $c = new Criteria(); $c->addAscendingOrderByColumn(kuserPeer::ID); $c->addAnd(kuserPeer::PARTNER_ID, ADMIN_CONSOLE_PARTNER_ID, Criteria::EQUAL); kuserPeer::clearInstancePool(); kuserPeer::setUseCriteriaFilter(false); $users = kuserPeer::doSelect($c); kuserPeer::setUseCriteriaFilter(true); // set relevant role to each user foreach ($users as $user) { KalturaLog::log('Current user id [' . $user->getId() . ']'); $partnerData = $user->getPartnerData(); if ($partnerData) { $partnerData = unserialize($partnerData); $oldRole = $partnerData->role; } else { $oldRole = 'guest'; } $newRole = getNewRole($oldRole, $userRoles); if (!$newRole) { KalturaLog::alert('ERROR - Critical error occured - skipping kuser id [' . $user->getId() . '] email [' . $user->getEmail() . ']!'); continue; }
public static function copyEntry(entry $entry, Partner $toPartner = null, $dontCopyUsers = false) { KalturaLog::log("copyEntry - Copying entry [" . $entry->getId() . "] to partner [" . $toPartner->getId() . "]"); $newEntry = $entry->copy(); $newEntry->setIntId(null); $newEntry->setCategories(null); $newEntry->setCategoriesIds(null); if ($toPartner instanceof Partner) { $newEntry->setPartnerId($toPartner->getId()); $newEntry->setSubpId($toPartner->getId() * 100); $newEntry->setAccessControlId($toPartner->getDefaultAccessControlId()); } $newKuser = null; if (!$dontCopyUsers) { // copy the kuser (if the same puser id exists its kuser will be used) kuserPeer::setUseCriteriaFilter(false); $kuser = $entry->getKuser(); $newKuser = kuserPeer::createKuserForPartner($newEntry->getPartnerId(), $kuser->getPuserId()); $newEntry->setKuserId($newKuser->getId()); $newEntry->setCreatorKuserId($newKuser->getId()); kuserPeer::setUseCriteriaFilter(true); } // copy the kshow kshowPeer::setUseCriteriaFilter(false); $kshow = $entry->getKshow(); if ($kshow) { $newKshow = $kshow->copy(); $newKshow->setIntId(null); $newKshow->setPartnerId($toPartner->getId()); $newKshow->setSubpId($toPartner->getId() * 100); if ($newKuser) { $newKshow->setProducerId($newKuser->getId()); } $newKshow->save(); $newEntry->setKshowId($newKshow->getId()); } kshowPeer::setUseCriteriaFilter(true); // reset the statistics myEntryUtils::resetEntryStatistics($newEntry); // set the new partner id into the default category criteria filter $defaultCategoryFilter = categoryPeer::getCriteriaFilter()->getFilter(); $oldPartnerId = $defaultCategoryFilter->get(categoryPeer::PARTNER_ID); $defaultCategoryFilter->remove(categoryPeer::PARTNER_ID); $defaultCategoryFilter->addAnd(categoryPeer::PARTNER_ID, $newEntry->getPartnerId()); // save the entry $newEntry->save(); // restore the original partner id in the default category criteria filter $defaultCategoryFilter->remove(categoryPeer::PARTNER_ID); $defaultCategoryFilter->addAnd(categoryPeer::PARTNER_ID, $oldPartnerId); KalturaLog::log("copyEntry - New entry [" . $newEntry->getId() . "] was created"); if ($entry->getStatus() != entryStatus::READY) { $clonePendingEntries = $entry->getClonePendingEntries(); $clonePendingEntries[] = $newEntry->getId(); $entry->setClonePendingEntries($clonePendingEntries); $entry->save(); } else { self::copyEntryData($entry, $newEntry); } //if entry is a static playlist, link between it and its new child entries if ($entry->getType() == entryType::PLAYLIST) { switch ($entry->getMediaType()) { case entry::ENTRY_MEDIA_TYPE_TEXT: $from = $entry->getDataContent(); KalturaLog::debug("Entries to copy from source static playlist: [{$from}]"); $fromEntryIds = explode(",", $from); $toEntryIds = array(); foreach ($fromEntryIds as $fromEntryId) { $toEntryIds[] = kObjectCopyHandler::getMappedId(entryPeer::OM_CLASS, $fromEntryId); } $newEntry->setDataContent(implode(",", $toEntryIds)); break; case entry::ENTRY_MEDIA_TYPE_XML: list($totalResults, $fromFiltersList) = myPlaylistUtils::getPlaylistFilterListStruct($entry->getDataContent()); $toPlaylistXml = new SimpleXMLElement("<playlist/>"); $toPlaylistXml->addChild("total_results", $totalResults); $toFiltersXml = $toPlaylistXml->addChild("filters"); foreach ($fromFiltersList as $filterXML) { $entryFilter = new entryFilter(); $entryFilter->fillObjectFromXml($filterXML, "_"); if (isset($entryFilter->fields["_matchand_categories_ids"])) { $categoriesIds = explode(",", $entryFilter->fields["_matchand_categories_ids"]); $newCategoriesIds = array(); foreach ($categoriesIds as $categoryId) { $newCategoriesIds[] = kObjectCopyHandler::getMappedId(categoryPeer::OM_CLASS, $categoryId); } $entryFilter->fields["_matchand_categories_ids"] = implode(",", $newCategoriesIds); } if (isset($entryFilter->fields["_matchor_categories_ids"])) { $categoriesIds = explode(",", $entryFilter->fields["_matchor_categories_ids"]); $newCategoriesIds = array(); foreach ($categoriesIds as $categoryId) { $newCategoriesIds[] = kObjectCopyHandler::getMappedId(categoryPeer::OM_CLASS, $categoryId); } $entryFilter->fields["_matchor_categories_ids"] = implode(",", $newCategoriesIds); } if (isset($entryFilter->fields["_in_category_ancestor_id"])) { $categoriesIds = explode(",", $entryFilter->fields["_in_category_ancestor_id"]); $newCategoriesIds = array(); foreach ($categoriesIds as $categoryId) { $newCategoriesIds[] = kObjectCopyHandler::getMappedId(categoryPeer::OM_CLASS, $categoryId); } $entryFilter->fields["_in_category_ancestor_id"] = implode(",", $newCategoriesIds); } $toEntryFilterXML = $toFiltersXml->addChild("filter"); $toEntryFilterXML = $entryFilter->toXml($toEntryFilterXML); } $newEntry->setDataContent($toPlaylistXml->asXML()); break; } } // copy relationships to categories KalturaLog::debug('Copy relationships to categories from entry [' . $entry->getId() . '] to entry [' . $newEntry->getId() . ']'); $c = KalturaCriteria::create(categoryEntryPeer::OM_CLASS); $c->addAnd(categoryEntryPeer::ENTRY_ID, $entry->getId()); $c->addAnd(categoryEntryPeer::STATUS, CategoryEntryStatus::ACTIVE, Criteria::EQUAL); $c->addAnd(categoryEntryPeer::PARTNER_ID, $entry->getPartnerId()); categoryEntryPeer::setUseCriteriaFilter(false); $categoryEntries = categoryEntryPeer::doSelect($c); categoryEntryPeer::setUseCriteriaFilter(true); // Create srcCategoryIdToDstCategoryIdMap - a map of source partner category ids -> dst. partner category ids // // Build src category IDs set $srcCategoryIdSet = array(); foreach ($categoryEntries as $categoryEntry) { $srcCategoryIdSet[] = $categoryEntry->getCategoryId(); } $illegalCategoryStatus = array(CategoryStatus::DELETED, CategoryStatus::PURGED); // Get src category objects $c = KalturaCriteria::create(categoryPeer::OM_CLASS); $c->add(categoryPeer::ID, $srcCategoryIdSet, Criteria::IN); $c->addAnd(categoryPeer::PARTNER_ID, $entry->getPartnerId()); $c->addAnd(categoryPeer::STATUS, $illegalCategoryStatus, Criteria::NOT_IN); categoryPeer::setUseCriteriaFilter(false); $srcCategories = categoryPeer::doSelect($c); categoryPeer::setUseCriteriaFilter(true); // Map the category names to their IDs $fullNamesToSrcCategoryIdMap = array(); foreach ($srcCategories as $category) { $fullNamesToSrcCategoryIdMap[$category->getFullName()] = $category->getId(); } // Get dst. partner categories based on src. category full-names $c = KalturaCriteria::create(categoryPeer::OM_CLASS); $c->add(categoryPeer::FULL_NAME, array_keys($fullNamesToSrcCategoryIdMap), KalturaCriteria::IN); $c->addAnd(categoryPeer::PARTNER_ID, $newEntry->getPartnerId()); $c->addAnd(categoryPeer::STATUS, $illegalCategoryStatus, Criteria::NOT_IN); categoryPeer::setUseCriteriaFilter(false); $dstCategories = categoryPeer::doSelect($c); categoryPeer::setUseCriteriaFilter(true); $srcCategoryIdToDstCategoryIdMap = array(); foreach ($dstCategories as $dstCategory) { $fullName = $dstCategory->getFullName(); if (array_key_exists($fullName, $fullNamesToSrcCategoryIdMap)) { $srcCategoryId = $fullNamesToSrcCategoryIdMap[$fullName]; $srcCategoryIdToDstCategoryIdMap[$srcCategoryId] = $dstCategory->getId(); } } foreach ($categoryEntries as $categoryEntry) { /* @var $categoryEntry categoryEntry */ $newCategoryEntry = $categoryEntry->copy(); $newCategoryEntry->setPartnerId($newEntry->getPartnerId()); $newCategoryEntry->setEntryId($newEntry->getId()); $srcCategoryId = $categoryEntry->getCategoryId(); if (!array_key_exists($srcCategoryId, $srcCategoryIdToDstCategoryIdMap)) { continue; // Skip the category_entry's creation } $dstCategoryId = $srcCategoryIdToDstCategoryIdMap[$srcCategoryId]; $newCategoryEntry->setCategoryId($dstCategoryId); categoryPeer::setUseCriteriaFilter(false); entryPeer::setUseCriteriaFilter(false); $newCategoryEntry->save(); entryPeer::setUseCriteriaFilter(true); categoryPeer::setUseCriteriaFilter(true); } return $newEntry; }
public function getListResponse(KalturaFilterPager $pager, KalturaDetachedResponseProfile $responseProfile = null) { if ($this->userIdIn) { $usersIds = explode(',', $this->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) { /* @var $kuser kuser */ $usersIds[] = $kuser->getId(); } $this->userIdIn = implode(',', $usersIds); } if ($this->relatedGroupsByUserId) { $partnerId = kCurrentContext::$partner_id ? kCurrentContext::$partner_id : kCurrentContext::$ks_partner_id; $userIds = array(); $c = new Criteria(); $c->add(kuserPeer::PARTNER_ID, $partnerId); $c->add(kuserPeer::PUSER_ID, $this->relatedGroupsByUserId); $c->add(kuserPeer::TYPE, KuserType::USER); $kuser = kuserPeer::doSelectOne($c); if (!$kuser) { $response = new KalturaCategoryUserListResponse(); $response->objects = new KalturaCategoryUserArray(); $response->totalCount = 0; return $response; } $kgroupIds = KuserKgroupPeer::retrieveKgroupIdsByKuserId($kuser->getId()); if (!is_null($kgroupIds) && is_array($kgroupIds)) { $userIds = $kgroupIds; } $userIds[] = $kuser->getId(); // if userIdIn is also set in the filter need to intersect the two arrays. if (isset($this->userIdIn)) { $curUserIds = explode(',', $this->userIdIn); $userIds = array_intersect($curUserIds, $userIds); } $this->userIdIn = implode(',', $userIds); } if ($this->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, $this->userIdEqual); if (kCurrentContext::$ks_partner_id == Partner::BATCH_PARTNER_ID) { //batch should be able to get categoryUser of deleted users. kuserPeer::setUseCriteriaFilter(false); } // in case of more than one deleted kusers - get the last one $c->addDescendingOrderByColumn(kuserPeer::UPDATED_AT); $kuser = kuserPeer::doSelectOne($c); kuserPeer::setUseCriteriaFilter(true); if (!$kuser) { KalturaLog::debug('User not found'); $response = new KalturaCategoryUserListResponse(); $response->objects = new KalturaCategoryUserArray(); $response->totalCount = 0; return $response; } $this->userIdEqual = $kuser->getId(); } $categories = array(); if ($this->categoryIdEqual) { $categories[] = categoryPeer::retrieveByPK($this->categoryIdEqual); } elseif ($this->categoryIdIn) { $categories = categoryPeer::retrieveByPKs(explode(',', $this->categoryIdIn)); } $categoriesInheritanceRoot = array(); foreach ($categories as $category) { /* @var $category category */ if (is_null($category)) { continue; } if ($category->getInheritanceType() == InheritanceType::INHERIT) { if ($this->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(); } } $this->categoryDirectMembers = null; $this->categoryIdEqual = null; $this->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 = $this->toObject(); $c = KalturaCriteria::create(categoryKuserPeer::OM_CLASS); $categoryKuserFilter->attachToCriteria($c); $pager->attachToCriteria($c); $c->applyFilters(); $list = categoryKuserPeer::doSelect($c); $totalCount = $c->getRecordsCount(); $newList = KalturaCategoryUserArray::fromDbArray($list, $responseProfile); $response = new KalturaCategoryUserListResponse(); $response->objects = $newList; $response->totalCount = $totalCount; return $response; }
/** * Code to be run after inserting to database * @param PropelPDO $con */ public function postInsert(PropelPDO $con = null) { kuserPeer::setUseCriteriaFilter(false); $this->reload(); kuserPeer::setUseCriteriaFilter(true); kEventsManager::raiseEvent(new kObjectCreatedEvent($this)); if ($this->copiedFrom) { kEventsManager::raiseEvent(new kObjectCopiedEvent($this->copiedFrom, $this)); } }
/** * Delete a CategoryUser * * @action delete * @param int $categoryId * @param string $userId */ function deleteAction($categoryId, $userId) { $partnerId = kCurrentContext::$partner_id ? kCurrentContext::$partner_id : kCurrentContext::$ks_partner_id; $kuser = kuserPeer::getKuserByPartnerAndUid($partnerId, $userId); if (!$kuser) { if (kCurrentContext::$master_partner_id != Partner::BATCH_PARTNER_ID) { throw new KalturaAPIException(KalturaErrors::INVALID_USER_ID, $userId); } kuserPeer::setUseCriteriaFilter(false); $kuser = kuserPeer::getKuserByPartnerAndUid($partnerId, $userId); kuserPeer::setUseCriteriaFilter(true); if (!$kuser) { throw new KalturaAPIException(KalturaErrors::INVALID_USER_ID, $userId); } } $dbCategoryKuser = categoryKuserPeer::retrieveByCategoryIdAndKuserId($categoryId, $kuser->getId()); /* @var $dbCategoryKuser categoryKuser */ if (!$dbCategoryKuser) { throw new KalturaAPIException(KalturaErrors::INVALID_CATEGORY_USER_ID, $categoryId, $userId); } $category = categoryPeer::retrieveByPK($categoryId); if (!$category) { throw new KalturaAPIException(KalturaErrors::CATEGORY_NOT_FOUND, $categoryId); } if ($category->getInheritanceType() == InheritanceType::INHERIT && kCurrentContext::$master_partner_id != Partner::BATCH_PARTNER_ID) { throw new KalturaAPIException(KalturaErrors::CATEGORY_INHERIT_MEMBERS, $categoryId); } // only manager can remove memnger or users remove himself $currentKuserCategoryKuser = categoryKuserPeer::retrievePermittedKuserInCategory($dbCategoryKuser->getCategoryId()); if ((!$currentKuserCategoryKuser || $currentKuserCategoryKuser->getPermissionLevel() != CategoryKuserPermissionLevel::MANAGER && kCurrentContext::$ks_uid != $userId) && kCurrentContext::$ks_partner_id != Partner::BATCH_PARTNER_ID && kEntitlementUtils::getEntitlementEnforcement()) { throw new KalturaAPIException(KalturaErrors::CANNOT_UPDATE_CATEGORY_USER); } if ($dbCategoryKuser->getKuserId() == $category->getKuserId() && kCurrentContext::$ks_partner_id != Partner::BATCH_PARTNER_ID) { throw new KalturaAPIException(KalturaErrors::CANNOT_UPDATE_CATEGORY_USER_OWNER); } $dbCategoryKuser->setStatus(CategoryKuserStatus::DELETED); $dbCategoryKuser->save(); }
public function getListResponse(KalturaFilterPager $pager, KalturaDetachedResponseProfile $responseProfile = null) { $this->validateUserIdOrGroupIdFiltered(); if ($this->groupIdEqual) { $partnerId = kCurrentContext::getCurrentPartnerId(); $c = new Criteria(); $c->add(kuserPeer::PARTNER_ID, $partnerId); $c->add(kuserPeer::PUSER_ID, $this->groupIdEqual); $c->add(kuserPeer::TYPE, KuserType::GROUP); if (kCurrentContext::$ks_partner_id == Partner::BATCH_PARTNER_ID) { //batch should be able to get categoryUser of deleted users. kuserPeer::setUseCriteriaFilter(false); } // in case of more than one deleted kusers - get the last one $c->addDescendingOrderByColumn(kuserPeer::UPDATED_AT); $kuser = kuserPeer::doSelectOne($c); kuserPeer::setUseCriteriaFilter(true); if (!$kuser) { $response = new KalturaGroupUserListResponse(); $response->objects = new KalturaGroupUserArray(); $response->totalCount = 0; return $response; } $this->groupIdEqual = $kuser->getId(); } if ($this->userIdEqual) { $partnerId = kCurrentContext::getCurrentPartnerId(); $c = new Criteria(); $c->add(kuserPeer::PARTNER_ID, $partnerId); $c->add(kuserPeer::PUSER_ID, $this->userIdEqual); $c->add(kuserPeer::TYPE, KuserType::USER); $kuser = kuserPeer::doSelectOne($c); if (!$kuser) { $response = new KalturaGroupUserListResponse(); $response->objects = new KalturaGroupUserArray(); $response->totalCount = 0; return $response; } $this->userIdEqual = $kuser->getId(); } if ($this->userIdIn) { $usersIds = explode(',', $this->userIdIn); $partnerId = kCurrentContext::getCurrentPartnerId(); $c = new Criteria(); $c->add(kuserPeer::PARTNER_ID, $partnerId, Criteria::EQUAL); $c->add(kuserPeer::PUSER_ID, $usersIds, Criteria::IN); $c->add(kuserPeer::TYPE, KuserType::USER); $kusers = kuserPeer::doSelect($c); if (!$kusers) { $response = new KalturaGroupUserListResponse(); $response->objects = new KalturaGroupUserArray(); $response->totalCount = 0; return $response; } $usersIds = array(); foreach ($kusers as $kuser) { /* @var $kuser kuser */ $usersIds[] = $kuser->getId(); } $this->userIdIn = implode(',', $usersIds); } if ($this->groupIdIn) { $groupIdIn = explode(',', $this->groupIdIn); $partnerId = kCurrentContext::getCurrentPartnerId(); $c = new Criteria(); $c->add(kuserPeer::PARTNER_ID, $partnerId, Criteria::EQUAL); $c->add(kuserPeer::PUSER_ID, $groupIdIn, Criteria::IN); $c->add(kuserPeer::TYPE, KuserType::GROUP); $kusers = kuserPeer::doSelect($c); if (!$kusers) { $response = new KalturaGroupUserListResponse(); $response->objects = new KalturaGroupUserArray(); $response->totalCount = 0; return $response; } $groupIdIn = array(); foreach ($kusers as $kuser) { /* @var $kuser kuser */ $groupIdIn[] = $kuser->getId(); } $this->groupIdIn = implode(',', $groupIdIn); } $kuserKgroupFilter = $this->toObject(); $c = KalturaCriteria::create(KuserKgroupPeer::OM_CLASS); $kuserKgroupFilter->attachToCriteria($c); $pager->attachToCriteria($c); $c->applyFilters(); $list = KuserKgroupPeer::doSelect($c); $newList = KalturaGroupUserArray::fromDbArray($list, $responseProfile); $response = new KalturaGroupUserListResponse(); $response->objects = $newList; $resultCount = count($newList); if ($resultCount && $resultCount < $pager->pageSize) { $totalCount = ($pager->pageIndex - 1) * $pager->pageSize + $resultCount; } else { KalturaFilterPager::detachFromCriteria($c); $totalCount = KuserKgroupPeer::doCount($c); } $response->totalCount = $totalCount; return $response; }
<?php chdir(dirname(__FILE__)); require_once __DIR__ . '/../../bootstrap.php'; $c = new Criteria(); if ($argc > 1 && is_numeric($argv[1])) { $c->add(kuserPeer::UPDATED_AT, $argv[1], Criteria::GREATER_EQUAL); } if ($argc > 2 && is_numeric($argv[2])) { $c->add(kuserPeer::PARTNER_ID, $argv[2], Criteria::EQUAL); } if ($argc > 3 && is_numeric($argv[3])) { $c->add(kuserPeer::ID, $argv[3], Criteria::GREATER_EQUAL); } if ($argc > 4) { kuserPeer::setUseCriteriaFilter((bool) $argv[4]); } $c->addAscendingOrderByColumn(kuserPeer::UPDATED_AT); $c->addAscendingOrderByColumn(kuserPeer::ID); $c->setLimit(10000); $con = myDbHelper::getConnection(myDbHelper::DB_HELPER_CONN_PROPEL2); //$sphinxCon = DbManager::getSphinxConnection(); $entries = kuserPeer::doSelect($c, $con); $sphinx = new kSphinxSearchManager(); while (count($entries)) { foreach ($entries as $entry) { /* @var $entry kuser */ KalturaLog::log('kuser id ' . $entry->getId() . ' updated at ' . $entry->getUpdatedAt(null)); try { $ret = $sphinx->saveToSphinx($entry, true); } catch (Exception $e) {
/** * Get a session using user email and password * * @param string $puserId * @param string $loginEmail * @param string $password * @param int $partnerId * @param int $expiry * @param string $privileges * * @return string KS * * @throws KalturaErrors::USER_NOT_FOUND * @thrown KalturaErrors::LOGIN_RETRIES_EXCEEDED * @thrown KalturaErrors::LOGIN_BLOCKED * @thrown KalturaErrors::PASSWORD_EXPIRED * @thrown KalturaErrors::INVALID_PARTNER_ID * @thrown KalturaErrors::INTERNAL_SERVERL_ERROR * @throws KalturaErrors::USER_IS_BLOCKED */ protected function loginImpl($puserId, $loginEmail, $password, $partnerId = null, $expiry = 86400, $privileges = '*') { KalturaResponseCacher::disableCache(); myPartnerUtils::resetPartnerFilter('kuser'); kuserPeer::setUseCriteriaFilter(true); // if a KS of a specific partner is used, don't allow logging in to a different partner if ($this->getPartnerId() && $partnerId && $this->getPartnerId() != $partnerId) { throw new KalturaAPIException(KalturaErrors::INVALID_PARTNER_ID, $partnerId); } if ($loginEmail && !$partnerId) { $this->validateApiAccessControlByEmail($loginEmail); } try { if ($loginEmail) { $user = UserLoginDataPeer::userLoginByEmail($loginEmail, $password, $partnerId); } else { $user = kuserPeer::userLogin($puserId, $password, $partnerId); } } catch (kUserException $e) { $code = $e->getCode(); if ($code == kUserException::LOGIN_DATA_NOT_FOUND) { throw new KalturaAPIException(KalturaErrors::USER_NOT_FOUND); } if ($code == kUserException::USER_NOT_FOUND) { throw new KalturaAPIException(KalturaErrors::USER_NOT_FOUND); } else { if ($code == kUserException::LOGIN_RETRIES_EXCEEDED) { throw new KalturaAPIException(KalturaErrors::LOGIN_RETRIES_EXCEEDED); } else { if ($code == kUserException::LOGIN_BLOCKED) { throw new KalturaAPIException(KalturaErrors::LOGIN_BLOCKED); } else { if ($code == kUserException::PASSWORD_EXPIRED) { throw new KalturaAPIException(KalturaErrors::PASSWORD_EXPIRED); } else { if ($code == kUserException::WRONG_PASSWORD) { throw new KalturaAPIException(KalturaErrors::USER_WRONG_PASSWORD); } else { if ($code == kUserException::USER_IS_BLOCKED) { throw new KalturaAPIException(KalturaErrors::USER_IS_BLOCKED); } } } } } } throw new $e(); } if (!$user) { throw new KalturaAPIException(KalturaErrors::LOGIN_DATA_NOT_FOUND); } if ($partnerId && $user->getPartnerId() != $partnerId || $this->getPartnerId() && !$partnerId && $user->getPartnerId() != $this->getPartnerId()) { throw new KalturaAPIException(KalturaErrors::INVALID_PARTNER_ID, $partnerId); } $partner = PartnerPeer::retrieveByPK($user->getPartnerId()); if (!$partner || $partner->getStatus() == Partner::PARTNER_STATUS_FULL_BLOCK) { throw new KalturaAPIException(KalturaErrors::INVALID_PARTNER_ID, $user->getPartnerId()); } $ks = null; $admin = $user->getIsAdmin() ? KalturaSessionType::ADMIN : KalturaSessionType::USER; // create a ks for this admin_kuser as if entered the admin_secret using the API kSessionUtils::createKSessionNoValidations($partner->getId(), $user->getPuserId(), $ks, $expiry, $admin, "", $privileges); return $ks; }
public function setPuserId($v) { $this->puserId = $v; kuserPeer::setUseCriteriaFilter(false); $kuser = kuserPeer::getKuserByPartnerAndUid($this->getPartnerId(), $this->puserId, true); kuserPeer::setUseCriteriaFilter(true); if (!$kuser) { // Associate new kuser for the specified partner $kuser = kuserPeer::createKuserForPartner($this->getPartnerId(), $v); } if ($kuser) { return $this->setKuserId($kuser->getId()); } }
public static function copyEntry(entry $entry, Partner $toPartner = null, $dontCopyUsers = false) { KalturaLog::log("copyEntry - Copying entry [" . $entry->getId() . "] to partner [" . $toPartner->getId() . "]"); $newEntry = $entry->copy(); $newEntry->setIntId(null); $newEntry->setCategories(null); $newEntry->setCategoriesIds(null); if ($toPartner instanceof Partner) { $newEntry->setPartnerId($toPartner->getId()); $newEntry->setSubpId($toPartner->getId() * 100); $newEntry->setAccessControlId($toPartner->getDefaultAccessControlId()); } $newKuser = null; if (!$dontCopyUsers) { // copy the kuser (if the same puser id exists its kuser will be used) kuserPeer::setUseCriteriaFilter(false); $kuser = $entry->getKuser(); $newKuser = kuserPeer::createKuserForPartner($newEntry->getPartnerId(), $kuser->getPuserId()); $newEntry->setKuserId($newKuser->getId()); $newEntry->setCreatorKuserId($newKuser->getId()); kuserPeer::setUseCriteriaFilter(true); } // copy the kshow kshowPeer::setUseCriteriaFilter(false); $kshow = $entry->getKshow(); if ($kshow) { $newKshow = $kshow->copy(); $newKshow->setIntId(null); $newKshow->setPartnerId($toPartner->getId()); $newKshow->setSubpId($toPartner->getId() * 100); if ($newKuser) { $newKshow->setProducerId($newKuser->getId()); } $newKshow->save(); $newEntry->setKshowId($newKshow->getId()); } kshowPeer::setUseCriteriaFilter(true); // reset the statistics myEntryUtils::resetEntryStatistics($newEntry); // set the new partner id into the default category criteria filter $defaultCategoryFilter = categoryPeer::getCriteriaFilter()->getFilter(); $oldPartnerId = $defaultCategoryFilter->get(categoryPeer::PARTNER_ID); $defaultCategoryFilter->remove(categoryPeer::PARTNER_ID); $defaultCategoryFilter->addAnd(categoryPeer::PARTNER_ID, $newEntry->getPartnerId()); // save the entry $newEntry->save(); // restore the original partner id in the default category criteria filter $defaultCategoryFilter->remove(categoryPeer::PARTNER_ID); $defaultCategoryFilter->addAnd(categoryPeer::PARTNER_ID, $oldPartnerId); KalturaLog::log("copyEntry - New entry [" . $newEntry->getId() . "] was created"); // for any type that does not require assets: $shouldCopyDataForNonClip = true; if ($entry->getType() == entryType::MEDIA_CLIP) { $shouldCopyDataForNonClip = false; } if ($entry->getType() == entryType::PLAYLIST) { $shouldCopyDataForNonClip = false; } $shouldCopyDataForClip = false; // only images get their data copied if ($entry->getType() == entryType::MEDIA_CLIP) { if ($entry->getMediaType() != entry::ENTRY_MEDIA_TYPE_VIDEO && $entry->getMediaType() != entry::ENTRY_MEDIA_TYPE_AUDIO) { $shouldCopyDataForClip = true; } } //if entry is a static playlist, link between it and its new child entries if ($entry->getType() == entryType::PLAYLIST) { switch ($entry->getMediaType()) { case entry::ENTRY_MEDIA_TYPE_TEXT: $from = $entry->getDataContent(); KalturaLog::debug("Entries to copy from source static playlist: [{$from}]"); $fromEntryIds = explode(",", $from); $toEntryIds = array(); foreach ($fromEntryIds as $fromEntryId) { $toEntryIds[] = kObjectCopyHandler::getMappedId(entryPeer::OM_CLASS, $fromEntryId); } $newEntry->setDataContent(implode(",", $toEntryIds)); break; case entry::ENTRY_MEDIA_TYPE_XML: list($totalResults, $fromFiltersList) = myPlaylistUtils::getPlaylistFilterListStruct($entry->getDataContent()); $toPlaylistXml = new SimpleXMLElement("<playlist/>"); $toPlaylistXml->addChild("total_results", $totalResults); $toFiltersXml = $toPlaylistXml->addChild("filters"); foreach ($fromFiltersList as $filterXML) { $entryFilter = new entryFilter(); $entryFilter->fillObjectFromXml($filterXML, "_"); if (isset($entryFilter->fields["_matchand_categories_ids"])) { $categoriesIds = explode(",", $entryFilter->fields["_matchand_categories_ids"]); $newCategoriesIds = array(); foreach ($categoriesIds as $categoryId) { $newCategoriesIds[] = kObjectCopyHandler::getMappedId(categoryPeer::OM_CLASS, $categoryId); } $entryFilter->fields["_matchand_categories_ids"] = implode(",", $newCategoriesIds); } if (isset($entryFilter->fields["_matchor_categories_ids"])) { $categoriesIds = explode(",", $entryFilter->fields["_matchor_categories_ids"]); $newCategoriesIds = array(); foreach ($categoriesIds as $categoryId) { $newCategoriesIds[] = kObjectCopyHandler::getMappedId(categoryPeer::OM_CLASS, $categoryId); } $entryFilter->fields["_matchor_categories_ids"] = implode(",", $newCategoriesIds); } if (isset($entryFilter->fields["_in_category_ancestor_id"])) { $categoriesIds = explode(",", $entryFilter->fields["_in_category_ancestor_id"]); $newCategoriesIds = array(); foreach ($categoriesIds as $categoryId) { $newCategoriesIds[] = kObjectCopyHandler::getMappedId(categoryPeer::OM_CLASS, $categoryId); } $entryFilter->fields["_in_category_ancestor_id"] = implode(",", $newCategoriesIds); } $toEntryFilterXML = $toFiltersXml->addChild("filter"); $toEntryFilterXML = $entryFilter->toXml($toEntryFilterXML); } $newEntry->setDataContent($toPlaylistXml->asXML()); break; } } if ($shouldCopyDataForNonClip || $shouldCopyDataForClip) { // copy the data $from = $entry->getSyncKey(entry::FILE_SYNC_ENTRY_SUB_TYPE_DATA); // replaced__getDataPath $to = $newEntry->getSyncKey(entry::FILE_SYNC_ENTRY_SUB_TYPE_DATA); // replaced__getDataPath KalturaLog::log("copyEntriesByType - copying entry data [" . $from . "] to [" . $to . "]"); kFileSyncUtils::softCopy($from, $to); } $ismFrom = $entry->getSyncKey(entry::FILE_SYNC_ENTRY_SUB_TYPE_ISM); if (kFileSyncUtils::fileSync_exists($ismFrom)) { $ismTo = $newEntry->getSyncKey(entry::FILE_SYNC_ENTRY_SUB_TYPE_ISM); KalturaLog::log("copying entry ism [" . $ismFrom . "] to [" . $ismTo . "]"); kFileSyncUtils::softCopy($ismFrom, $ismTo); } $ismcFrom = $entry->getSyncKey(entry::FILE_SYNC_ENTRY_SUB_TYPE_ISMC); if (kFileSyncUtils::fileSync_exists($ismcFrom)) { $ismcTo = $newEntry->getSyncKey(entry::FILE_SYNC_ENTRY_SUB_TYPE_ISMC); KalturaLog::log("copying entry ism [" . $ismcFrom . "] to [" . $ismcTo . "]"); kFileSyncUtils::softCopy($ismcFrom, $ismcTo); } $from = $entry->getSyncKey(entry::FILE_SYNC_ENTRY_SUB_TYPE_THUMB); // replaced__getThumbnailPath $considerCopyThumb = true; // if entry is image - data is thumbnail, and it was copied if ($entry->getMediaType() == entry::ENTRY_MEDIA_TYPE_IMAGE) { $considerCopyThumb = false; } // if entry is not clip, and there is no file in both DCs - nothing to copy if ($entry->getType() != entryType::MEDIA_CLIP && !kFileSyncUtils::file_exists($from, true)) { $considerCopyThumb = false; } if ($considerCopyThumb) { $skipThumb = false; // don't attempt to copy a thumbnail for images - it's the same as the data which was just created if ($entry->getMediaType() == entry::ENTRY_MEDIA_TYPE_AUDIO) { // check if audio entry has real thumb, if not - don't copy thumb. $originalFileSync = kFileSyncUtils::getOriginFileSyncForKey($from, false); if (!$originalFileSync) { $skipThumb = true; } } if (!$skipThumb) { $to = $newEntry->getSyncKey(entry::FILE_SYNC_ENTRY_SUB_TYPE_THUMB); // replaced__getThumbnailPath KalturaLog::log("copyEntriesByType - copying entry thumbnail [" . $from . "] to [" . $to . "]"); kFileSyncUtils::softCopy($from, $to); } } // added by Tan-Tan 12/01/2010 to support falvors copy $sourceAssets = assetPeer::retrieveByEntryId($entry->getId()); foreach ($sourceAssets as $sourceAsset) { $sourceAsset->copyToEntry($newEntry->getId(), $newEntry->getPartnerId()); } // copy relationships to categories KalturaLog::debug('Copy relationships to categories from entry [' . $entry->getId() . '] to entry [' . $newEntry->getId() . ']'); $c = KalturaCriteria::create(categoryEntryPeer::OM_CLASS); $c->addAnd(categoryEntryPeer::ENTRY_ID, $entry->getId()); $c->addAnd(categoryEntryPeer::STATUS, CategoryEntryStatus::ACTIVE, Criteria::EQUAL); $c->addAnd(categoryEntryPeer::PARTNER_ID, $entry->getPartnerId()); categoryEntryPeer::setUseCriteriaFilter(false); $categoryEntries = categoryEntryPeer::doSelect($c); categoryEntryPeer::setUseCriteriaFilter(true); // Create srcCategoryIdToDstCategoryIdMap - a map of source partner category ids -> dst. partner category ids // // Build src category IDs set $srcCategoryIdSet = array(); foreach ($categoryEntries as $categoryEntry) { $srcCategoryIdSet[] = $categoryEntry->getCategoryId(); } $illegalCategoryStatus = array(CategoryStatus::DELETED, CategoryStatus::PURGED); // Get src category objects $c = KalturaCriteria::create(categoryPeer::OM_CLASS); $c->add(categoryPeer::ID, $srcCategoryIdSet, Criteria::IN); $c->addAnd(categoryPeer::PARTNER_ID, $entry->getPartnerId()); $c->addAnd(categoryPeer::STATUS, $illegalCategoryStatus, Criteria::NOT_IN); categoryPeer::setUseCriteriaFilter(false); $srcCategories = categoryPeer::doSelect($c); categoryPeer::setUseCriteriaFilter(true); // Map the category names to their IDs $fullNamesToSrcCategoryIdMap = array(); foreach ($srcCategories as $category) { $fullNamesToSrcCategoryIdMap[$category->getFullName()] = $category->getId(); } // Get dst. partner categories based on src. category full-names $c = KalturaCriteria::create(categoryPeer::OM_CLASS); $c->add(categoryPeer::FULL_NAME, array_keys($fullNamesToSrcCategoryIdMap), KalturaCriteria::IN); $c->addAnd(categoryPeer::PARTNER_ID, $newEntry->getPartnerId()); $c->addAnd(categoryPeer::STATUS, $illegalCategoryStatus, Criteria::NOT_IN); categoryPeer::setUseCriteriaFilter(false); $dstCategories = categoryPeer::doSelect($c); categoryPeer::setUseCriteriaFilter(true); $srcCategoryIdToDstCategoryIdMap = array(); foreach ($dstCategories as $dstCategory) { $fullName = $dstCategory->getFullName(); if (array_key_exists($fullName, $fullNamesToSrcCategoryIdMap)) { $srcCategoryId = $fullNamesToSrcCategoryIdMap[$fullName]; $srcCategoryIdToDstCategoryIdMap[$srcCategoryId] = $dstCategory->getId(); } } foreach ($categoryEntries as $categoryEntry) { /* @var $categoryEntry categoryEntry */ $newCategoryEntry = $categoryEntry->copy(); $newCategoryEntry->setPartnerId($newEntry->getPartnerId()); $newCategoryEntry->setEntryId($newEntry->getId()); $srcCategoryId = $categoryEntry->getCategoryId(); if (!array_key_exists($srcCategoryId, $srcCategoryIdToDstCategoryIdMap)) { continue; // Skip the category_entry's creation } $dstCategoryId = $srcCategoryIdToDstCategoryIdMap[$srcCategoryId]; $newCategoryEntry->setCategoryId($dstCategoryId); categoryPeer::setUseCriteriaFilter(false); entryPeer::setUseCriteriaFilter(false); $newCategoryEntry->save(); entryPeer::setUseCriteriaFilter(true); categoryPeer::setUseCriteriaFilter(true); } return $newEntry; }
public function executeImpl($partner_id, $subp_id, $puser_id, $partner_prefix, $puser_kuser) { defPartnerservices2baseAction::disableCache(); kuserPeer::setUseCriteriaFilter(false); $email = trim($this->getPM("email")); $password = trim($this->getPM("password")); $loginData = UserLoginDataPeer::getByEmail($email); // be sure to return the same error if there are no admins in the list and when there are none matched - // so no hint about existing admin will leak if (!$loginData) { $this->addError(APIErrors::ADMIN_KUSER_NOT_FOUND); return; } try { $adminKuser = UserLoginDataPeer::userLoginByEmail($email, $password, $partner_id); } catch (kUserException $e) { $code = $e->getCode(); if ($code == kUserException::USER_NOT_FOUND) { $this->addError(APIErrors::ADMIN_KUSER_NOT_FOUND); return null; } if ($code == kUserException::LOGIN_DATA_NOT_FOUND) { $this->addError(APIErrors::ADMIN_KUSER_NOT_FOUND); return null; } else { if ($code == kUserException::LOGIN_RETRIES_EXCEEDED) { $this->addError(APIErrors::LOGIN_RETRIES_EXCEEDED); return null; } else { if ($code == kUserException::LOGIN_BLOCKED) { $this->addError(APIErrors::LOGIN_BLOCKED); return null; } else { if ($code == kUserException::PASSWORD_EXPIRED) { $this->addError(APIErrors::PASSWORD_EXPIRED); return null; } else { if ($code == kUserException::WRONG_PASSWORD) { $this->addError(APIErrors::USER_WRONG_PASSWORD); return null; } else { if ($code == kUserException::USER_IS_BLOCKED) { $this->addError(APIErrors::USER_IS_BLOCKED); return null; } else { $this->addError(APIErrors::INTERNAL_SERVERL_ERROR); return null; } } } } } } } if (!$adminKuser || !$adminKuser->getIsAdmin()) { $this->addError(APIErrors::ADMIN_KUSER_NOT_FOUND); return null; } if ($partner_id && $partner_id != $adminKuser->getPartnerId()) { $this->addError(APIErrors::UNKNOWN_PARTNER_ID); return; } $partner = PartnerPeer::retrieveByPK($adminKuser->getPartnerId()); if (!$partner) { $this->addError(APIErrors::UNKNOWN_PARTNER_ID); return; } $partner_id = $partner->getId(); $subp_id = $partner->getSubpId(); $admin_puser_id = $adminKuser->getPuserId(); // get the puser_kuser for this admin if exists, if not - creae it and return it - create a kuser too $puser_kuser = PuserKuserPeer::createPuserKuser($partner_id, $subp_id, $admin_puser_id, $adminKuser->getScreenName(), $adminKuser->getScreenName(), true); $uid = $puser_kuser->getPuserId(); $ks = null; // create a ks for this admin_kuser as if entered the admin_secret using the API // ALLOW A KS FOR 30 DAYS kSessionUtils::createKSessionNoValidations($partner_id, $uid, $ks, 30 * 86400, 2, "", "*"); $this->addMsg("partner_id", $partner_id); $this->addMsg("subp_id", $subp_id); $this->addMsg("uid", $uid); $this->addMsg("ks", $ks); $this->addMsg("screenName", $adminKuser->getFullName()); $this->addMsg("fullName", $adminKuser->getFullName()); $this->addMsg("email", $adminKuser->getEmail()); }
/** * 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; }
public static function copyEntry(entry $entry, Partner $toPartner = null, $dontCopyUsers = false) { KalturaLog::log("copyEntry - Copying entry [" . $entry->getId() . "] to partner [" . $toPartner->getId() . "]"); $newEntry = $entry->copy(); $newEntry->setIntId(null); if ($toPartner instanceof Partner) { $newEntry->setPartnerId($toPartner->getId()); $newEntry->setSubpId($toPartner->getId() * 100); $newEntry->setAccessControlId($toPartner->getDefaultAccessControlId()); $flavorParamsStr = $entry->getFlavorParamsIds(); $flavorParams = explode(',', $flavorParamsStr); $newFlavorParams = array(); foreach ($flavorParams as $flavorParamsId) { $newFlavorParamsId = kObjectCopyHandler::getMappedId('flavorParams', $flavorParamsId); if (is_null($newFlavorParamsId)) { $newFlavorParamsId = $flavorParamsId; } $newFlavorParams[] = $newFlavorParamsId; } $newEntry->setFlavorParamsIds(implode(',', $newFlavorParams)); } $newKuser = null; if (!$dontCopyUsers) { // copy the kuser (if the same puser id exists its kuser will be used) kuserPeer::setUseCriteriaFilter(false); $kuser = $entry->getKuser(); $newKuser = kuserPeer::createKuserForPartner($newEntry->getPartnerId(), $kuser->getPuserId()); $newEntry->setKuserId($newKuser->getId()); kuserPeer::setUseCriteriaFilter(true); } // copy the kshow kshowPeer::setUseCriteriaFilter(false); $kshow = $entry->getKshow(); if ($kshow) { $newKshow = $kshow->copy(); $newKshow->setIntId(null); $newKshow->setPartnerId($toPartner->getId()); $newKshow->setSubpId($toPartner->getId() * 100); if ($newKuser) { $newKshow->setProducerId($newKuser->getId()); } $newKshow->save(); $newEntry->setKshowId($newKshow->getId()); } kshowPeer::setUseCriteriaFilter(true); // reset the statistics myEntryUtils::resetEntryStatistics($newEntry); // set the new partner id into the default category criteria filter $defaultCategoryFilter = categoryPeer::getCriteriaFilter()->getFilter(); $oldPartnerId = $defaultCategoryFilter->get(categoryPeer::PARTNER_ID); $defaultCategoryFilter->remove(categoryPeer::PARTNER_ID); $defaultCategoryFilter->addAnd(categoryPeer::PARTNER_ID, $newEntry->getPartnerId()); // save the entry $newEntry->save(); // restore the original partner id in the default category criteria filter $defaultCategoryFilter->remove(categoryPeer::PARTNER_ID); $defaultCategoryFilter->addAnd(categoryPeer::PARTNER_ID, $oldPartnerId); KalturaLog::log("copyEntry - New entry [" . $newEntry->getId() . "] was created"); // for any type that does not require assets: $shouldCopyDataForNonClip = $entry->getType() != entryType::MEDIA_CLIP; $shouldCopyDataForClip = false; // only images get their data copied if ($entry->getType() == entryType::MEDIA_CLIP) { if ($entry->getMediaType() != entry::ENTRY_MEDIA_TYPE_VIDEO && $entry->getMediaType() != entry::ENTRY_MEDIA_TYPE_AUDIO) { $shouldCopyDataForClip = true; } } if ($shouldCopyDataForNonClip || $shouldCopyDataForClip) { // copy the data $from = $entry->getSyncKey(entry::FILE_SYNC_ENTRY_SUB_TYPE_DATA); // replaced__getDataPath $to = $newEntry->getSyncKey(entry::FILE_SYNC_ENTRY_SUB_TYPE_DATA); // replaced__getDataPath KalturaLog::log("copyEntriesByType - copying entry data [" . $from . "] to [" . $to . "]"); kFileSyncUtils::softCopy($from, $to); } $ismFrom = $entry->getSyncKey(entry::FILE_SYNC_ENTRY_SUB_TYPE_ISM); if (kFileSyncUtils::fileSync_exists($ismFrom)) { $ismTo = $newEntry->getSyncKey(entry::FILE_SYNC_ENTRY_SUB_TYPE_ISM); KalturaLog::log("copying entry ism [" . $ismFrom . "] to [" . $ismTo . "]"); kFileSyncUtils::softCopy($ismFrom, $ismTo); } $ismcFrom = $entry->getSyncKey(entry::FILE_SYNC_ENTRY_SUB_TYPE_ISMC); if (kFileSyncUtils::fileSync_exists($ismcFrom)) { $ismcTo = $newEntry->getSyncKey(entry::FILE_SYNC_ENTRY_SUB_TYPE_ISMC); KalturaLog::log("copying entry ism [" . $ismcFrom . "] to [" . $ismcTo . "]"); kFileSyncUtils::softCopy($ismcFrom, $ismcTo); } $from = $entry->getSyncKey(entry::FILE_SYNC_ENTRY_SUB_TYPE_THUMB); // replaced__getThumbnailPath $considerCopyThumb = true; // if entry is image - data is thumbnail, and it was copied if ($entry->getMediaType() == entry::ENTRY_MEDIA_TYPE_IMAGE) { $considerCopyThumb = false; } // if entry is not clip, and there is no file in both DCs - nothing to copy if ($entry->getType() != entryType::MEDIA_CLIP && !kFileSyncUtils::file_exists($from, true)) { $considerCopyThumb = false; } if ($considerCopyThumb) { $skipThumb = false; // don't attempt to copy a thumbnail for images - it's the same as the data which was just created if ($entry->getMediaType() == entry::ENTRY_MEDIA_TYPE_AUDIO) { // check if audio entry has real thumb, if not - don't copy thumb. $originalFileSync = kFileSyncUtils::getOriginFileSyncForKey($from, false); if (!$originalFileSync) { $skipThumb = true; } } if (!$skipThumb) { $to = $newEntry->getSyncKey(entry::FILE_SYNC_ENTRY_SUB_TYPE_THUMB); // replaced__getThumbnailPath KalturaLog::log("copyEntriesByType - copying entry thumbnail [" . $from . "] to [" . $to . "]"); kFileSyncUtils::softCopy($from, $to); } } // added by Tan-Tan 12/01/2010 to support falvors copy $sourceFlavorAssets = flavorAssetPeer::retrieveByEntryId($entry->getId()); foreach ($sourceFlavorAssets as $sourceFlavorAsset) { $sourceFlavorAsset->copyToEntry($newEntry->getId(), $newEntry->getPartnerId()); } }
public static function notifyOneLessUser($loginDataId) { if (!$loginDataId) { return; } kuserPeer::setUseCriteriaFilter(false); $c = new Criteria(); $c->addAnd(kuserPeer::PARTNER_ID, null, Criteria::NOT_EQUAL); $c->addAnd(kuserPeer::LOGIN_DATA_ID, $loginDataId); $c->addAnd(kuserPeer::STATUS, KuserStatus::DELETED, Criteria::NOT_EQUAL); $countUsers = kuserPeer::doCount($c); kuserPeer::setUseCriteriaFilter(true); if ($countUsers <= 0) { $loginData = self::retrieveByPK($loginDataId); $loginData->delete(); } }
/** * * Gets all the pusers from the kuser table * @param int $lastKuserId - the last puser id * @param int $limit - the limit for the query */ private function getAllPusersInKuser($lastKuserId, $limit) { $pusers = array(); kuserPeer::clearInstancePool(); $c = new Criteria(); $c->add(kuserPeer::ID, $lastKuserId, Criteria::GREATER_THAN); // if case we have several entries in the same date (and we stop in the middle) $c->addAnd(kuserPeer::ID, null, Criteria::NOT_EQUAL); $c->addAnd(kuserPeer::ID, "", Criteria::NOT_EQUAL); if ($this->partnerId) { $c->addAnd(kuserPeer::PARTNER_ID, $this->partnerId, Criteria::EQUAL); } $c->addAnd(kuserPeer::PARTNER_ID, $this->ignorePartners, Criteria::NOT_IN); $c->addAscendingOrderByColumn(kuserPeer::ID); $c->setLimit($limit); kuserPeer::setUseCriteriaFilter(false); $kusers = kuserPeer::doSelect($c); kuserPeer::setUseCriteriaFilter(true); foreach ($kusers as $kuser) { // $this->printToLog("Found puser with id [{$kuser->getPuserId()}], partner [{$kuser->getPartnerId()}] on Kuser [{$kuser->getId()}]"); $pusers[] = new puserDetails($kuser->getPuserId(), $kuser->getPartnerId()); file_put_contents($this->lastKuserFile, $kuser->getId()); } return $pusers; }
public function executeImpl($partner_id, $subp_id, $puser_id, $partner_prefix, $puser_kuser) { myDbHelper::$use_alternative_con = myDbHelper::DB_HELPER_CONN_PROPEL3; // TODO - verify permissions for viewing lists $detailed = $this->getP("detailed", false); $limit = $this->getP("page_size", 10); $page = $this->getP("page", 1); //$order_by = int( $this->getP ( "order_by" , -1 ) ); $puser_kuser = null; $use_filter_puser_id = $this->getP("use_filter_puser_id", 1); if ($use_filter_puser_id == "false") { $use_filter_puser_id = false; } $offset = ($page - 1) * $limit; kuserPeer::setUseCriteriaFilter(false); entryPeer::setUseCriteriaFilter(false); $c = new Criteria(); // filter $filter = new kshowFilter(); $fields_set = $filter->fillObjectFromRequest($this->getInputParams(), "filter_", null); $this->setExtraFilters($filter); if ($use_filter_puser_id) { // if so - assume the producer_id is infact a puser_id and the kuser_id should be retrieved $target_puser_id = $filter->get("_eq_producer_id"); //$this->getP ( "filter__eq_producer_id" ); if ($target_puser_id) { // TODO - shoud we use the subp_id to retrieve the puser_kuser ? $puser_kuser = PuserKuserPeer::retrieveByPartnerAndUid($partner_id, null, $target_puser_id, false); if ($puser_kuser) { $filter->set("_eq_producer_id", $puser_kuser->getkuserId()); //$this->setP ( "filter__eq_producer_id" , $puser_kuser->getkuserId() ); } } } $filter->attachToCriteria($c); //if ($order_by != -1) kshowPeer::setOrder( $c , $order_by ); $count = kshowPeer::doCount($c); $offset = ($page - 1) * $limit; $c->setLimit($limit); if ($offset > 0) { $c->setOffset($offset); } if ($detailed) { $list = kshowPeer::doSelectJoinAll($c); $level = objectWrapperBase::DETAIL_LEVEL_DETAILED; // will have to populate the show_entry before according to the ids fdb::populateObjects($list, new entryPeer(), "showentryid", "showentry", false); } else { $list = kshowPeer::doSelect($c); $level = objectWrapperBase::DETAIL_LEVEL_REGULAR; // will have to populate the show_entry before according to the ids - we display the thumbnail from the showentry fdb::populateObjects($list, new entryPeer(), "showentryid", "showentry", false); } $this->addMsg("count", $count); $this->addMsg("page_size", $limit); $this->addMsg("page", $page); $wrapper = objectWrapperBase::getWrapperClass($list, $level); $this->addMsg("kshows", $wrapper); if ($use_filter_puser_id) { $this->addMsg("user", objectWrapperBase::getWrapperClass($puser_kuser, objectWrapperBase::DETAIL_LEVEL_REGULAR)); } /* $i=0; foreach ( $list as $kshow ) { $i++; $wrapper = objectWrapperBase::getWrapperClass( $kshow , $level ); $this->addMsg ( "kshow$i" , $wrapper ) ; } */ // echo "bbb count: " . count ($list ); // echo "ccc"; //$this->addMsg ( "kshows" , $wrapper ) ; }
$puserKusers = getPuserKusers($lastPuserKuser, $userLimitEachLoop); while (count($puserKusers)) { foreach ($puserKusers as $puserKuser) { if (file_exists($stopFile)) { die('STOP FILE CREATED'); } $lastPuserKuser = $puserKuser->getId(); KalturaLog::log('-- kuser id ' . $lastPuserKuser); $kuserId = $puserKuser->getKuserId(); $partnerId = $puserKuser->getPartnerId(); $puserId = $puserKuser->getPuserId(); if ($partnerId == PartnerPeer::GLOBAL_PARTNER) { KalturaLog::log('Skipping partner 0'); continue; } kuserPeer::setUseCriteriaFilter(false); $kuser = kuserPeer::retrieveByPK($kuserId); if (!$kuser) { $msg = 'ERROR - Kuser id [' . $kuserId . '] not found but pointed from puserKuser [' . $lastPuserKuser . '] partner id [' . $partnerId . ']'; KalturaLog::alert($msg); echo $msg . PHP_EOL; continue; } if ($kuser->getPartnerId() != $partnerId) { $msg = 'ERROR - Partner IDs are not the same for puserKuser [' . $lastPuserKuser . '] with partnerId [' . $partnerId . '] and kuser [' . $kuser->getId() . '] with partnerId [' . $kuser->getPartnerId() . ']'; KalturaLog::alert($msg); echo $msg . PHP_EOL; continue; } if (is_null($kuser->getPuserId()) || strcmp($kuser->getPuserId(), '') === 0) { if (!is_null($puserId) && strcmp($puserId, '') !== 0) {
/** * Reloads this object from datastore based on primary key and (optionally) resets all associated objects. * * This will only work if the object has been saved and has a valid primary key set. * * @param boolean $deep (optional) Whether to also de-associated any related objects. * @param PropelPDO $con (optional) The PropelPDO connection to use. * @return void * @throws PropelException - if this object is deleted, unsaved or doesn't have pk match in db */ public function reload($deep = false, PropelPDO $con = null) { if ($this->isDeleted()) { throw new PropelException("Cannot reload a deleted object."); } if ($this->isNew()) { throw new PropelException("Cannot reload an unsaved object."); } if ($con === null) { $con = Propel::getConnection(kuserPeer::DATABASE_NAME, Propel::CONNECTION_READ); } // We don't need to alter the object instance pool; we're just modifying this instance // already in the pool. kuserPeer::setUseCriteriaFilter(false); $criteria = $this->buildPkeyCriteria(); kuserPeer::addSelectColumns($criteria); $stmt = BasePeer::doSelect($criteria, $con); kuserPeer::setUseCriteriaFilter(true); $row = $stmt->fetch(PDO::FETCH_NUM); $stmt->closeCursor(); if (!$row) { throw new PropelException('Cannot find matching row in the database to reload object values.'); } $this->hydrate($row, 0, true); // rehydrate if ($deep) { // also de-associate any related objects? $this->collkshows = null; $this->lastkshowCriteria = null; $this->collentrys = null; $this->lastentryCriteria = null; $this->collcomments = null; $this->lastcommentCriteria = null; $this->collflags = null; $this->lastflagCriteria = null; $this->collfavorites = null; $this->lastfavoriteCriteria = null; $this->collKshowKusers = null; $this->lastKshowKuserCriteria = null; $this->collPuserKusers = null; $this->lastPuserKuserCriteria = null; $this->collPartners = null; $this->lastPartnerCriteria = null; $this->collmoderations = null; $this->lastmoderationCriteria = null; $this->collmoderationFlagsRelatedByKuserId = null; $this->lastmoderationFlagRelatedByKuserIdCriteria = null; $this->collmoderationFlagsRelatedByFlaggedKuserId = null; $this->lastmoderationFlagRelatedByFlaggedKuserIdCriteria = null; $this->collcategoryKusers = null; $this->lastcategoryKuserCriteria = null; $this->collUploadTokens = null; $this->lastUploadTokenCriteria = null; $this->collKuserToUserRoles = null; $this->lastKuserToUserRoleCriteria = null; $this->collKuserKgroupsRelatedByKgroupId = null; $this->lastKuserKgroupRelatedByKgroupIdCriteria = null; $this->collKuserKgroupsRelatedByKuserId = null; $this->lastKuserKgroupRelatedByKuserIdCriteria = null; $this->collUserEntrys = null; $this->lastUserEntryCriteria = null; } // if (deep) }
private static function initPartnerUserObjects() { if (self::$ksPartnerId == Partner::BATCH_PARTNER_ID) { self::$operatingPartner = null; self::$operatingPartnerId = self::$ksPartnerId; return; } $ksPartner = null; $requestedPartner = null; // init ks partner = operating partner if (!is_null(self::$ksPartnerId)) { $ksPartner = PartnerPeer::retrieveByPK(self::$ksPartnerId); if (!$ksPartner) { KalturaLog::crit('Unknown partner id [' . self::$ksPartnerId . ']'); throw new kCoreException("Unknown partner Id [" . self::$ksPartnerId . "]", kCoreException::ID_NOT_FOUND); } } // init requested partner if (!is_null(self::$requestedPartnerId)) { $requestedPartner = PartnerPeer::retrieveByPK(self::$requestedPartnerId); if (!$requestedPartner) { KalturaLog::crit('Unknown partner id [' . self::$requestedPartnerId . ']'); throw new kCoreException("Unknown partner Id [" . self::$requestedPartnerId . "]", kCoreException::ID_NOT_FOUND); } } // init current kuser if (self::$ksUserId && !self::$kuser) { // will never be null because ks::uid is never null kuserPeer::setUseCriteriaFilter(false); self::$kuser = kuserPeer::getActiveKuserByPartnerAndUid(self::$ksPartnerId, self::$ksUserId); kuserPeer::setUseCriteriaFilter(true); if (!self::$kuser) { self::$kuser = null; // error not thrown to support adding users 'on-demand' // current session will get default role according to session type (user/admin) } } // choose operating partner! if ($ksPartner) { self::$operatingPartner = $ksPartner; self::$operatingPartnerId = $ksPartner->getId(); } else { if (!self::$ksString && $requestedPartner) { self::$operatingPartner = $requestedPartner; self::$operatingPartnerId = $requestedPartner->getId(); self::$kuser = null; } } }
public function getAllowedPartnerIds(partnerFilter $partnerFilter = null) { $currentLoginDataId = $this->getLoginDataId(); if (!$currentLoginDataId) { return array($this->getPartnerId()); } $c = new Criteria(); $c->addSelectColumn(kuserPeer::PARTNER_ID); $c->addAnd(kuserPeer::LOGIN_DATA_ID, $currentLoginDataId, Criteria::EQUAL); $c->addAnd(kuserPeer::STATUS, KuserStatus::ACTIVE, Criteria::EQUAL); kuserPeer::setUseCriteriaFilter(false); $stmt = kuserPeer::doSelectStmt($c); $ids = $stmt->fetchAll(PDO::FETCH_COLUMN); kuserPeer::setUseCriteriaFilter(true); // apply filter on partner ids if ($partnerFilter) { $c = new Criteria(); $c->addSelectColumn(PartnerPeer::ID); $partnerFilter->setIdIn($ids); $partnerFilter->attachToCriteria($c); $stmt = PartnerPeer::doSelectStmt($c); $ids = $stmt->fetchAll(PDO::FETCH_COLUMN); } return $ids; }
public function executeImpl($partner_id, $subp_id, $puser_id, $partner_prefix, $puser_kuser) { myDbHelper::$use_alternative_con = myDbHelper::DB_HELPER_CONN_PROPEL3; // TODO - verify permissions for viewing lists $detailed = $this->getP("detailed", false); $detailed_fields = $this->getP("detailed_fields"); $limit = $this->getP("page_size", 10); $limit = $this->maxPageSize($limit); $page = $this->getP("page", 1); $offset = ($page - 1) * $limit; kuserPeer::setUseCriteriaFilter(false); //entryPeer::setUseCriteriaFilter( false ); $c = KalturaCriteria::create(entryPeer::OM_CLASS); // filter $filter = new entryFilter(); $fields_set = $filter->fillObjectFromRequest($this->getInputParams(), "filter_", null); $this->setExtraFilters($filter); $filter->setPartnerSearchScope(baseObjectFilter::MATCH_KALTURA_NETWORK_AND_PRIVATE); $desired_status = "status:" . $filter->get("_eq_status") . "," . $filter->get("_in_status"); $display_deleted = $this->getP("display_deleted", false); if ($display_deleted == "false") { $display_deleted = false; } $pos = strpos($desired_status, entryStatus::DELETED); if ($display_deleted || $pos !== false) { entryPeer::allowDeletedInCriteriaFilter(); } // hack for displaying pre-moderation $moderation_status = $filter->get("_in_moderation_status"); if ($moderation_status && (strpos($moderation_status, "1,5") !== false || strpos($moderation_status, "5,1") !== false)) { // this is when the KMC requests the moderated entries $filter->set("_in_status", $filter->get("_in_status") . ",5"); // add the status '5' } $this->fixModerationStatusForBackwardCompatibility($filter); $puser_kuser = null; $use_filter_puser_id = $this->getP("use_filter_puser_id", 1); if ($use_filter_puser_id == "false") { $use_filter_puser_id = false; } if ($use_filter_puser_id) { // if so - assume the producer_id is infact a puser_id and the kuser_id should be retrieved $target_puser_id = $filter->get("_eq_user_id"); if ($target_puser_id !== null) { $puser_kuser = PuserKuserPeer::retrieveByPartnerAndUid($partner_id, null, $target_puser_id, false); if ($puser_kuser) { $filter->set("_eq_user_id", $puser_kuser->getkuserId()); // $this->setP ( "filter__eq_producer_id" , $puser_kuser->getkuserId() ); } } } $offset = ($page - 1) * $limit; $c->setLimit($limit); if ($offset > 0) { $c->setOffset($offset); } $filter->attachToCriteria($c); // for some entry types - there are no kshow or kusers - don't join even when detailed if ($this->joinOnDetailed()) { $list = entryPeer::doSelectJoinKuser($c); } else { $list = entryPeer::doSelect($c); } if ($detailed) { $level = objectWrapperBase::DETAIL_LEVEL_DETAILED; } else { $level = objectWrapperBase::DETAIL_LEVEL_REGULAR; } $count = $c->getRecordsCount(); $this->addMsg("count", $count); $this->addMsg("page_size", $limit); $this->addMsg("page", $page); myEntryUtils::updatePuserIdsForEntries($list); if ($detailed_fields) { $extra_fields = explode(",", $detailed_fields); $wrapper = objectWrapperBase::getWrapperClass($list, $level, objectWrapperBase::DETAIL_VELOCITY_DEFAULT, 0, $extra_fields); } else { $wrapper = objectWrapperBase::getWrapperClass($list, $level); } $this->addMsg($this->getObjectPrefix(), $wrapper); if ($use_filter_puser_id) { $this->addMsg("user", objectWrapperBase::getWrapperClass($puser_kuser, objectWrapperBase::DETAIL_LEVEL_REGULAR)); } }