Ejemplo n.º 1
0
 public static function incKuserViews(kuser $kuser, $delta = 1)
 {
     $v = $kuser->getViews();
     if (self::shouldModify($kuser, kuserPeer::VIEWS)) {
     }
     self::inc($v, $delta);
     $kuser->setViews($v);
     return $v;
 }
Ejemplo n.º 2
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;
 }
 private function assertKuser()
 {
     // check copied values
     $this->assertEquals($this->systemUser->getFirstName(), $this->kuser->getFirstName(), 'first_name for ' . $this->getParams());
     $this->assertEquals($this->systemUser->getLastName(), $this->kuser->getLastName(), 'last_name for ' . $this->getParams());
     $this->assertEquals($this->systemUser->getEmail(), $this->kuser->getPuserId(), 'puserid for ' . $this->getParams());
     $this->assertEquals($this->adminConsolePartnerId, $this->kuser->getPartnerId(), 'partner_id for ' . $this->getParams());
     $this->assertEquals($this->systemUser->getEmail(), $this->kuser->getEmail(), 'email for ' . $this->getParams());
     $this->assertEquals($this->systemUser->getName(), $this->kuser->getScreenName(), 'screen_name for ' . $this->getParams());
     $this->assertEquals($this->systemUser->getName(), $this->kuser->getFullName(), 'full_name for ' . $this->getParams());
     if ($this->systemUser->getStatus == systemUser::SYSTEM_USER_ACTIVE) {
         $this->assertEquals(KuserStatus::ACTIVE, $this->kuser->getStatus(), 'status ' . $this->getParams());
     } else {
         $this->assertEquals(KuserStatus::BLOCKED, $this->kuser->getStatus(), 'status ' . $this->getParams());
     }
     $this->assertEquals($this->systemUser->getDeletedAt(), $this->kuser->getDeletedAt(), 'deleted_at ' . $this->getParams());
     $partnerData = unserialize($this->kuser->getPartnerData());
     var_dump($partnerData);
     $this->assertTrue(get_class($partnerData) === 'Kaltura_AdminConsoleUserPartnerData', 'PartnerData is not of type Kaltura_AdminConsoleUserPartnerData');
     $this->assertEquals($this->systemUser->getIsPrimary(), $partnerData->isPrimary, 'is_primary ' . $this->getParams());
     $this->assertEquals($this->systemUser->getRole(), $partnerData->role, 'role ' . $this->getParams());
     // check new values
     $this->assertEquals(true, $this->kuser->getIsAdmin(), 'is_admin for ' . $this->getParams());
     $this->assertEquals($this->kuser->getLoginDataId(), $this->loginData->getId());
 }
Ejemplo n.º 4
0
 private static function initRoleIds()
 {
     $roleIds = null;
     if (!self::$operatingPartner || !self::$ksString) {
         // no partner or session -> no role
         $roleIds = null;
     } else {
         // if user is defined -> get his role IDs
         if (self::$kuser) {
             $roleIds = self::$kuser->getRoleIds();
         }
         // if user has no defined roles or no user is defined -> get default role IDs according to session type (admin/not)
         if (!$roleIds) {
             if (self::$adminSession) {
                 // there is only one partner admin role defined in the system
                 $roleIds = self::$operatingPartner->getAdminSessionRoleId();
             } else {
                 // a partner may have special defined user session roles - get them from partner object
                 $roleIds = self::$operatingPartner->getUserSessionRoleId();
             }
         }
         if ($roleIds) {
             $roleIds = explode(',', trim($roleIds, ','));
         }
     }
     self::$roleIds = $roleIds;
 }
Ejemplo n.º 5
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();
 }
Ejemplo n.º 6
0
 protected function getLoggedInUser()
 {
     if ($this->likuser != NULL) {
         return $this->likuser;
     }
     try {
         $id = $this->getLoggedInUserId();
         if ($id == NULL) {
             return NULL;
         }
         $this->likuser = kuser::getKuserById($id);
         return $this->likuser;
     } catch (Exception $ex) {
         return NULL;
     }
 }
