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; }
/** 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()); }
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; }
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(); }
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; } }
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()); }
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; }
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 ! } }
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()) {
/** * 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); }
/** * * 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()); }
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());
/** * 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'); } } }
/** * @return int */ public function getKuserId() { $this->getKuser(); if ($this->kuser) { return $this->kuser->getId(); } return null; }
/** * @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()); } }
/** * * 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}]"); } } }
public function getSearchableColumnName() { return kuser::getSearchableColumnName(); }
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; }
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); } } }
/** * 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); }