public function executeImpl($partner_id, $subp_id, $puser_id, $partner_prefix, $puser_kuser) { $kshow_id = $this->getPM("kshow_id"); $target_puser_id = $this->getPM("user_id"); $detailed = $this->getP("detailed", false); $kshow_indexedCustomData3 = $this->getP("indexedCustomData3"); $kshow = null; if ($kshow_id) { $kshow = kshowPeer::retrieveByPK($kshow_id); } elseif ($kshow_indexedCustomData3) { $kshow = kshowPeer::retrieveByIndexedCustomData3($kshow_indexedCustomData3); } if (!$kshow) { $this->addError(APIErrors::INVALID_KSHOW_ID, $kshow_id); } else { $new_puser_kuser = PuserKuserPeer::retrieveByPartnerAndUid($partner_id, null, $target_puser_id); if (!$new_puser_kuser) { $this->addError(APIErrors::INVALID_USER_ID, $target_puser_id); return; } $kshow->setProducerId($new_puser_kuser->getKuserId()); $kshow->save(); $level = $detailed ? objectWrapperBase::DETAIL_LEVEL_DETAILED : objectWrapperBase::DETAIL_LEVEL_REGULAR; $wrapper = objectWrapperBase::getWrapperClass($kshow, $level); // TODO - remove this code when cache works properly when saving objects (in their save method) $wrapper->removeFromCache("kshow", $kshow->getId()); $this->addMsg("kshow", $wrapper); } }
public function executeImpl($partner_id, $subp_id, $puser_id, $partner_prefix, $puser_kuser) { $puser_id_to_delete = $this->getPM("user_id"); $puser_kuser_to_delete = PuserKuserPeer::retrieveByPartnerAndUid($partner_id, null, $puser_id_to_delete, true); if (!$puser_kuser_to_delete) { $this->addError(APIErrors::INVALID_USER_ID, $puser_id_to_delete); return; } $kuser = $puser_kuser_to_delete->getKuser(); if ($kuser) { // $this->addMsg ( "deleted_kuser" , objectWrapperBase::getWrapperClass( $kuser , objectWrapperBase::DETAIL_LEVEL_REGULAR ) ); try { $kuser->setStatus(KalturaUserStatus::DELETED); } catch (kUserException $e) { $code = $e->getCode(); if ($code == kUserException::CANNOT_DELETE_OR_BLOCK_ROOT_ADMIN_USER) { $this->addException(APIErrors::CANNOT_DELETE_OR_BLOCK_ROOT_ADMIN_USER); return null; } throw $e; } } $puser_kuser_to_delete->delete(); $this->addMsg("deleted_user", objectWrapperBase::getWrapperClass($puser_kuser_to_delete, objectWrapperBase::DETAIL_LEVEL_DETAILED)); }
public function executeImpl($partner_id, $subp_id, $puser_id, $partner_prefix, $puser_kuser) { $user_id = $this->getPM("user_id"); $new_user_id = $this->getPM("new_user_id"); $target_puser_kuser = PuserKuserPeer::retrieveByPartnerAndUid($partner_id, null, $user_id, true); if (!$target_puser_kuser) { $this->addError(APIErrors::INVALID_USER_ID, $user_id); return; } $new_puser_kuser = PuserKuserPeer::retrieveByPartnerAndUid($partner_id, null, $new_user_id, true); $kuser = kuserPeer::getKuserByPartnerAndUid($partner_id, $new_user_id); if ($new_puser_kuser || $kuser) { $this->addError(APIErrors::DUPLICATE_USER_BY_ID, $new_user_id); return; } $target_puser_kuser->setPuserId($new_user_id); $target_puser_kuser->save(); PuserKuserPeer::removeFromCache($target_puser_kuser); $kuser = $target_puser_kuser->getKuser(); $kuser->setPuserId($target_puser_kuser->getPuserId()); $kuser->save(); $wrapper = objectWrapperBase::getWrapperClass($target_puser_kuser, objectWrapperBase::DETAIL_LEVEL_DETAILED); $wrapper->removeFromCache("PuserKuser", $target_puser_kuser->getId()); $this->addMsg("user", $wrapper); }
public function executeImpl($partner_id, $subp_id, $puser_id, $partner_prefix, $puser_kuser) { $user_id = $this->getPM("user_id"); $target_puser_kuser = PuserKuserPeer::retrieveByPartnerAndUid($partner_id, null, $user_id, true); if (!$target_puser_kuser) { $this->addError(APIErrors::INVALID_USER_ID, $user_id); } $kuser = $target_puser_kuser->getKuser(); // get the new properties for the kuser from the request $kuser_update_data = new kuser(); $obj_wrapper = objectWrapperBase::getWrapperClass($kuser, 0); $fields_modified = baseObjectUtils::fillObjectFromMap($this->getInputParams(), $kuser_update_data, "user_", $obj_wrapper->getUpdateableFields()); if (count($fields_modified) > 0) { if (!$partner_id) { $kuser_from_db = kuserPeer::getKuserByScreenName($kuser->getScreenName()); // check if there is a kuser with such a name in the system (and this kuser is not the current one) if ($kuser_from_db && $kuser_from_db->getId() == $kuser->getId()) { $this->addError(APIErrors::USER_ALREADY_EXISTS_BY_SCREEN_NAME, $kuser->getScreenName()); return; } } if ($kuser_update_data) { baseObjectUtils::fillObjectFromObject($obj_wrapper->getUpdateableFields(), $kuser_update_data, $kuser, baseObjectUtils::CLONE_POLICY_PREFER_NEW, null, BasePeer::TYPE_PHPNAME); $target_puser_kuser->setKuser($kuser); } $kuser->save(); } $wrapper = objectWrapperBase::getWrapperClass($target_puser_kuser, objectWrapperBase::DETAIL_LEVEL_DETAILED); $wrapper->removeFromCache("kuser", $kuser->getId()); $this->addMsg("user", $wrapper); $this->addDebug("modified_fields", $fields_modified); }
public function getObject() { if ($this->m_object) { return $this->m_object; } $object_id = $this->object_id; if ($object_id == null) { return null; } switch ($this->getObjectType()) { case self::MODERATION_OBJECT_TYPE_KSHOW: $this->m_object = kshowPeer::retrieveByPK($object_id); break; case self::MODERATION_OBJECT_TYPE_ENTRY: // be able to fetch entries that are deleted entryPeer::allowDeletedInCriteriaFilter(); $this->m_object = entryPeer::retrieveByPK($object_id); entryPeer::blockDeletedInCriteriaFilter(); break; case self::MODERATION_OBJECT_TYPE_USER: // $object_id is the puser_id $puser_kuser = PuserKuserPeer::retrieveByPartnerAndUid($this->getPartnerId(), NULL, $object_id, true); if ($puser_kuser && $puser_kuser->getKuser()) { $this->m_object = $puser_kuser->getKuser(); } // $this->m_object = kuserPeer::retrieveByPK( $object_id ); break; } return $this->m_object; }
/** * @param int $partnerId * @param string $puserId * @param bool $ignore_puser_kuser * @return kuser */ public static function getKuserByPartnerAndUid($partnerId, $puserId, $ignorePuserKuser = false) { if (!$ignorePuserKuser && !kCurrentContext::isApiV3Context()) { $puserKuser = PuserKuserPeer::retrieveByPartnerAndUid($partnerId, 0, $puserId, true); if ($puserKuser) { return $puserKuser->getKuser(); } } $c = new Criteria(); $c->add(self::PARTNER_ID, $partnerId); $c->add(self::PUSER_ID, $puserId); return self::doSelectOne($c); }
public function executeImpl($partner_id, $subp_id, $puser_id, $partner_prefix, $puser_kuser) { // the relevant puser_kuser is the one from the user_id NOT the uid (which is the logged in user investigationg $user_id = $this->getPM("user_id"); $target_puser_kuser = PuserKuserPeer::retrieveByPartnerAndUid($partner_id, null, $user_id, true); $detailed = $this->getP("detailed", false); if (!$target_puser_kuser) { $this->addError(APIErrors::INVALID_USER_ID, $user_id); } else { $level = $detailed ? objectWrapperBase::DETAIL_LEVEL_DETAILED : objectWrapperBase::DETAIL_LEVEL_DETAILED; $this->addMsg("user", objectWrapperBase::getWrapperClass($target_puser_kuser, $level)); } }
/** * @param int $partner_id * @param string $puser_id * @param bool $ignore_puser_kuser * @return kuser */ public static function getKuserByPartnerAndUid($partner_id, $puser_id, $ignore_puser_kuser = false) { if (defined("KALTURA_API_V3") || $ignore_puser_kuser) { $c = new Criteria(); $c->add(self::PARTNER_ID, $partner_id); $c->add(self::PUSER_ID, $puser_id); return self::doSelectOne($c); } // just grab the kuser, we dont mind which subp we get $puser_kuser = PuserKuserPeer::retrieveByPartnerAndUid($partner_id, 0, $puser_id, true); if (!$puser_kuser) { return false; } return $puser_kuser->getKuser(); }
/** * @param int $partnerId * @param string $puserId * @param bool $ignore_puser_kuser * @return kuser */ public static function getKuserByPartnerAndUid($partnerId, $puserId, $ignorePuserKuser = false) { if (!$ignorePuserKuser && !kCurrentContext::isApiV3Context()) { $puserKuser = PuserKuserPeer::retrieveByPartnerAndUid($partnerId, 0, $puserId, true); if ($puserKuser) { return $puserKuser->getKuser(); } } $c = new Criteria(); $c->add(self::PARTNER_ID, $partnerId); $c->add(self::PUSER_ID, $puserId); // in case of more than one deleted kusers - get the last one $c->addDescendingOrderByColumn(kuserPeer::UPDATED_AT); return self::doSelectOne($c); }
/** * Cleans up the environment after running a test. */ protected function tearDown() { $this->ks = null; parent::tearDown(); foreach ($this->createdUserIds as $userId) { // delete all kusers created during the tests $c = new Criteria(); $c->addAnd(kuserPeer::PUSER_ID, $userId, Criteria::EQUAL); $kusers = kuserPeer::doSelect($c); foreach ($kusers as $kuser) { @$kuser->delete(); } // delete all kuser pusers created during the tests $c = new Criteria(); $c->addAnd(PuserKuserPeer::PUSER_ID, $userId, Criteria::EQUAL); $puserKusers = PuserKuserPeer::doSelect($c); foreach ($puserKusers as $puserKuser) { @$puserKuser->delete(); } } }
/** return array('status' => $status, 'message' => $message, 'objects' => $objects); objects - array of 'thumb' 'title' 'description' 'id' - unique id to be passed to getMediaInfo */ public function searchMedia($media_type, $searchText, $page, $pageSize, $authData = null, $extraData = null) { $page_size = $pageSize > 20 ? 20 : $pageSize; $page--; if ($page < 0) { $page = 0; } $status = "ok"; $message = ''; $objects = array(); $should_serach = true; if (defined("KALTURA_API_V3")) { $kuser = kuserPeer::getKuserByPartnerAndUid(self::$partner_id, self::$puser_id); $should_serach = true; $kuser_id = $kuser->getId(); } else { $puser_kuser = PuserKuserPeer::retrieveByPartnerAndUid(self::$partner_id, self::$subp_id, self::$puser_id, true); if (!$puser_kuser) { // very bad - does not exist in system $should_serach = false; } else { $kuser = $puser_kuser->getKuser(); if (!$kuser) { $should_serach = false; } else { $kuser_id = $kuser->getId(); } } } // echo "[" . self::$partner_id . "],[". self::$subp_id . "],[" . self::$puser_id . "],[$kuser_id]"; if ($should_serach) { $c = KalturaCriteria::create(entryPeer::OM_CLASS); $c->add(entryPeer::KUSER_ID, $kuser_id); $c->add(entryPeer::MEDIA_TYPE, $media_type); $c->add(entryPeer::TYPE, entryType::MEDIA_CLIP); // $keywords_array = mySearchUtils::getKeywordsFromStr ( $searchText ); $filter = new entryFilter(); $filter->setPartnerSearchScope(self::$partner_id); $filter->addSearchMatchToCriteria($c, $searchText, entry::getSearchableColumnName()); $c->setLimit($pageSize); $c->setOffset($page * $pageSize); $entry_results = entryPeer::doSelect($c); //JoinAll( $c ); $number_of_results = $c->getRecordsCount(); $number_of_pages = (int) ($number_of_results / $pageSize); if ($number_of_results % $pageSize != 0) { $number_of_pages += 1; } // if there are some left-overs - there must be a nother page // add thumbs when not image or video $should_add_thumbs = $media_type != entry::ENTRY_MEDIA_TYPE_AUDIO; foreach ($entry_results as $entry) { // send the id as the url $object = array("id" => $entry->getId(), "url" => $entry->getDataUrl(), "tags" => $entry->getTags(), "title" => $entry->getName(), "description" => $entry->getDescription()); if ($should_add_thumbs) { $object["thumb"] = $entry->getThumbnailUrl(); } $objects[] = $object; } } return array('status' => $status, 'message' => $message, 'objects' => $objects, "needMediaInfo" => self::$NEED_MEDIA_INFO); }
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 ) ; }
/** * Get the associated PuserKuser object * * @param PropelPDO Optional Connection object. * @return PuserKuser The associated PuserKuser object. * @throws PropelException */ public function getPuserKuserRelatedByPuserId(PropelPDO $con = null) { if ($this->aPuserKuserRelatedByPuserId === null && ($this->puser_id !== "" && $this->puser_id !== null)) { $c = new Criteria(PuserKuserPeer::DATABASE_NAME); $c->add(PuserKuserPeer::PUSER_ID, $this->puser_id); $this->aPuserKuserRelatedByPuserId = PuserKuserPeer::doSelectOne($c, $con); /* The following can be used additionally to guarantee the related object contains a reference to this object. This level of coupling may, however, be undesirable since it could result in an only partially populated collection in the referenced object. $this->aPuserKuserRelatedByPuserId->addPuserRolesRelatedByPuserId($this); */ } return $this->aPuserKuserRelatedByPuserId; }
/** * Retrieve multiple objects by pkey. * * @param array $pks List of primary keys * @param PropelPDO $con the connection to use * @throws PropelException Any exceptions caught during processing will be * rethrown wrapped into a PropelException. */ public static function retrieveByPKs($pks, PropelPDO $con = null) { $objs = null; if (empty($pks)) { $objs = array(); } else { $criteria = new Criteria(PuserKuserPeer::DATABASE_NAME); $criteria->add(PuserKuserPeer::ID, $pks, Criteria::IN); $objs = PuserKuserPeer::doSelect($criteria, $con); } return $objs; }
/** * $notification_type - * $puser_id - the puser_id of the kuser that caused the modification * $object_data - can be either an object or an object id (if the object no longer exists * $partner_id - if exists, use this (usually in case of $object_data is an id), if not - use the partner_id from the object * $entry_id is optional */ public static function createNotification($notification_type, $object_data, $partner_id = null, $puser_id = null, $prefix = null, $extra_notification_data = null, $entry_id = null) { if (!$entry_id && $object_data instanceof entry) { $entry_id = $object_data->getId(); } if (!$partner_id) { if ($object_data instanceof BaseObject) { $partner_id = $object_data->getPartnerId(); } else { KalturaLog::log("Cannot create notification [{$notification_type}] [{$object_data}] [{$partner_id}]"); return false; } } // echo "[$partner_id]"; $nofication_config_str = null; list($nofity, $nofication_config_str) = myPartnerUtils::shouldNotify($partner_id); if (!$nofity) { return false; } $nofication_config = myNotificationsConfig::getInstance($nofication_config_str); $nofity_send_type = $nofication_config->shouldNotify($notification_type); //echo "nofication_config_str: $nofication_config_str<br>notification_type:$notification_type<br>"; if ($nofity_send_type == self::NOTIFICATION_MGR_NO_SEND) { return false; } //echo "nofity_send_type: $nofity_send_type<br>"; // now check what type of notification to use - none / synch / a-synch // Remarked by Tan-Tan, Nov 5 2009 to support the new batches // // $not = new notification(); // $not->setType( $notification_type ); // if ( $nofity_send_type == self::NOTIFICATION_MGR_SEND_ASYNCH || $nofity_send_type == self::NOTIFICATION_MGR_SEND_BOTH) // { // // // the notification should be in status pending so it will be sent in the // $not->setStatus( BatchJob::BATCHJOB_STATUS_PENDING ); // } // elseif ( $nofity_send_type == self::NOTIFICATION_MGR_SEND_SYNCH ) // { // $not->setStatus( BatchJob::BATCHJOB_STATUS_FINISHED ); // } // // // return the notification to the caller // $retrun_notification = ( $nofity_send_type == self::NOTIFICATION_MGR_SEND_SYNCH || $nofity_send_type == self::NOTIFICATION_MGR_SEND_BOTH ); // ////echo "retrun_notification: $retrun_notification<br>"; // // $not->setPartnerId( $partner_id ); // $not->setPuserId( $puser_id ); // $not->setDc ( kDataCenterMgr::getCurrentDcId() ); // if ( $object_data instanceof BaseObject ) // { // $not->setObjectId($object_data->getId() ); // $not->setData( self::createNotificationData ( $notification_type , $object_data, $extra_notification_data ) ); // // if ( $object_data instanceof entry ) // { // if (defined("KALTURA_API_V3")) // $puser_id = $object_data->getKuser()->getPuserId(); // else // $puser_id = PuserKuserPeer::getByKuserId( $object_data->getKuserId() , 1 ); // // $not->setPuserId( $puser_id ); // // } // } // else // { // // in this case all we have is the object data which is the id // // this is probably the case of some delete and we mifght not have the object in hand but only the id // $not->setObjectId( $object_data ); // } // $not->save(); // Added by Tan-Tan, Nov 2009 to support the new batches // if ( $nofity_send_type == self::NOTIFICATION_MGR_SEND_ASYNCH || $nofity_send_type == self::NOTIFICATION_MGR_SEND_BOTH) // { // // // the notification should be in status pending so it will be sent in the // $job->setStatus( BatchJob::BATCHJOB_STATUS_PENDING ); // } // else $dontSend = false; if ($nofity_send_type == self::NOTIFICATION_MGR_SEND_SYNCH) { $dontSend = true; } // return the notification to the caller $retrun_notification = $nofity_send_type == self::NOTIFICATION_MGR_SEND_SYNCH || $nofity_send_type == self::NOTIFICATION_MGR_SEND_BOTH; $objectId = null; $notificationData = null; if ($object_data instanceof BaseObject) { $objectId = $object_data->getId(); $notificationData = self::createNotificationData($notification_type, $object_data, $extra_notification_data); if ($object_data instanceof entry) { if (kCurrentContext::isApiV3Context()) { $kuser = $object_data->getKuser(); if ($kuser) { $puser_id = $kuser->getPuserId(); } else { $puser_id = null; KalturaLog::log(__CLASS__ . '::' . __METHOD__ . ' [line: ' . __LINE__ . '] could not find kuser [' . $object_data->getKuserId() . '] from object [' . $object_data->getId() . ']'); } } else { $puser_id = PuserKuserPeer::getByKuserId($object_data->getKuserId(), 1); // in flatten (or maybe other old batches), KALTURA_API_V3 is not defined, but entry user could have // been created through api v3, in that case there will not be a record in puser_kuser table if (is_null($puser_id)) { $puser_id = $object_data->getPuserId(); // if entry was created on PS2 and from some reason puserId is still missing if (is_null($puser_id)) { $kuser = kuserPeer::retrieveByPK($object_data->getKuserId()); if ($kuser) { $puser_id = $kuser->getPuserId(); } } } if (is_null($puser_id)) { KalturaLog::log(__CLASS__ . '::' . __METHOD__ . ' [line: ' . __LINE__ . '] could not get puser_id out of api_v3 context puserId from entry:[' . $object_data->getPuserId() . '] kuser ID:[' . $object_data->getKuserId() . '] entry:[' . $object_data->getId() . ']'); } } } } else { // in this case all we have is the object data which is the id // this is probably the case of some delete and we mifght not have the object in hand but only the id $objectId = $object_data; } $job = kJobsManager::addNotificationJob(null, $entry_id, $partner_id, $notification_type, $nofity_send_type, $puser_id, $objectId, $notificationData); if ($retrun_notification) { // return the notification id, notification object , url & the serialized data $partner = PartnerPeer::retrieveByPK($partner_id); list($url, $signature_key) = self::getPartnerNotificationInfo($partner); list($params, $raw_signature) = self::prepareNotificationData($url, $signature_key, $job, $prefix); $serialized_params = http_build_query($params, "", "&"); return array($job->getId(), $job, $url, $params, $serialized_params); } else { return $job->getId(); } }
/** * * Gets all the pusers from the puser table * @param int $lastPuserId - the last puser id * @param int $limit - the limit for the query */ private function getAllPusersInPuser($lastPuserId, $limit) { $pusers = array(); PuserKuserPeer::clearInstancePool(); $c = new Criteria(); $c->add(PuserKuserPeer::ID, $lastPuserId, Criteria::GREATER_THAN); // if case we have several entries in the same date (and we stop in the middle) $c->addAnd(PuserKuserPeer::PUSER_ID, null, Criteria::NOT_EQUAL); $c->addAnd(PuserKuserPeer::PUSER_ID, "", Criteria::NOT_EQUAL); if ($this->partnerId) { $c->addAnd(PuserKuserPeer::PARTNER_ID, $this->partnerId, Criteria::EQUAL); } $c->addAnd(PuserKuserPeer::PARTNER_ID, $this->ignorePartners, Criteria::NOT_IN); $c->addAscendingOrderByColumn(PuserKuserPeer::ID); $c->setLimit($limit); PuserKuserPeer::setUseCriteriaFilter(false); $pusers1 = PuserKuserPeer::doSelect($c); PuserKuserPeer::setUseCriteriaFilter(true); foreach ($pusers1 as $puser) { // $this->printToLog("Found puser with id [{$puser->getId()}], partner [{$puser->getPartnerId()}]"); $pusers[] = new puserDetails($puser->getPuserId(), $puser->getPartnerId()); file_put_contents($this->lastPuserFile, $puser->getId()); } return $pusers; }
/** * Returns the number of related PuserKuser objects. * * @param Criteria $criteria * @param boolean $distinct * @param PropelPDO $con * @return int Count of related PuserKuser objects. * @throws PropelException */ public function countPuserKusers(Criteria $criteria = null, $distinct = false, PropelPDO $con = null) { if ($criteria === null) { $criteria = new Criteria(kuserPeer::DATABASE_NAME); } else { $criteria = clone $criteria; } if ($distinct) { $criteria->setDistinct(); } $count = null; if ($this->collPuserKusers === null) { if ($this->isNew()) { $count = 0; } else { $criteria->add(PuserKuserPeer::KUSER_ID, $this->id); $count = PuserKuserPeer::doCount($criteria, false, $con); } } else { // criteria has no effect for a new object if (!$this->isNew()) { // the following code is to determine if a new query is // called for. If the criteria is the same as the last // one, just return count of the collection. $criteria->add(PuserKuserPeer::KUSER_ID, $this->id); if (!isset($this->lastPuserKuserCriteria) || !$this->lastPuserKuserCriteria->equals($criteria)) { $count = PuserKuserPeer::doCount($criteria, false, $con); } else { $count = count($this->collPuserKusers); } } else { $count = count($this->collPuserKusers); } } return $count; }
/** * Selects a collection of PuserRole objects pre-filled with all related objects except kshow. * * @param Criteria $criteria * @param PropelPDO $con * @param String $join_behavior the type of joins to use, defaults to Criteria::LEFT_JOIN * @return array Array of PuserRole objects. * @throws PropelException Any exceptions caught during processing will be * rethrown wrapped into a PropelException. */ public static function doSelectJoinAllExceptkshow(Criteria $criteria, $con = null, $join_behavior = Criteria::LEFT_JOIN) { $criteria = clone $criteria; // Set the correct dbName if it has not been overridden // $criteria->getDbName() will return the same object if not set to another value // so == check is okay and faster if ($criteria->getDbName() == Propel::getDefaultDB()) { $criteria->setDbName(self::DATABASE_NAME); } PuserRolePeer::addSelectColumns($criteria); $startcol2 = PuserRolePeer::NUM_COLUMNS - PuserRolePeer::NUM_LAZY_LOAD_COLUMNS; PuserKuserPeer::addSelectColumns($criteria); $startcol3 = $startcol2 + (PuserKuserPeer::NUM_COLUMNS - PuserKuserPeer::NUM_LAZY_LOAD_COLUMNS); PuserKuserPeer::addSelectColumns($criteria); $startcol4 = $startcol3 + (PuserKuserPeer::NUM_COLUMNS - PuserKuserPeer::NUM_LAZY_LOAD_COLUMNS); $criteria->addJoin(PuserRolePeer::PARTNER_ID, PuserKuserPeer::PARTNER_ID, $join_behavior); $criteria->addJoin(PuserRolePeer::PUSER_ID, PuserKuserPeer::PUSER_ID, $join_behavior); $stmt = BasePeer::doSelect($criteria, $con); $results = array(); while ($row = $stmt->fetch(PDO::FETCH_NUM)) { $key1 = PuserRolePeer::getPrimaryKeyHashFromRow($row, 0); if (null !== ($obj1 = PuserRolePeer::getInstanceFromPool($key1))) { // We no longer rehydrate the object, since this can cause data loss. // See http://propel.phpdb.org/trac/ticket/509 // $obj1->hydrate($row, 0, true); // rehydrate } else { $cls = PuserRolePeer::getOMClass(false); $obj1 = new $cls(); $obj1->hydrate($row); PuserRolePeer::addInstanceToPool($obj1, $key1); } // if obj1 already loaded // Add objects for joined PuserKuser rows $key2 = PuserKuserPeer::getPrimaryKeyHashFromRow($row, $startcol2); if ($key2 !== null) { $obj2 = PuserKuserPeer::getInstanceFromPool($key2); if (!$obj2) { $cls = PuserKuserPeer::getOMClass(false); $obj2 = new $cls(); $obj2->hydrate($row, $startcol2); PuserKuserPeer::addInstanceToPool($obj2, $key2); } // if $obj2 already loaded // Add the $obj1 (PuserRole) to the collection in $obj2 (PuserKuser) $obj2->addPuserRoleRelatedByPartnerId($obj1); } // if joined row is not null // Add objects for joined PuserKuser rows $key3 = PuserKuserPeer::getPrimaryKeyHashFromRow($row, $startcol3); if ($key3 !== null) { $obj3 = PuserKuserPeer::getInstanceFromPool($key3); if (!$obj3) { $cls = PuserKuserPeer::getOMClass(false); $obj3 = new $cls(); $obj3->hydrate($row, $startcol3); PuserKuserPeer::addInstanceToPool($obj3, $key3); } // if $obj3 already loaded // Add the $obj1 (PuserRole) to the collection in $obj3 (PuserKuser) $obj3->addPuserRoleRelatedByPuserId($obj1); } // if joined row is not null $results[] = $obj1; } $stmt->closeCursor(); return $results; }
private static function setUser($partner_id, $filter) { $target_puser_id = $filter->get("_eq_user_id"); if ($target_puser_id !== null) { $puser_kuser = self::getPuserKuserFromCache($target_puser_id); if ($puser_kuser == null) { $puser_kuser = PuserKuserPeer::retrieveByPartnerAndUid($partner_id, null, $target_puser_id, false); if ($puser_kuser) { $filter->set("_eq_user_id", $puser_kuser->getkuserId()); } self::setPuserKuserFromCache($target_puser_id, $puser_kuser); } } }
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)); } }
protected function getLoggedInUserId() { if ($this->partner_id) { // this part overhere should be in a more generic place - part of the services $ks = ""; // TODO - for now ignore the session $valid = true; // ( 0 >= kSessionUtils::validateKSession ( $this->partner_id , $this->uid , $this->ks_str ,&$ks ) ); if ($valid) { $puser_id = $this->uid; // actually the better user indicator will be placed in the ks - TODO - use it !! // $puser_id = $ks->user; $kuser_name = $puser_name = $this->getP("user_name"); if (!$puser_name) { $kuser_name = myPartnerUtils::getPrefix($this->partner_id) . $puser_id; } // will return the existing one if any, will create is none $puser_kuser = PuserKuserPeer::createPuserKuser($this->partner_id, $this->subp_id, $puser_id, $kuser_name, $puser_name, false); $likuser_id = $puser_kuser->getKuserId(); // from now on - this will be considered the logged in user return $likuser_id; } } else { return parent::getLoggedInUserId(); } }
public function executeImpl($partner_id, $subp_id, $puser_id, $partner_prefix, $puser_kuser) { $target_puser_id = $this->getPM("user_id"); $target_puser_kuser = PuserKuserPeer::retrieveByPartnerAndUid($partner_id, null, $target_puser_id); if ($target_puser_kuser) { $this->addDebug("puser_exists", $target_puser_kuser->getId()); // might be that the puser_kuser exists but the kuser does not $kuser = kuserPeer::retrieveByPK($target_puser_kuser->getKuserId()); if ($kuser) { $this->addError(APIErrors::DUPLICATE_USER_BY_ID, $target_puser_id); return; } else { // puser_kuser exists but need to create the ksuer... } } else { $target_puser_kuser = new PuserKuser(); $target_puser_kuser->setPuserId($target_puser_id); $target_puser_kuser->setPartnerId($partner_id); $target_puser_kuser->save(); $this->addDebug("Created_new_puser_kuser", $target_puser_kuser->getId()); } // get the new properties for the kuser from the request $kuser = new kuser(); $obj_wrapper = objectWrapperBase::getWrapperClass($kuser, 0); $fields_modified = baseObjectUtils::fillObjectFromMap($this->getInputParams(), $kuser, "user_", $obj_wrapper->getUpdateableFields()); // check that mandatory fields were set // TODO if (count($fields_modified) > 0) { if (!$partner_id) { $kuser_from_db = kuserPeer::getKuserByScreenName($kuser->getScreenName()); if ($kuser_from_db) { $this->addError(APIErrors::DUPLICATE_USER_BY_SCREEN_NAME, $kuser->getScreenName()); return; } } $kuser->setPartnerId($partner_id); $kuser->setPuserId($target_puser_id); try { $kuser = kuserPeer::addUser($kuser); } catch (kUserException $e) { $code = $e->getCode(); if ($code == kUserException::USER_ALREADY_EXISTS) { $this->addException(APIErrors::DUPLICATE_USER_BY_ID, $kuser->getId()); return null; } if ($code == kUserException::LOGIN_ID_ALREADY_USED) { $this->addException(APIErrors::DUPLICATE_USER_BY_LOGIN_ID, $kuser->getEmail()); return null; } else { if ($code == kUserException::USER_ID_MISSING) { $this->addException(APIErrors::PROPERTY_VALIDATION_CANNOT_BE_NULL, 'id'); return null; } else { if ($code == kUserException::INVALID_EMAIL) { $this->addException(APIErrors::INVALID_FIELD_VALUE); return null; } else { if ($code == kUserException::INVALID_PARTNER) { $this->addException(APIErrors::UNKNOWN_PARTNER_ID); return null; } else { if ($code == kUserException::ADMIN_LOGIN_USERS_QUOTA_EXCEEDED) { $this->addException(APIErrors::ADMIN_LOGIN_USERS_QUOTA_EXCEEDED); return null; } else { if ($code == kUserException::PASSWORD_STRUCTURE_INVALID) { $this->addException(APIErrors::PASSWORD_STRUCTURE_INVALID); return null; } } } } } } throw $e; } catch (kPermissionException $e) { $code = $e->getCode(); if ($code == kPermissionException::ROLE_ID_MISSING) { $this->addException(APIErrors::ROLE_ID_MISSING); return null; } if ($code == kPermissionException::ONLY_ONE_ROLE_PER_USER_ALLOWED) { $this->addException(APIErrors::ONLY_ONE_ROLE_PER_USER_ALLOWED); return null; } throw $e; } // now update the puser_kuser $target_puser_kuser->setPuserName($kuser->getScreenName()); $target_puser_kuser->setKuserId($kuser->getId()); $target_puser_kuser->save(); $this->addMsg("user", objectWrapperBase::getWrapperClass($target_puser_kuser, objectWrapperBase::DETAIL_LEVEL_DETAILED)); $this->addDebug("added_fields", $fields_modified); } else { $this->addError(APIErrors::NO_FIELDS_SET_FOR_USER); } }
function getPuserKusers($lastPuserKuser, $userLimitEachLoop) { PuserKuserPeer::clearInstancePool(); $c = new Criteria(); $c->add(PuserKuserPeer::ID, $lastPuserKuser, Criteria::GREATER_THAN); $c->addAscendingOrderByColumn(PuserKuserPeer::ID); $c->setLimit($userLimitEachLoop); PuserKuserPeer::setUseCriteriaFilter(false); $puserKusers = PuserKuserPeer::doSelect($c); PuserKuserPeer::setUseCriteriaFilter(true); return $puserKusers; }
public function getPuserId() { return PuserKuserPeer::getPuserIdFromKuserId($this->getPartnerId(), $this->getProducerId()); }
public static function updatePuserIdsForEntries($entries) { if (!$entries) { return; } // get the whole list of kuser_ids $partner_kuser_list = array(); kuserPeer::getCriteriaFilter()->disable(); PuserKuserPeer::getCriteriaFilter()->disable(); foreach ($entries as &$entry) { $pid = $entry->getPartnerId(); if (!isset($partner_kuser_list[$pid])) { $partner_kuser_ids = array(); } else { $partner_kuser_ids = $partner_kuser_list[$pid]; } //print_r ( $entry ); $kuser_id = $entry->getKuserId(); $partner_kuser_ids[$kuser_id] = $kuser_id; $partner_kuser_list[$pid] = $partner_kuser_ids; } // the kuser_id is unique across partners $kuser_list = array(); $puser_id = null; foreach ($partner_kuser_list as $pid => $kuser_ids) { $puser_kuser_list = PuserKuserPeer::getPuserIdFromKuserIds($pid, $kuser_ids); // builf a map where the key is kuser_id for fast fetch foreach ($puser_kuser_list as $puser_kuser) { $kuser_id = $puser_kuser->getKuserId(); $puser_id = $puser_kuser->getPuserId(); $kuser_list[$kuser_id] = $puser_id; } } foreach ($entries as $entry) { $kuser_id = $entry->getKuserId(); if (isset($kuser_list[$kuser_id])) { $puser_id = $kuser_list[$kuser_id]; } if ($puser_id) { $entry->tempSetPuserId($puser_id); } } kuserPeer::getCriteriaFilter()->enable(); PuserKuserPeer::getCriteriaFilter()->enable(); }
public function executeImpl($partner_id, $subp_id, $puser_id, $partner_prefix, $puser_kuser) { if (!$partner_id) { die; } $entry_id = $this->getP("entry_id"); // if the entry_type was sent by the client - make sure it's of type ENTRY_TYPE_SHOW. // this is to prevent this service as part of a bad multirequest $entry_type = $this->getP("entry_type", null); if (!empty($entry_type) && $entry_type != entryType::MIX) { $this->addDebug("entry", "not of type " . entryType::MIX); return; } $kshow_id = $this->getP("kshow_id"); list($kshow, $entry, $error, $error_obj) = myKshowUtils::getKshowAndEntry($kshow_id, $entry_id); if ($error_obj) { $this->addError($error_obj); return; } KalturaLog::log(__METHOD__ . " kshow_id [{$kshow_id}] entry_id [{$entry_id}]"); $list_type = $this->getP("list_type", self::LIST_TYPE_ROUGHCUT); $version = $this->getP("version", null); if ((int) $version == -1) { $version = null; } // will retrieve the latest $disable_roughcut_entry_data = $this->getP("disable_roughcut_entry_data", false); $disable_user_data = $this->getP("disable_user_data", false); // will allow to optimize the cals and NOT join with the kuser table $merge_entry_lists = false; if ($this->getPartner()) { $merge_entry_lists = $this->getPartner()->getMergeEntryLists(); } $kshow_entry_list = array(); $kuser_entry_list = array(); $aggrigate_id_list = array(); $this->benchmarkStart("list_type_kshow"); if ($list_type & self::LIST_TYPE_KSHOW && $kshow_id) { $c = new Criteria(); $c->addAnd(entryPeer::TYPE, entryType::MEDIA_CLIP); // $c->addAnd ( entryPeer::MEDIA_TYPE , entry::ENTRY_MEDIA_TYPE_SHOW , Criteria::NOT_EQUAL ); $c->addAnd(entryPeer::KSHOW_ID, $kshow_id); $this->addIgnoreIdList($c, $aggrigate_id_list); // $this->addOffsetAndLimit ( $c ); // fetch as many as the kshow has if ($disable_user_data) { $kshow_entry_list = entryPeer::doSelect($c); } else { $kshow_entry_list = entryPeer::doSelectJoinkuser($c); } $this->updateAggrigatedIdList($aggrigate_id_list, $kshow_entry_list); } $this->benchmarkEnd("list_type_kshow"); $this->benchmarkStart("list_type_kuser"); if ($list_type & self::LIST_TYPE_KUSER) { // try to get puserKuser - PS2 $puser_kuser = PuserKuserPeer::retrieveByPartnerAndUid($partner_id, null, $puser_id, false); // try to get kuser by partnerId & puserId - PS3 - backward compatibility $apiv3Kuser = kuserPeer::getKuserByPartnerAndUid($partner_id, $puser_id, true); if ($puser_kuser && $puser_kuser->getKuserId() || $apiv3Kuser) { $c = new Criteria(); $c->addAnd(entryPeer::TYPE, entryType::MEDIA_CLIP); // $c->addAnd ( entryPeer::MEDIA_TYPE , entry::ENTRY_MEDIA_TYPE_SHOW , Criteria::NOT_EQUAL ); $kuserIds = array(); if ($puser_kuser && $puser_kuser->getKuserId()) { $kuserIds[] = $puser_kuser->getKuserId(); } if ($apiv3Kuser) { if (!$puser_kuser || $puser_kuser->getKuserId() != $apiv3Kuser->getId()) { $kuserIds[] = $apiv3Kuser->getId(); } } /* if(count($kuserIds) > 1) { $c->addAnd ( entryPeer::KUSER_ID , $kuserIds, Criteria::IN ); } else { $c->addAnd ( entryPeer::KUSER_ID , $kuserIds[0] ); } if ( $merge_entry_lists ) { // if will join lists - no need to fetch entries twice $this->addIgnoreIdList ($c , $aggrigate_id_list); } $this->addOffsetAndLimit ( $c ); // limit the number of the user's clips if ( $disable_user_data ) $kuser_entry_list = entryPeer::doSelect( $c ); else $kuser_entry_list = entryPeer::doSelectJoinkuser( $c ); */ $this->addOffsetAndLimit($c); // limit the number of the user's clips if ($merge_entry_lists) { // if will join lists - no need to fetch entries twice $this->addIgnoreIdList($c, $aggrigate_id_list); } $kuser_entry_list = array(); $kuserIds = array_unique($kuserIds); foreach ($kuserIds as $kuserId) { $newC = clone $c; $newC->addAnd(entryPeer::KUSER_ID, $kuserId); if ($disable_user_data) { $one_kuser_list = entryPeer::doSelect($newC); } else { $one_kuser_list = entryPeer::doSelectJoinkuser($newC); } $kuser_entry_list = array_merge($kuser_entry_list, $one_kuser_list); } // Since we are using 2 potential kusers, we might not have the obvious kuser from $puser_kuser $strEntries = ""; if ($puser_kuser) { $kuser = kuserPeer::retrieveByPk($puser_kuser->getKuserId()); if ($kuser) { $strEntriesTemp = @unserialize($kuser->getPartnerData()); if ($strEntriesTemp) { $strEntries .= $strEntriesTemp; } } } if ($apiv3Kuser) { $strEntriesTemp = @unserialize($apiv3Kuser->getPartnerData()); if ($strEntriesTemp) { $strEntries .= $strEntriesTemp; } } if ($strEntries) { $entries = explode(',', $strEntries); $fixed_entry_list = array(); foreach ($entries as $entryId) { $fixed_entry_list[] = trim($entryId); } $c = new Criteria(); $c->addAnd(entryPeer::TYPE, entryType::MEDIA_CLIP); $c->addAnd(entryPeer::ID, $fixed_entry_list, Criteria::IN); if ($merge_entry_lists) { // if will join lists - no need to fetch entries twice $this->addIgnoreIdList($c, $aggrigate_id_list); } if ($disable_user_data) { $extra_user_entries = entryPeer::doSelect($c); } else { $extra_user_entries = entryPeer::doSelectJoinkuser($c); } if (count($extra_user_entries)) { $kuser_entry_list = array_merge($extra_user_entries, $kuser_entry_list); } } } else { $kuser_entry_list = array(); } if ($merge_entry_lists) { $kshow_entry_list = kArray::append($kshow_entry_list, $kuser_entry_list); $kuser_entry_list = null; } } $this->benchmarkEnd("list_type_kuser"); $this->benchmarkStart("list_type_episode"); if ($list_type & self::LIST_TYPE_EPISODE) { if ($kshow && $kshow->getEpisodeId()) { // episode_id will point to the "parent" kshow // fetch the entries of the parent kshow $c = new Criteria(); $c->addAnd(entryPeer::TYPE, entryType::MEDIA_CLIP); // $c->addAnd ( entryPeer::MEDIA_TYPE , entry::ENTRY_MEDIA_TYPE_SHOW , Criteria::NOT_EQUAL ); $c->addAnd(entryPeer::KSHOW_ID, $kshow->getEpisodeId()); $this->addIgnoreIdList($c, $aggrigate_id_list); // $this->addOffsetAndLimit ( $c ); // limit the number of the inherited entries from the episode if ($disable_user_data) { $parent_kshow_entries = entryPeer::doSelect($c); } else { $parent_kshow_entries = entryPeer::doSelectJoinkuser($c); } if (count($parent_kshow_entries)) { $kshow_entry_list = kArray::append($kshow_entry_list, $parent_kshow_entries); } } } $this->benchmarkEnd("list_type_episode"); // fetch all entries that were used in the roughcut - those of other kusers // - appeared under kuser_entry_list when someone else logged in $this->benchmarkStart("list_type_roughcut"); $entry_data_from_roughcut_map = array(); // will hold an associative array where the id is the key if ($list_type & self::LIST_TYPE_ROUGHCUT) { if ($entry->getType() == entryType::MIX) { $sync_key = $entry->getSyncKey(entry::FILE_SYNC_ENTRY_SUB_TYPE_DATA, $version); $roughcut_file_name = kFileSyncUtils::getReadyLocalFilePathForKey($sync_key); $entry_data_from_roughcut = myFlvStreamer::getAllAssetsData($roughcut_file_name); $final_id_list = array(); foreach ($entry_data_from_roughcut as $data) { $id = $data["id"]; // first element is the id $entry_data_from_roughcut_map[] = $data; $found = false; foreach ($kshow_entry_list as $entry) { // see we are not fetching duplicate entries if ($entry->getId() == $id) { $found = true; break; } } if (!$found) { $final_id_list[] = $id; } } if (count($final_id_list) > 0) { // allow deleted entries when searching for entries on the roughcut // don't forget to return the status at the end of the process entryPeer::allowDeletedInCriteriaFilter(); $c = new Criteria(); $c->addAnd(entryPeer::ID, $final_id_list, Criteria::IN); $c->addAnd(entryPeer::TYPE, entryType::MEDIA_CLIP); $this->addIgnoreIdList($c, $aggrigate_id_list); // $this->addOffsetAndLimit ( $c ); if ($disable_user_data) { $extra_entries = entryPeer::doSelect($c); } else { $extra_entries = entryPeer::doSelectJoinkuser($c); } // return the status to the criteriaFilter entryPeer::blockDeletedInCriteriaFilter(); // merge the 2 lists into 1: $kshow_entry_list = kArray::append($kshow_entry_list, $extra_entries); } } } $this->benchmarkEnd("list_type_roughcut"); $this->benchmarkStart("create_wrapper"); $entry_wrapper = objectWrapperBase::getWrapperClass($kshow_entry_list, objectWrapperBase::DETAIL_LEVEL_REGULAR, -3, 0, array("contributorScreenName")); //$entry_wrapper->addFields ( array ( "kuser.screenName" ) ); $this->addMsg("show", $entry_wrapper); // if ! $disable_roughcut_entry_data - add the roughcut_entry_data if (!$disable_roughcut_entry_data) { $this->addMsg("roughcut_entry_data", $entry_data_from_roughcut_map); } if (count($kuser_entry_list) > 0) { $this->addMsg("user", objectWrapperBase::getWrapperClass($kuser_entry_list, objectWrapperBase::DETAIL_LEVEL_REGULAR)); } else { $this->addMsg("user", null); } $this->benchmarkEnd("create_wrapper"); }
public function getPuserId() { $puserId = parent::getPuserId(); if (is_null($puserId) && !kCurrentContext::isApiV3Context()) { $puserId = PuserKuserPeer::getPuserIdFromKuserId($this->getPartnerId(), $this->getId()); } return $puserId; }
/** * Sets the valid user for the entry * Throws an error if the session user is trying to add entry to another user and not using an admin session * * @param KalturaBaseEntry $entry * @param entry $dbEntry */ protected function checkAndSetValidUser(KalturaBaseEntry $entry, entry $dbEntry) { KalturaLog::debug("DB puser id [" . $dbEntry->getPuserId() . "] kuser id [" . $dbEntry->getKuserId() . "]"); // for new entry, puser ID is null - set it from service scope if ($dbEntry->getPuserId() === null) { KalturaLog::debug("Set kuser id [" . $this->getKuser()->getId() . "] line [" . __LINE__ . "]"); $dbEntry->setKuserId($this->getKuser()->getId()); return; } // get puser ID from entry to compare to userId on the updated entry object $entryPuserId = $dbEntry->getPuserId(); $kuser = null; if ($dbEntry->getKuserId()) { // get kuser object from entry kuserId $kuser = kuserPeer::retrieveByPK($dbEntry->getKuserId()); if (!$kuser || $kuser->getPuserId() != $dbEntry->getPuserId()) { $kuser = null; } } else { // get kuser object from entry puserId $kuser = kuserPeer::getKuserByPartnerAndUid($dbEntry->getPartnerId(), $dbEntry->getPuserId()); } if ($kuser) { KalturaLog::debug("Set kuser id [" . $kuser->getId() . "] line [" . __LINE__ . "]"); $dbEntry->setKuserId($kuser->getId()); return; } // userID doesn't require change (it is null or the same as the db entry) - do nothing if ($entry->userId === null || $entry->userId === $entryPuserId) { KalturaLog::debug('API entry userId [' . $entry->userId . '], DB entry userId [' . $entryPuserId . '] - no need to change - quitting'); return; } // db user is going to be changed, only admin allowed - otherwise, throw exception if (!$this->getKs() || !$this->getKs()->isAdmin()) { KalturaLog::debug('API entry userId [' . $entry->userId . '], DB entry userId [' . $entryPuserId . '] - change required but KS is not admin'); throw new KalturaAPIException(KalturaErrors::INVALID_KS, "", ks::INVALID_TYPE, ks::getErrorStr(ks::INVALID_TYPE)); } // passed previous conditions, need to change userID on entry // first step is to make sure the user exists $puserKuser = PuserKuserPeer::createPuserKuser($this->getPartnerId(), $this->getPartnerId() * 100, $dbEntry->getPuserId(), $dbEntry->getPuserId(), $dbEntry->getPuserId(), true); // second step is simply changing the userID on the entry $dbEntry->setKuserId($puserKuser->getKuserId()); KalturaLog::debug("Set kuser id [" . $puserKuser->getKuserId() . "] line [" . __LINE__ . "]"); }
public function getPuserId() { if (kCurrentContext::isApiV3Context()) { return parent::getPuserId(); } $puser_id = $this->getFromCustomData("puserId"); if ($this->m_puser_id) { return $this->m_puser_id; } else { if ($this->getKuserId()) { $puser_id = PuserKuserPeer::getPuserIdFromKuserId($this->getPartnerId(), $this->getKuserId()); $this->putInCustomData("puserId", $puser_id); $this->m_puser_id = $puser_id; } } return $puser_id; }
protected function createUserOnDemand($partner_id, $subp_id, $puser_id, $puser_kuser, $kuser = null) { // make sure the user [puser_kuser + kuser] exists according to addUserOnDemand // TODO - remove dead code //$create_user_on_demand = $this->addUserOnDemand(); $create_user_on_demand = $this->addUserOnDemand2(); $create_user = false; if ($puser_kuser == null) { if ($create_user_on_demand == self::CREATE_USER_FALSE) { $create_user = false; } elseif ($create_user_on_demand == self::CREATE_USER_FORCE) { $create_user = true; } elseif ($create_user_on_demand == self::CREATE_USER_FROM_PARTNER_SETTINGS) { $partner = PartnerPeer::retrieveByPK($partner_id); $create_user = $partner->getCreateUserOnDemand(); } } if ($create_user) { // prefer the user_screenName on user_name $user_name = $this->getP("user_screenName", $this->getP("user_name")); if (!$user_name) { $puser_name = $kuser_name = myPartnerUtils::getPrefix($partner_id) . $puser_id; } else { $puser_name = $kuser_name = $user_name; } $puser_kuser = PuserKuserPeer::createPuserKuser($partner_id, $subp_id, $puser_id, $kuser_name, $puser_name, false, $kuser); } return $puser_kuser; }