Ejemplo n.º 7
0
 protected function executeImpl(kshow $kshow, entry &$entry)
 {
     if ($entry->getMediaType() == entry::ENTRY_MEDIA_TYPE_SHOW) {
         $this->show_versions = array_reverse($entry->getAllversions());
     } else {
         $this->show_versions = array();
     }
     $this->producer = kuser::getKuserById($kshow->getProducerId());
     $this->editor = $entry->getKuser();
     $this->thumbnail = $entry ? $entry->getThumbnailPath() : "";
     // is the logged-in-user is an admin or the producer or the show can always be published...
     $likuser_id = $this->getLoggedInUserId();
     $viewer_type = myKshowUtils::getViewerType($kshow, $likuser_id);
     $this->entry = $entry ? $entry : new entry();
     // create a dummy entry for the GUI
     $this->can_publish = $viewer_type == KshowKuser::KSHOWKUSER_VIEWER_PRODUCER || $kshow->getCanPublish();
 }
 private static function initRoleIds()
 {
     $roleIds = null;
     if (!self::$operatingPartner || !self::$ksString) {
         // no partner or session -> no role
         $roleIds = null;
     } else {
         $ks = ks::fromSecureString(self::$ksString);
         $ksSetRoleId = $ks->getSetRole();
         if ($ksSetRoleId) {
             //check if role exists
             $c = new Criteria();
             $c->addAnd(is_numeric($ksSetRoleId) ? UserRolePeer::ID : UserRolePeer::SYSTEM_NAME, $ksSetRoleId, Criteria::EQUAL);
             $c->addAnd(UserRolePeer::PARTNER_ID, array(self::$ksPartnerId, PartnerPeer::GLOBAL_PARTNER), Criteria::IN);
             $roleId = UserRolePeer::doSelectOne($c);
             if ($roleId) {
                 $roleIds = $roleId->getId();
             } else {
                 KalturaLog::debug("Role id [{$ksSetRoleId}] does not exists");
                 throw new KalturaAPIException(APIErrors::UNKNOWN_ROLE_ID, $ksSetRoleId);
             }
         }
         // if user is defined -> get his role IDs
         if (!$roleIds && self::$kuser) {
             $roleIds = self::$kuser->getRoleIds();
         }
         // if user has no defined roles or no user is defined -> get default role IDs according to session type (admin/not)
         if (!$roleIds) {
             if ($ks->isWidgetSession()) {
                 //there is only one partner widget role defined in the system
                 $roleIds = self::$operatingPartner->getWidgetSessionRoleId();
             } elseif (self::$adminSession) {
                 // there is only one partner admin role defined in the system
                 $roleIds = self::$operatingPartner->getAdminSessionRoleId();
             } else {
                 // a partner may have special defined user session roles - get them from partner object
                 $roleIds = self::$operatingPartner->getUserSessionRoleId();
             }
         }
         if ($roleIds) {
             $roleIds = explode(',', trim($roleIds, ','));
         }
     }
     self::$roleIds = $roleIds;
 }
 public function executeImpl($partner_id, $subp_id, $puser_id, $partner_prefix, $puser_kuser)
 {
     $fileField = "csv_file";
     $profileId = $this->getP("profile_id");
     if (count($_FILES) == 0) {
         $this->addError(APIErrors::NO_FILES_RECEIVED);
         return;
     }
     if (!@$_FILES[$fileField]) {
         $this->addError(APIErrors::INVALID_FILE_FIELD, $fileField);
         return;
     }
     // first we copy the file to "content/batchfiles/[partner_id]/"
     $fileName = $_FILES[$fileField]['name'];
     $filePath = $_FILES[$fileField]['tmp_name'];
     $kuser = kuser::getKuserById($puser_kuser->getKuserId());
     $partner = PartnerPeer::retrieveByPK($partner_id);
     kJobsManager::addBulkUploadJob($filePath, $fileName, $partner, $kuser->getPuserId(), $kuser->getPuserId(), $profileId);
 }
 private function assertKuser()
 {
     // check copied values
     $this->assertEquals($this->adminKuser->getFullName(), $this->kuser->getFullName(), 'full_name for ' . $this->getParams());
     $this->assertEquals($this->adminKuser->getIcon(), $this->kuser->getIcon(), 'icon for ' . $this->getParams());
     $this->assertEquals('__ADMIN__' . $this->adminKuser->getId(), $this->kuser->getPuserId(), 'puserid for ' . $this->getParams());
     $this->assertEquals($this->adminKuser->getPartnerId(), $this->kuser->getPartnerId(), 'partner_id for ' . $this->getParams());
     $this->assertEquals($this->adminKuser->getPicture(), $this->kuser->getPicture(), 'picture for ' . $this->getParams());
     $this->assertEquals($this->adminKuser->getEmail(), $this->kuser->getEmail(), 'email for ' . $this->getParams());
     $this->assertEquals($this->adminKuser->getScreenName(), $this->kuser->getScreenName(), 'screen_name for ' . $this->getParams());
     // check new values
     $this->assertEquals(true, $this->kuser->getIsAdmin(), 'is_admin for ' . $this->getParams());
     $this->assertEquals($this->kuser->getLoginDataId(), $this->loginData->getId());
 }
