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);
 }
Example #5
0
 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);
 }
Example #7
0
 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));
     }
 }
Example #8
0
 /**
  * @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();
 }
Example #9
0
 /**
  * @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 ) ;
 }
Example #13
0
 /**
  * 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;
 }
Example #14
0
 /**
  * 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;
 }
Example #17
0
 /**
  * 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;
 }
Example #19
0
 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();
     }
 }
Example #22
0
 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;
}
Example #24
0
 public function getPuserId()
 {
     return PuserKuserPeer::getPuserIdFromKuserId($this->getPartnerId(), $this->getProducerId());
 }
Example #25
0
 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;
 }
Example #28
0
 /**
  * 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__ . "]");
 }
Example #29
0
 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;
 }