예제 #1
0
 /**
 	Returns newly created puser - after creating it's corresponding kuser.
 	If the puser_kuser already exists && $verify_not_exists==true , don't create a new one and return the existing one
 */
 public static function createPuserKuser($partner_id, $subp_id, $puser_id, $kuser_name, $puser_name, $create_kuser = false, $kuser = null)
 {
     $puser_kuser = self::retrieveByPartnerAndUid($partner_id, $subp_id, $puser_id, true);
     if (!$kuser) {
         $kuser = kuserPeer::getKuserByPartnerAndUid($partner_id, $puser_id, true);
         // don't create an existing kuser!
     }
     if ($puser_kuser) {
         if (!$create_kuser) {
             // if the puser_kuser already exists - don't re-create it
             $puser_kuser->exists = true;
             return $puser_kuser;
         } else {
             // puser_kuser exists but it's OK
             // this might be the case where we don't mind creating a new one each time
         }
     } else {
         $puser_kuser = new PuserKuser();
     }
     $c = new Criteria();
     $c->add(self::PARTNER_ID, $partner_id);
     $c->add(self::PUSER_ID, $puser_id);
     $partner_puser_kuser = self::doSelectOne($c);
     if ($kuser !== null) {
         $kuser_id = $kuser->getId();
     } else {
         if ($partner_puser_kuser) {
             $kuser_id = $partner_puser_kuser->getKuserId();
             $kuser = kuserPeer::retrieveByPK($kuser_id);
         } else {
             // create kuser for this puser
             $kuser = new kuser();
             $kuser->setScreenName($kuser_name);
             list($firstName, $lastName) = kString::nameSplit($kuser_name);
             $kuser->setFirstName($firstName);
             $kuser->setLastName($lastName);
             $kuser->setPartnerId($partner_id);
             // set puserId for forward compatibility with PS3
             $kuser->setPuserId($puser_id);
             $kuser->setStatus(KuserStatus::ACTIVE);
             // so he won't appear in the search
             $kuser->save();
             $kuser_id = $kuser->getId();
         }
     }
     $puser_kuser->setPartnerId($partner_id);
     $puser_kuser->setSubpId($subp_id);
     $puser_kuser->setPuserId($puser_id);
     $puser_kuser->setKuserId($kuser_id);
     $puser_kuser->setPuserName($puser_name);
     $puser_kuser->save();
     $puser_kuser->setkuser($kuser);
     return $puser_kuser;
 }
예제 #2
0
 public static function createKvote($entryId, $partnerId, $puserId, $rank, $type = KVoteType::RANK)
 {
     $kvote = new kvote();
     $kvote->setEntryId($entryId);
     $kvote->setStatus(KVoteStatus::VOTED);
     $kvote->setPartnerId($partnerId);
     $kvote->setKvoteType($type);
     $kuser = self::getKuserFromPuserAndPartner($puserId, $partnerId);
     if (!$kuser) {
         $kuser = new kuser();
         $kuser->setPuserId($puserId);
         $kuser->setStatus(KuserStatus::ACTIVE);
         $kuser->save();
     }
     $kvote->setKuserId($kuser->getId());
     $kvote->setRank($rank);
     $kvote->save();
 }
예제 #3
0
 /**
  * Declares an association between this object and a kuser object.
  *
  * @param      kuser $v
  * @return     KuserToUserRole The current object (for fluent API support)
  * @throws     PropelException
  */
 public function setkuser(kuser $v = null)
 {
     if ($v === null) {
         $this->setKuserId(NULL);
     } else {
         $this->setKuserId($v->getId());
     }
     $this->akuser = $v;
     // Add binding for other direction of this n:n relationship.
     // If this object has already been added to the kuser object, it will not be re-added.
     if ($v !== null) {
         $v->addKuserToUserRole($this);
     }
     return $this;
 }