Ejemplo n.º 11
0
 protected function applyFilterFields(baseObjectFilter $filter)
 {
     //Role ids and kuser permission names are indexed with the partner ID
     if ($filter->get('_eq_role_ids')) {
         $filter->set('_eq_role_ids', kuser::getIndexedFieldValue('kuserPeer::ROLE_IDS', $filter->get('_eq_role_ids'), kCurrentContext::getCurrentPartnerId()));
     }
     if ($filter->get('_in_role_ids')) {
         $filter->set('_eq_role_ids', kuser::getIndexedFieldValue('kuserPeer::ROLE_IDS', $filter->get('_eq_role_ids'), kCurrentContext::getCurrentPartnerId()));
     }
     if ($filter->get('_mlikeand_permission_names')) {
         $permissionNames = kuser::getIndexedFieldValue('kuserPeer::PERMISSION_NAMES', $filter->get('_mlikeand_permission_names'), kCurrentContext::getCurrentPartnerId());
         $permissionNames = implode(' ', explode(',', $permissionNames));
         $universalPermissionName = kuser::getIndexedFieldValue('kuserPeer::PERMISSION_NAMES', kuser::UNIVERSAL_PERMISSION, kCurrentContext::getCurrentPartnerId());
         $value = "({$universalPermissionName} | ({$permissionNames}))";
         $this->addMatch("@permission_names {$value}");
         $filter->unsetByName('_mlikeand_permission_names');
     }
     if ($filter->get('_mlikeor_permission_names')) {
         $filter->set('_mlikeor_permission_names', kuser::getIndexedFieldValue('kuserPeer::PERMISSION_NAMES', $filter->get('_mlikeor_permission_names') . ',' . kuser::UNIVERSAL_PERMISSION, kCurrentContext::getCurrentPartnerId()));
     }
     if ($filter->get('_likex_puser_id_or_screen_name')) {
         $freeTexts = $filter->get('_likex_puser_id_or_screen_name');
         KalturaLog::debug("Attach free text [{$freeTexts}]");
         $additionalConditions = array();
         $advancedSearch = $filter->getAdvancedSearch();
         if ($advancedSearch) {
             $additionalConditions = $advancedSearch->getFreeTextConditions($filter->getPartnerSearchScope(), $freeTexts);
         }
         $this->addFreeTextToMatchClauseByMatchFields($freeTexts, kuserFilter::PUSER_ID_OR_SCREEN_NAME, $additionalConditions, true);
     }
     $filter->unsetByName('_likex_puser_id_or_screen_name');
     if ($filter->get('_likex_first_name_or_last_name')) {
         $names = $filter->get('_likex_first_name_or_last_name');
         KalturaLog::debug("Attach free text [{$names}]");
         $this->addFreeTextToMatchClauseByMatchFields($names, kuserFilter::FIRST_NAME_OR_LAST_NAME, null, true);
     }
     $filter->unsetByName('_likex_first_name_or_last_name');
     return parent::applyFilterFields($filter);
 }
 public function getIndexFieldType($field)
 {
     if (!self::$indexFieldTypes) {
         self::$indexFieldTypes = array("login_data_id" => IIndexable::FIELD_TYPE_INTEGER, "is_admin" => IIndexable::FIELD_TYPE_INTEGER, "screen_name" => IIndexable::FIELD_TYPE_STRING, "full_name" => IIndexable::FIELD_TYPE_STRING, "first_name" => IIndexable::FIELD_TYPE_STRING, "last_name" => IIndexable::FIELD_TYPE_STRING, "email" => IIndexable::FIELD_TYPE_STRING, "about_me" => IIndexable::FIELD_TYPE_STRING, "tags" => IIndexable::FIELD_TYPE_STRING, "entries" => IIndexable::FIELD_TYPE_INTEGER, "storage_size" => IIndexable::FIELD_TYPE_INTEGER, "kuser_status" => IIndexable::FIELD_TYPE_INTEGER, "created_at" => IIndexable::FIELD_TYPE_DATETIME, "updated_at" => IIndexable::FIELD_TYPE_DATETIME, "partner_id" => IIndexable::FIELD_TYPE_INTEGER, "display_in_search" => IIndexable::FIELD_TYPE_INTEGER, "partner_data" => IIndexable::FIELD_TYPE_STRING, "puser_id" => IIndexable::FIELD_TYPE_STRING, "indexed_partner_data_int" => IIndexable::FIELD_TYPE_INTEGER, "indexed_partner_data_string" => IIndexable::FIELD_TYPE_STRING, "permission_names" => IIndexable::FIELD_TYPE_STRING, "role_ids" => IIndexable::FIELD_TYPE_STRING);
     }
     if (isset(self::$indexFieldTypes[$field])) {
         return self::$indexFieldTypes[$field];
     }
     return null;
 }
Ejemplo n.º 13
0
 public static function sendNewUserMail(kuser $user, $existingUser)
 {
     // setup parameters
     $partnerId = $user->getPartnerId();
     $userName = $user->getFullName();
     if (!$userName) {
         $userName = $user->getPuserId();
     }
     $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();
     if (!$existingUser) {
         $resetPasswordLink = UserLoginDataPeer::getPassResetLink($user->getLoginData()->getPasswordHashKey());
     }
     $kmcLink = trim(kConf::get('apphome_url'), '/') . '/kmc';
     $adminConsoleLink = trim(kConf::get('admin_console_url'));
     $contactLink = kConf::get('contact_url');
     $beginnersGuideLink = kConf::get('beginners_tutorial_url');
     $quickStartGuideLink = kConf::get('quick_start_guide_url');
     // setup mail
     $mailType = null;
     $bodyParams = array();
     if ($partnerId == Partner::ADMIN_CONSOLE_PARTNER_ID) {
         if ($existingUser) {
             $mailType = self::KALTURA_NEW_EXISTING_USER_ADMIN_CONSOLE_EMAIL;
             $bodyParams = array($userName, $creatorUserName, $loginEmail, $roleName);
         } else {
             $mailType = self::KALTURA_NEW_USER_ADMIN_CONSOLE_EMAIL;
             $bodyParams = array($userName, $creatorUserName, $loginEmail, $resetPasswordLink, $roleName, $adminConsoleLink);
         }
     } else {
         if ($existingUser) {
             $mailType = self::KALTURA_NEW_EXISTING_USER_EMAIL;
             $bodyParams = array($userName, $creatorUserName, $publisherName, $loginEmail, $partnerId, $publisherName, $publisherName, $roleName, $publisherName, $puserId, $kmcLink, $contactLink, $beginnersGuideLink, $quickStartGuideLink);
         } else {
             $mailType = self::KALTURA_NEW_USER_EMAIL;
             $bodyParams = array($userName, $creatorUserName, $publisherName, $loginEmail, $resetPasswordLink, $partnerId, $publisherName, $publisherName, $roleName, $publisherName, $puserId, $kmcLink, $contactLink, $beginnersGuideLink, $quickStartGuideLink);
         }
     }
     // 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"), $loginEmail, $bodyParams);
 }
 public static function createTeam1Image($kshow_id)
 {
     try {
         $contentPath = myContentStorage::getFSContentRootPath();
         $kshow = kshowPeer::retrieveByPK($kshow_id);
         if (!$kshow) {
             return NULL;
         }
         // the canvas for the output -
         $im = imagecreatetruecolor(120, 90);
         $logo_path = kFile::fixPath(SF_ROOT_DIR . DIRECTORY_SEPARATOR . 'web' . DIRECTORY_SEPARATOR . 'images' . DIRECTORY_SEPARATOR . 'main' . DIRECTORY_SEPARATOR . 'kLogoBig.gif');
         $logoIm = imagecreatefromgif($logo_path);
         $logoIm_x = imagesx($logoIm);
         $logoIm_y = imagesy($logoIm);
         imagecopyresampled($im, $logoIm, 0, 0, 0, 0, $logoIm_x * 0.25, $logoIm_y * 0.25, $logoIm_x, $logoIm_y);
         imagedestroy($logoIm);
         // get producer's image
         $producer = kuser::getKuserById($kshow->getProducerId());
         $producer_image_path = kFile::fixPath($contentPath . $producer->getPicturePath());
         if (file_exists($producer_image_path)) {
             list($sourcewidth, $sourceheight, $type, $attr, $srcIm) = myFileConverter::createImageByFile($producer_image_path);
             $srcIm_x = imagesx($srcIm);
             $srcIm_y = imagesy($srcIm);
             // producer -
             imagecopyresampled($im, $srcIm, 0, 0, $srcIm_x * 0.1, $srcIm_y * 0.1, self::DIM_X * 2, self::DIM_Y * 2, $srcIm_x * 0.9, $srcIm_y * 0.9);
             imagedestroy($srcIm);
         }
         // fetch as many different kusers as possible who contributed to the kshow
         // first entries willcome up first
         $c = new Criteria();
         $c->add(entryPeer::KSHOW_ID, $kshow_id);
         $c->add(entryPeer::TYPE, entryType::MEDIA_CLIP, Criteria::EQUAL);
         //$c->add ( entryPeer::PICTURE, null, Criteria::NOT_EQUAL );
         $c->setLimit(16);
         // we'll need 16 images of contributers
         $c->addGroupByColumn(entryPeer::KUSER_ID);
         $c->addDescendingOrderByColumn(entryPeer::CREATED_AT);
         $entries = entryPeer::doSelectJoinkuser($c);
         if ($entries == NULL || count($entries) == 0) {
             imagedestroy($im);
             return;
         }
         //		$entry_index = 0;
         $entry_list_len = count($entries);
         reset($entries);
         if ($entry_list_len > 0) {
             /*
             				 $pos = array(2,3,4, 7,8,9, 10,11,12,13,14, 15,16,17,18,19);
             				 $i = 20;
             				 while(--$i)
             				 {
             $p1 = rand(0, 15);
             $p2 = rand(0, 15);
             $p = $pos[$p1];
             $pos[$p1] = $pos[$p2];
             $pos[$p2] = $p;
             }
             
             $i = count($entries);
             while($i--)
             {
             $x = current($pos) % 5;
             $y = floor(current($pos) / 5);
             next($pos);
             self::addKuserPictureFromEntry ( $contentPath , $im ,$entries , $x , $y );
             }
             */
             for ($y = 0; $y <= 1; ++$y) {
                 for ($x = 2; $x <= 4; ++$x) {
                     self::addKuserPictureFromEntry($contentPath, $im, $entries, $x, $y);
                 }
             }
             for ($y = 2; $y <= 3; ++$y) {
                 for ($x = 0; $x <= 4; ++$x) {
                     self::addKuserPictureFromEntry($contentPath, $im, $entries, $x, $y);
                 }
             }
         } else {
             // no contributers - need to create some other image
         }
         // add the clapper image on top
         $clapper_path = kFile::fixPath(SF_ROOT_DIR . DIRECTORY_SEPARATOR . 'web' . DIRECTORY_SEPARATOR . 'images' . DIRECTORY_SEPARATOR . 'mykaltura' . DIRECTORY_SEPARATOR . 'productionicon.png');
         $clapperIm = imagecreatefrompng($clapper_path);
         imagecopyresampled($im, $clapperIm, 1.2 * self::DIM_X, 1.2 * self::DIM_Y, 0, 0, self::DIM_X, self::DIM_Y, imagesx($clapperIm), imagesy($clapperIm));
         imagedestroy($clapperIm);
         $path = kFile::fixPath($contentPath . $kshow->getTeamPicturePath());
         myContentStorage::fullMkdir($path);
         imagepng($im, $path);
         imagedestroy($im);
         $kshow->setHasTeamImage(true);
         $kshow->save();
     } catch (Exception $ex) {
         // nothing much we can do here !
     }
 }