예제 #4
0
 public static function sendNewUserMailToAdmins(kuser $user)
 {
     $partnerId = $user->getPartnerId();
     $creatorUserName = '******';
     if (!is_null(kCurrentContext::$ks_uid)) {
         $creatorUser = kuserPeer::getKuserByPartnerAndUid($partnerId, kCurrentContext::$ks_uid);
         if ($creatorUser) {
             $creatorUserName = $creatorUser->getFullName();
         }
     }
     $publisherName = PartnerPeer::retrieveByPK($partnerId)->getName();
     $loginEmail = $user->getEmail();
     $roleName = $user->getUserRoleNames();
     $puserId = $user->getPuserId();
     $bodyParams = null;
     $mailType = self::KALTURA_NEW_USER_EMAIL_TO_ADMINS;
     //If the new user partner is -2 (admin console) then it is a admin console user
     if ($partnerId == Partner::ADMIN_CONSOLE_PARTNER_ID) {
         $mailType = self::KALTURA_NEW_USER_ADMIN_CONSOLE_EMAIL_TO_ADMINS;
     }
     // get all partner administrators
     $c = new Criteria();
     $c->addAnd(kuserPeer::IS_ADMIN, true, Criteria::EQUAL);
     $c->addAnd(kuserPeer::PARTNER_ID, $partnerId, Criteria::EQUAL);
     $adminKusers = kuserPeer::doSelect($c);
     foreach ($adminKusers as $admin) {
         // don't send mail to the created user
         if ($admin->getId() == $user->getId()) {
             continue;
         }
         // send email to all administrators with user management permissions
         if ($admin->hasPermissionOr(array(PermissionName::ADMIN_USER_ADD, PermissionName::ADMIN_USER_UPDATE, PermissionName::ADMIN_USER_DELETE))) {
             $adminName = $admin->getFullName();
             if (!$adminName) {
                 $adminName = $admin->getPuserId();
             }
             $unsubscribeLink .= $admin->getEmail();
             $bodyParams = null;
             if ($partnerId == Partner::ADMIN_CONSOLE_PARTNER_ID) {
                 $bodyParams = array($adminName, $creatorUserName, $loginEmail, $roleName);
             } else {
                 $bodyParams = array($adminName, $creatorUserName, $publisherName, $loginEmail, $publisherName, $roleName, $publisherName, $partnerId);
             }
             // add mail job
             kJobsManager::addMailJob(null, 0, $partnerId, $mailType, kMailJobData::MAIL_PRIORITY_NORMAL, kConf::get("partner_registration_confirmation_email"), kConf::get("partner_registration_confirmation_name"), $admin->getEmail(), $bodyParams);
         }
     }
 }
예제 #5
0
 protected function kuserDelete(kuser $kuser)
 {
     $filter = new categoryKuserFilter();
     $filter->setUserIdEqual($kuser->getPuserId());
     $c = new Criteria();
     $c->add(categoryKuserPeer::PUSER_ID, $kuser->getPuserId());
     if (categoryKuserPeer::doSelectOne($c)) {
         kJobsManager::addDeleteJob($kuser->getPartnerId(), DeleteObjectType::CATEGORY_USER, $filter);
     }
     if ($kuser->getType() == KuserType::USER) {
         // remove user from groups
         KuserKgroupPeer::deleteByKuserId($kuser->getId());
     } elseif ($kuser->getType() == KuserType::GROUP) {
         // remove users from group
         $filter = new KuserKgroupFilter();
         $filter->setGroupIdEqual($kuser->getPuserId());
         $c = new Criteria();
         $c->add(KuserKgroupPeer::PGROUP_ID, $kuser->getPuserId());
         if (KuserKgroupPeer::doSelectOne($c)) {
             kJobsManager::addDeleteJob($kuser->getPartnerId(), DeleteObjectType::GROUP_USER, $filter);
         }
     }
 }
 private function getParams()
 {
     return 'adminKuser [' . $this->curId . '] kuser [' . @$this->kuser->getId() . '] loginData[' . @$this->loginData->getId() . ']';
 }
예제 #7
0
 /**
  * @return int
  */
 public function getKuserId()
 {
     $this->getKuser();
     if ($this->kuser) {
         return $this->kuser->getId();
     }
     return null;
 }
예제 #8
0
 /**
  * Adds an object to the instance pool.
  *
  * Propel keeps cached copies of objects in an instance pool when they are retrieved
  * from the database.  In some cases -- especially when you override doSelect*()
  * methods in your stub classes -- you may need to explicitly add objects
  * to the cache in order to ensure that the same objects are always returned by doSelect*()
  * and retrieveByPK*() calls.
  *
  * @param      kuser $value A kuser object.
  * @param      string $key (optional) key to use for instance map (for performance boost if key was already calculated externally).
  */
 public static function addInstanceToPool(kuser $obj, $key = null)
 {
     if (Propel::isInstancePoolingEnabled()) {
         if ($key === null) {
             $key = (string) $obj->getId();
         }
         if (isset(self::$instances[$key]) || count(self::$instances) < kConf::get('max_num_instances_in_pool')) {
             self::$instances[$key] = $obj;
             kMemoryManager::registerPeer('kuserPeer');
         }
     }
 }
예제 #9
0
 /**
  * Adds an object to the instance pool.
  *
  * Propel keeps cached copies of objects in an instance pool when they are retrieved
  * from the database.  In some cases -- especially when you override doSelect*()
  * methods in your stub classes -- you may need to explicitly add objects
  * to the cache in order to ensure that the same objects are always returned by doSelect*()
  * and retrieveByPK*() calls.
  *
  * @param      kuser $value A kuser object.
  * @param      string $key (optional) key to use for instance map (for performance boost if key was already calculated externally).
  */
 public static function addInstanceToPool(kuser $obj, $key = null)
 {
     if (Propel::isInstancePoolingEnabled()) {
         if ($key === null) {
             $key = (string) $obj->getId();
         }
         // if key === null
         self::$instances[$key] = $obj;
     }
 }