Ejemplo n.º 15
0
if (!$lastUser) {
    $lastUser = 0;
}
$users = getUsers($lastUser, $userLimitEachLoop);
while (count($users)) {
    foreach ($users as $user) {
        if (file_exists($stopFile)) {
            die('STOP FILE CREATED');
        }
        $lastUser = $user->getId();
        KalturaLog::log('-- admin kuser id ' . $lastUser);
        if ($user->getPartnerId() == PartnerPeer::GLOBAL_PARTNER) {
            KalturaLog::log('Skipping partner 0');
            continue;
        }
        $new_kuser = new kuser();
        $new_login_data = new UserLoginData();
        $partner = PartnerPeer::retrieveByPK($user->getPartnerId());
        if (!$partner) {
            KalturaLog::alert('!!! ERROR - Partner ID [' . $user->getPartnerId() . '] not found on DB but set for admin user id [' . $lastUser . '] !!!');
            echo '!!! ERROR - Partner ID [' . $user->getPartnerId() . '] not found on DB but set for admin user id [' . $lastUser . '] !!!';
            continue;
        }
        list($firstName, $lastName) = kString::nameSplit($user->getFullName());
        $c = new Criteria();
        $c->addAnd(UserLoginDataPeer::LOGIN_EMAIL, $user->getEmail());
        $existing_login_data = UserLoginDataPeer::doSelectOne($c);
        if ($existing_login_data) {
            if ($user->getPartnerId() === $existing_login_data->getConfigPartnerId()) {
                $checkKuser = kuserPeer::getByLoginDataAndPartner($existing_login_data->getId(), $user->getPartnerId());
                if ($checkKuser && $checkKuser->getIsAdmin()) {
Ejemplo n.º 16
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;
     }
 }
 protected function applyFilterFields(baseObjectFilter $filter)
 {
     //Role ids and kuser permission names are indexed with the partner ID
     $partnerId = kCurrentContext::$partner_id ? kCurrentContext::$partner_id : kCurrentContext::$ks_partner_id;
     if ($filter->get('_eq_role_ids')) {
         $filter->set('_eq_role_ids', kuser::getIndexedFieldValue('kuserPeer::ROLE_IDS', $filter->get('_eq_role_ids'), $partnerId));
     }
     if ($filter->get('_in_role_ids')) {
         $filter->set('_eq_role_ids', kuser::getIndexedFieldValue('kuserPeer::ROLE_IDS', $filter->get('_eq_role_ids'), $partnerId));
     }
     if ($filter->get('_mlikeand_permission_names')) {
         $permissionNames = kuser::getIndexedFieldValue('kuserPeer::PERMISSION_NAMES', $filter->get('_mlikeand_permission_names'), $partnerId);
         $permissionNames = implode(' ', explode(',', $permissionNames));
         $universalPermissionName = kuser::getIndexedFieldValue('kuserPeer::PERMISSION_NAMES', kuser::UNIVERSAL_PERMISSION, $partnerId);
         $value = "({$universalPermissionName} | ({$permissionNames}))";
         $this->addMatch("@permission_names {$value}");
         $filter->unsetByName('_mlikeand_permission_names');
     }
     if ($filter->get('_mlikeor_permission_names')) {
         $filter->set('_mlikeor_permission_names', kuser::getIndexedFieldValue('kuserPeer::PERMISSION_NAMES', $filter->get('_mlikeor_permission_names') . ',' . kuser::UNIVERSAL_PERMISSION, $partnerId));
     }
     if ($filter->get('_likex_puser_id_or_screen_name')) {
         $freeTexts = $filter->get('_likex_puser_id_or_screen_name');
         KalturaLog::debug("Attach free text [{$freeTexts}]");
         $additionalConditions = array();
         $advancedSearch = $filter->getAdvancedSearch();
         if ($advancedSearch) {
             $additionalConditions = $advancedSearch->getFreeTextConditions($freeTexts);
         }
         if (preg_match('/^"[^"]+"$/', $freeTexts)) {
             $freeText = str_replace('"', '', $freeTexts);
             $freeText = SphinxUtils::escapeString($freeText);
             $freeText = "^{$freeText}\$";
             $additionalConditions[] = "@(" . kuserFilter::PUSER_ID_OR_SCREEN_NAME . ") {$freeText}\\\\*";
         } else {
             if (strpos($freeTexts, baseObjectFilter::IN_SEPARATOR) > 0) {
                 str_replace(baseObjectFilter::AND_SEPARATOR, baseObjectFilter::IN_SEPARATOR, $freeTexts);
                 $freeTextsArr = explode(baseObjectFilter::IN_SEPARATOR, $freeTexts);
                 foreach ($freeTextsArr as $valIndex => $valValue) {
                     if (!is_numeric($valValue) && strlen($valValue) <= 0) {
                         unset($freeTextsArr[$valIndex]);
                     } else {
                         $freeTextsArr[$valIndex] = SphinxUtils::escapeString($valValue);
                     }
                 }
                 foreach ($freeTextsArr as $freeText) {
                     $additionalConditions[] = "@(" . kuserFilter::PUSER_ID_OR_SCREEN_NAME . ") {$freeText}\\\\*";
                 }
             } else {
                 $freeTextsArr = explode(baseObjectFilter::AND_SEPARATOR, $freeTexts);
                 foreach ($freeTextsArr as $valIndex => $valValue) {
                     if (!is_numeric($valValue) && strlen($valValue) <= 0) {
                         unset($freeTextsArr[$valIndex]);
                     } else {
                         $freeTextsArr[$valIndex] = SphinxUtils::escapeString($valValue);
                     }
                 }
                 $freeTextsArr = array_unique($freeTextsArr);
                 $freeTextExpr = implode(baseObjectFilter::AND_SEPARATOR, $freeTextsArr);
                 $additionalConditions[] = "@(" . kuserFilter::PUSER_ID_OR_SCREEN_NAME . ") {$freeTextExpr}\\\\*";
             }
         }
         if (count($additionalConditions)) {
             $additionalConditions = array_unique($additionalConditions);
             $matches = reset($additionalConditions);
             if (count($additionalConditions) > 1) {
                 $matches = '( ' . implode(' ) | ( ', $additionalConditions) . ' )';
             }
             $this->matchClause[] = $matches;
         }
     }
     $filter->unsetByName('_likex_puser_id_or_screen_name');
     if ($filter->get('_likex_first_name_or_last_name')) {
         $names = $filter->get('_likex_first_name_or_last_name');
         KalturaLog::debug("Attach free text [{$names}]");
         $additionalConditions = array();
         if (preg_match('/^"[^"]+"$/', $names)) {
             $name = str_replace('"', '', $names);
             $name = SphinxUtils::escapeString($name);
             $name = "^{$name}\$";
             $additionalConditions[] = "@(" . kuserFilter::FIRST_NAME_OR_LAST_NAME . ") {$name}\\\\*";
         } else {
             if (strpos($names, baseObjectFilter::IN_SEPARATOR) > 0) {
                 str_replace(baseObjectFilter::AND_SEPARATOR, baseObjectFilter::IN_SEPARATOR, $names);
                 $namesArr = explode(baseObjectFilter::IN_SEPARATOR, $names);
                 foreach ($namesArr as $valIndex => $valValue) {
                     if (!is_numeric($valValue) && strlen($valValue) <= 0) {
                         unset($namesArr[$valIndex]);
                     } else {
                         $namesArr[$valIndex] = SphinxUtils::escapeString($valValue);
                     }
                 }
                 foreach ($namesArr as $name) {
                     $additionalConditions[] = "@(" . kuserFilter::FIRST_NAME_OR_LAST_NAME . ") {$name}\\\\*";
                 }
             } else {
                 $namesArr = explode(baseObjectFilter::AND_SEPARATOR, $names);
                 foreach ($namesArr as $valIndex => $valValue) {
                     if (!is_numeric($valValue) && strlen($valValue) <= 0) {
                         unset($namesArr[$valIndex]);
                     } else {
                         $namesArr[$valIndex] = SphinxUtils::escapeString($valValue);
                     }
                 }
                 $namesArr = array_unique($namesArr);
                 $nameExpr = implode(baseObjectFilter::AND_SEPARATOR, $namesArr);
                 $additionalConditions[] = "@(" . kuserFilter::FIRST_NAME_OR_LAST_NAME . ") {$nameExpr}\\\\*";
             }
         }
         if (count($additionalConditions)) {
             $additionalConditions = array_unique($additionalConditions);
             $matches = reset($additionalConditions);
             if (count($additionalConditions) > 1) {
                 $matches = '( ' . implode(' ) | ( ', $additionalConditions) . ' )';
             }
             $this->matchClause[] = $matches;
         }
     }
     $filter->unsetByName('_likex_first_name_or_last_name');
     return parent::applyFilterFields($filter);
 }
Ejemplo n.º 18
0
 /**
  * 
  * updates first and last name on the login data record, according to the given kuser object
  * @param int $loginDataId
  * @param kuser $kuser
  * @throws kUserException::LOGIN_DATA_NOT_FOUND
  */
 public static function updateFromUserDetails($loginDataId, kuser $kuser)
 {
     $loginData = self::retrieveByPK($loginDataId);
     if (!$loginData) {
         throw new kUserException('', kUserException::LOGIN_DATA_NOT_FOUND);
     }
     $loginData->setFirstName($kuser->getFirstName());
     $loginData->setLastName($kuser->getLastName());
     $loginData->save();
 }
 private function createNewAdminKuser($newPartner, $existing_password)
 {
     // generate a new password if not given
     if ($existing_password != null) {
         $password = $existing_password;
     } else {
         $password = UserLoginDataPeer::generateNewPassword();
     }
     // create the user
     $kuser = new kuser();
     $kuser->setEmail($newPartner->getAdminEmail());
     list($firstName, $lastName) = kString::nameSplit($newPartner->getAdminName());
     $kuser->setFirstName($firstName);
     $kuser->setLastName($lastName);
     $kuser->setPartnerId($newPartner->getId());
     $kuser->setIsAdmin(true);
     $kuser->setPuserId($newPartner->getAdminEmail());
     $kuser = kuserPeer::addUser($kuser, $password, false, false);
     //this also saves the kuser and adds a user_login_data record
     $loginData = UserLoginDataPeer::retrieveByPK($kuser->getLoginDataId());
     return array($password, $loginData->getPasswordHashKey(), $kuser->getId());
 }
Ejemplo n.º 20
0
 foreach ($users as $user) {
     if (file_exists($stopFile)) {
         die('STOP FILE CREATED');
     }
     $lastUser = $user->getId();
     KalturaLog::log('-- system user id ' . $lastUser);
     // check for existing kusers for this admin_kuser
     $c = new Criteria();
     $c->addAnd(kuserPeer::PUSER_ID, $user->getEmail(), Criteria::EQUAL);
     $c->addAnd(kuserPeer::PARTNER_ID, $admin_console_partner_id, Criteria::EQUAL);
     $existing_kuser = kuserPeer::doSelectOne($c);
     if ($existing_kuser) {
         $new_kuser = $existing_kuser;
         // in case this script is executed more than once
     } else {
         $new_kuser = new kuser();
     }
     $new_login_data = new UserLoginData();
     $new_kuser->setEmail($user->getEmail());
     $new_kuser->setCreatedAt($user->getCreatedAt());
     $new_kuser->setUpdatedAt($user->getUpdatedAt());
     $new_kuser->setScreenName($user->getFirstName() . ' ' . $user->getLastName());
     $new_kuser->setPartnerId($admin_console_partner_id);
     $new_kuser->setFirstName($user->getFirstName());
     $new_kuser->setLastName($user->getLastName());
     if ($user->getStatus() == SystemUser::SYSTEM_USER_ACTIVE) {
         $new_kuser->setStatus(KuserStatus::ACTIVE);
     } else {
         $new_kuser->setStatus(KuserStatus::BLOCKED);
     }
     $new_kuser->setPuserId($user->getEmail());
Ejemplo n.º 21
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');
         }
     }
 }
Ejemplo n.º 22
0
 /**
  * @return int
  */
 public function getKuserId()
 {
     $this->getKuser();
     if ($this->kuser) {
         return $this->kuser->getId();
     }
     return null;
 }
Ejemplo n.º 23
0
 /**
  * @dataProvider providerTestMigration
  */
 public function testMigration($kuserId)
 {
     $this->assertNull($this->kuser);
     $this->kuser = kuserPeer::retrieveByPK($kuserId);
     $this->assertNotNull($this->kuser);
     $this->assertEquals($this->kuser->getFullName(), trim($this->kuser->getFirstName() . ' ' . $this->kuser->getLastName()));
     if ($this->kuser->getSalt() && $this->kuser->getSha1Password() && in_array($this->kuser->getPartnerId(), $this->loginPartnerIds)) {
         $this->assertTrue($this->kuser->getLoginDataId());
         $loginData1 = UserLoginDataPeer::retrieveByPK($this->kuser->getLoginDataId());
         $this->assertNotNull($loginData1);
         $loginData2 = UserLoginDataPeer::getByEmail($this->kuser->getEmail());
         $this->assertNotNull($loginData2);
         $this->assertEquals($loginData1->getId(), $loginData2->getId());
         $this->assertEquals($this->kuser->getSalt(), $loginData2->getSalt());
         $this->assertEquals($this->kuser->getSha1Password(), $loginData2->getSha1Password());
         $this->assertEquals($this->kuser->getEmail(), $loginData2->getLoginEmail());
         $c = new Criteria();
         $c->addAnd(UserLoginDataPeer::LOGIN_EMAIL, $this->kuser->getEmail());
         $loginDatas = UserLoginDataPeer::doSelect($c);
         $this->assertEquals(count($loginDatas), 1);
         $this->assertEquals($loginDatas[0]->getId(), $loginData1->getId());
         $allKusers = kuserPeer::getByLoginDataAndPartner($this->kuser->getLoginDataId(), $this->kuser->getPartnerId());
         $this->assertEquals(count($allKusers), 1);
     } else {
         if ($this->kuser->getPartnerId() != $this->adminConsolePartnerId && substr($this->kuser->getPuserId(), 0, 9) != '__ADMIN__') {
             $this->assertNull($this->kuser->getLoginDataId());
         }
     }
     if ($this->kuser->getPartnerId() == $this->adminConsolePartnerId || substr($this->kuser->getPuserId(), 0, 9) == '__ADMIN__') {
         $this->assertTrue($this->kuser->getIsAdmin());
     } else {
         $this->assertFalse($this->kuser->getIsAdmin());
     }
     if ($this->kuser->getIsAdmin()) {
         $this->assertTrue($this->kuser->getIsAdmin());
     }
 }
Ejemplo n.º 24
0
 /**
  * 
  * Creates a new kuser and insert it into the kuser table
  * @param string $puserId
  * @param int $partnerId
  */
 private function createKuser($puserId, $partnerId)
 {
     $kuser = new kuser();
     $kuser->partnerId = $partnerId;
     $kuser->puserId = $puserId;
     if ($this->isDryRun) {
         $this->createdKusers["{$puserId}_{$partnerId}"] = $kuser;
     } else {
         $rowsAffected = $kuser->save();
         if ($rowsAffected != 1) {
             $this->printToLog("Error in save: rows affected [{$rowsAffected}]");
         }
     }
 }
Ejemplo n.º 25
0
 public function getSearchableColumnName()
 {
     return kuser::getSearchableColumnName();
 }
Ejemplo n.º 26
0
 public static function getRoleIds(Partner $operatingPartner = null, kuser $kuser = null)
 {
     $roleIds = null;
     $ksString = kCurrentContext::$ks;
     $isAdminSession = !self::isEmpty(kCurrentContext::$is_admin_session) ? kCurrentContext::$is_admin_session : false;
     if (!$ksString || !$operatingPartner && kCurrentContext::$ks_partner_id != Partner::BATCH_PARTNER_ID) {
         $roleId = UserRolePeer::getIdByStrId(UserRoleId::NO_SESSION_ROLE);
         if ($roleId) {
             return array($roleId);
         }
         return null;
     }
     $ks = ks::fromSecureString($ksString);
     $ksSetRoleId = $ks->getSetRole();
     if ($ksSetRoleId) {
         if ($ksSetRoleId == 'null') {
             return null;
         }
         $ksPartnerId = !self::isEmpty(kCurrentContext::$ks_partner_id) ? kCurrentContext::$ks_partner_id : null;
         //check if role exists
         $c = new Criteria();
         $c->addAnd(is_numeric($ksSetRoleId) ? UserRolePeer::ID : UserRolePeer::SYSTEM_NAME, $ksSetRoleId, Criteria::EQUAL);
         $partnerIds = array_map('strval', array($ksPartnerId, PartnerPeer::GLOBAL_PARTNER));
         $c->addAnd(UserRolePeer::PARTNER_ID, $partnerIds, Criteria::IN);
         $roleId = UserRolePeer::doSelectOne($c);
         if ($roleId) {
             $roleIds = $roleId->getId();
         } else {
             KalturaLog::debug("Role id [{$ksSetRoleId}] does not exists");
             throw new kCoreException("Unknown role Id [{$ksSetRoleId}]", kCoreException::ID_NOT_FOUND);
         }
     }
     // if user is defined -> get his role IDs
     if (!$roleIds && $kuser) {
         $roleIds = $kuser->getRoleIds();
     }
     // if user has no defined roles or no user is defined -> get default role IDs according to session type (admin/not)
     if (!$roleIds) {
         if (!$operatingPartner) {
             // use system default roles
             if ($ks->isWidgetSession()) {
                 $strId = UserRoleId::WIDGET_SESSION_ROLE;
             } elseif ($isAdminSession) {
                 $strId = UserRoleId::PARTNER_ADMIN_ROLE;
             } else {
                 $strId = UserRoleId::BASE_USER_SESSION_ROLE;
             }
             $roleIds = UserRolePeer::getIdByStrId($strId);
         } else {
             if ($ks->isWidgetSession()) {
                 //there is only one partner widget role defined in the system
                 $roleIds = $operatingPartner->getWidgetSessionRoleId();
             } elseif ($isAdminSession) {
                 // there is only one partner admin role defined in the system
                 $roleIds = $operatingPartner->getAdminSessionRoleId();
             } else {
                 // a partner may have special defined user session roles - get them from partner object
                 $roleIds = $operatingPartner->getUserSessionRoleId();
             }
         }
     }
     if ($roleIds) {
         $roleIds = explode(',', trim($roleIds, ','));
     }
     return $roleIds;
 }
Ejemplo n.º 27
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);
         }
     }
 }
Ejemplo n.º 28
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;
 }
 protected function kuserDelete(kuser $kuser)
 {
     $filter = new categoryKuserFilter();
     $filter->setUserIdEqual($kuser->getPuserId());
     kJobsManager::addDeleteJob($kuser->getPartnerId(), DeleteObjectType::CATEGORY_USER, $filter);
 }