function getAdminUsers($lastUser, $userLimitEachLoop) { kuserPeer::clearInstancePool(); UserRolePeer::clearInstancePool(); $c = new Criteria(); $c->addAnd(kuserPeer::ID, $lastUser, Criteria::GREATER_THAN); $c->addAnd(kuserPeer::IS_ADMIN, true, Criteria::EQUAL); $c->addAscendingOrderByColumn(kuserPeer::ID); $c->setLimit($userLimitEachLoop); kuserPeer::setUseCriteriaFilter(false); $users = kuserPeer::doSelect($c); kuserPeer::setUseCriteriaFilter(true); return $users; }
/** * Cleans up the environment after running a test. */ protected function tearDown() { UserRolePeer::clearInstancePool(); PermissionPeer::clearInstancePool(); PermissionItemPeer::clearInstancePool(); kuserPeer::clearInstancePool(); PartnerPeer::clearInstancePool(); $this->client = null; PermissionItemPeer::setUseCriteriaFilter(false); foreach ($this->addedPermissionItemIds as $id) { try { $obj = PermissionItemPeer::retrieveByPK($id); if ($obj) { $obj->delete(); } } catch (PropelException $e) { } } PermissionItemPeer::setUseCriteriaFilter(true); $this->addedPermissionItemIds = array(); parent::tearDown(); }
/** * Method to invalidate the instance pool of all tables related to roles * by a foreign key with ON DELETE CASCADE */ public static function clearRelatedInstancePool() { // Invalidate objects in GroupRolePeer instance pool, // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. GroupRolePeer::clearInstancePool(); // Invalidate objects in UserRolePeer instance pool, // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. UserRolePeer::clearInstancePool(); // Invalidate objects in RightPeer instance pool, // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. RightPeer::clearInstancePool(); }
function getNewRole($oldRoleName, $userRoles) { if (!$oldRoleName) { $oldRoleName = 'guest'; } if (!isset($userRoles[$oldRoleName])) { KalturaLog::alert('New role name was not found for old role name [' . $oldRoleName . ']'); return null; } $c = new Criteria(); $c->addAnd(UserRolePeer::PARTNER_ID, ADMIN_CONSOLE_PARTNER_ID, Criteria::EQUAL); $c->addAnd(UserRolePeer::ID, $userRoles[$oldRoleName]->getId(), Criteria::EQUAL); $c->addAnd(UserRolePeer::TAGS, '%admin_console%', Criteria::LIKE); UserRolePeer::clearInstancePool(); UserRolePeer::setUseCriteriaFilter(false); $newRole = UserRolePeer::doSelectOne($c); UserRolePeer::setUseCriteriaFilter(true); if (!$newRole) { KalturaLog::alert('Role with id [' . $userRoles[$oldRoleName]->getId() . '] was not found in DB!'); return null; } return $newRole; }
/** * Method perform a DELETE on the database, given a UserRole or Criteria object OR a primary key value. * * @param mixed $values Criteria or UserRole object or primary key or array of primary keys * which is used to create the DELETE statement * @param PropelPDO $con the connection to use * @return int The number of affected rows (if supported by underlying database driver). This includes CASCADE-related rows * if supported by native driver or if emulated using Propel. * @throws PropelException Any exceptions caught during processing will be * rethrown wrapped into a PropelException. */ public static function doDelete($values, PropelPDO $con = null) { if ($con === null) { $con = Propel::getConnection(UserRolePeer::DATABASE_NAME, Propel::CONNECTION_WRITE); } if ($values instanceof Criteria) { // invalidate the cache for all objects of this type, since we have no // way of knowing (without running a query) what objects should be invalidated // from the cache based on this Criteria. UserRolePeer::clearInstancePool(); // rename for clarity $criteria = clone $values; } elseif ($values instanceof UserRole) { // it's a model object // invalidate the cache for this single object UserRolePeer::removeInstanceFromPool($values); // create criteria based on pk values $criteria = $values->buildPkeyCriteria(); } else { // it's a primary key, or an array of pks $criteria = new Criteria(self::DATABASE_NAME); $criteria->add(UserRolePeer::ID, (array) $values, Criteria::IN); // invalidate the cache for this object(s) foreach ((array) $values as $singleval) { UserRolePeer::removeInstanceFromPool($singleval); } } // Set the correct dbName $criteria->setDbName(self::DATABASE_NAME); $affectedRows = 0; // initialize var to track total num of affected rows try { // use transaction because $criteria could contain info // for more than one table or we could emulating ON DELETE CASCADE, etc. $con->beginTransaction(); $affectedRows += BasePeer::doDelete($criteria, $con); UserRolePeer::clearRelatedInstancePool(); $con->commit(); return $affectedRows; } catch (PropelException $e) { $con->rollBack(); throw $e; } }
/** * Method to invalidate the instance pool of all tables related to users * by a foreign key with ON DELETE CASCADE */ public static function clearRelatedInstancePool() { // Invalidate objects in UserGroupPeer instance pool, // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. UserGroupPeer::clearInstancePool(); // Invalidate objects in UserRolePeer instance pool, // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. UserRolePeer::clearInstancePool(); // Invalidate objects in PagePeer instance pool, // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. PagePeer::clearInstancePool(); // Invalidate objects in PagePeer instance pool, // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. PagePeer::clearInstancePool(); // Invalidate objects in PagePropertyPeer instance pool, // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. PagePropertyPeer::clearInstancePool(); // Invalidate objects in PagePropertyPeer instance pool, // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. PagePropertyPeer::clearInstancePool(); // Invalidate objects in PageStringPeer instance pool, // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. PageStringPeer::clearInstancePool(); // Invalidate objects in PageStringPeer instance pool, // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. PageStringPeer::clearInstancePool(); // Invalidate objects in ContentObjectPeer instance pool, // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. ContentObjectPeer::clearInstancePool(); // Invalidate objects in ContentObjectPeer instance pool, // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. ContentObjectPeer::clearInstancePool(); // Invalidate objects in LanguageObjectPeer instance pool, // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. LanguageObjectPeer::clearInstancePool(); // Invalidate objects in LanguageObjectPeer instance pool, // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. LanguageObjectPeer::clearInstancePool(); // Invalidate objects in LanguageObjectHistoryPeer instance pool, // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. LanguageObjectHistoryPeer::clearInstancePool(); // Invalidate objects in LanguageObjectHistoryPeer instance pool, // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. LanguageObjectHistoryPeer::clearInstancePool(); // Invalidate objects in LanguagePeer instance pool, // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. LanguagePeer::clearInstancePool(); // Invalidate objects in LanguagePeer instance pool, // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. LanguagePeer::clearInstancePool(); // Invalidate objects in TranslationPeer instance pool, // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. TranslationPeer::clearInstancePool(); // Invalidate objects in TranslationPeer instance pool, // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. TranslationPeer::clearInstancePool(); // Invalidate objects in UserGroupPeer instance pool, // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. UserGroupPeer::clearInstancePool(); // Invalidate objects in UserGroupPeer instance pool, // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. UserGroupPeer::clearInstancePool(); // Invalidate objects in GroupPeer instance pool, // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. GroupPeer::clearInstancePool(); // Invalidate objects in GroupPeer instance pool, // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. GroupPeer::clearInstancePool(); // Invalidate objects in GroupRolePeer instance pool, // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. GroupRolePeer::clearInstancePool(); // Invalidate objects in GroupRolePeer instance pool, // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. GroupRolePeer::clearInstancePool(); // Invalidate objects in RolePeer instance pool, // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. RolePeer::clearInstancePool(); // Invalidate objects in RolePeer instance pool, // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. RolePeer::clearInstancePool(); // Invalidate objects in UserRolePeer instance pool, // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. UserRolePeer::clearInstancePool(); // Invalidate objects in UserRolePeer instance pool, // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. UserRolePeer::clearInstancePool(); // Invalidate objects in RightPeer instance pool, // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. RightPeer::clearInstancePool(); // Invalidate objects in RightPeer instance pool, // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. RightPeer::clearInstancePool(); // Invalidate objects in DocumentPeer instance pool, // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. DocumentPeer::clearInstancePool(); // Invalidate objects in DocumentPeer instance pool, // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. DocumentPeer::clearInstancePool(); // Invalidate objects in DocumentDataPeer instance pool, // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. DocumentDataPeer::clearInstancePool(); // Invalidate objects in DocumentDataPeer instance pool, // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. DocumentDataPeer::clearInstancePool(); // Invalidate objects in DocumentTypePeer instance pool, // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. DocumentTypePeer::clearInstancePool(); // Invalidate objects in DocumentTypePeer instance pool, // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. DocumentTypePeer::clearInstancePool(); // Invalidate objects in DocumentCategoryPeer instance pool, // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. DocumentCategoryPeer::clearInstancePool(); // Invalidate objects in DocumentCategoryPeer instance pool, // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. DocumentCategoryPeer::clearInstancePool(); // Invalidate objects in TagPeer instance pool, // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. TagPeer::clearInstancePool(); // Invalidate objects in TagPeer instance pool, // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. TagPeer::clearInstancePool(); // Invalidate objects in TagInstancePeer instance pool, // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. TagInstancePeer::clearInstancePool(); // Invalidate objects in TagInstancePeer instance pool, // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. TagInstancePeer::clearInstancePool(); // Invalidate objects in LinkPeer instance pool, // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. LinkPeer::clearInstancePool(); // Invalidate objects in LinkPeer instance pool, // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. LinkPeer::clearInstancePool(); // Invalidate objects in LinkCategoryPeer instance pool, // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. LinkCategoryPeer::clearInstancePool(); // Invalidate objects in LinkCategoryPeer instance pool, // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. LinkCategoryPeer::clearInstancePool(); // Invalidate objects in ReferencePeer instance pool, // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. ReferencePeer::clearInstancePool(); // Invalidate objects in ReferencePeer instance pool, // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. ReferencePeer::clearInstancePool(); }
/** * Init with allowed permissions for the user in the given KS or kCurrentContext if not KS given * kCurrentContext::init should have been executed before! * @param string $ks KS to extract user and partner IDs from instead of kCurrentContext * @param boolean $useCache use cache or not * @throws TODO: add all exceptions */ public static function init($useCache = null) { // verify that kCurrentContext::init has been executed since it must be used to init current context permissions if (!kCurrentContext::$ksPartnerUserInitialized) { KalturaLog::crit('kCurrentContext::initKsPartnerUser must be executed before initializing kPermissionManager'); throw new Exception('kCurrentContext has not been initialized!', null); } // can be initialized more than once to support multirequest with different kCurrentContext parameters self::$initialized = false; self::$useCache = $useCache ? true : false; // copy kCurrentContext parameters (kCurrentContext::init should have been executed before) self::$requestedPartnerId = !self::isEmpty(kCurrentContext::$partner_id) ? kCurrentContext::$partner_id : null; self::$ksPartnerId = !self::isEmpty(kCurrentContext::$ks_partner_id) ? kCurrentContext::$ks_partner_id : null; self::$ksUserId = !self::isEmpty(kCurrentContext::$ks_uid) ? kCurrentContext::$ks_uid : null; self::$ksString = kCurrentContext::$ks ? kCurrentContext::$ks : null; self::$adminSession = !self::isEmpty(kCurrentContext::$is_admin_session) ? kCurrentContext::$is_admin_session : false; // clear instance pools //TODO: may not be needed UserRolePeer::clearInstancePool(); PermissionPeer::clearInstancePool(); PermissionItemPeer::clearInstancePool(); PermissionToPermissionItemPeer::clearInstancePool(); kuserPeer::clearInstancePool(); // if ks defined - check that it is valid self::errorIfKsNotValid(); // init partner, user, and role objects self::initPartnerUserObjects(); // throw an error if KS partner (operating partner) is blocked self::errorIfPartnerBlocked(); // init role ids self::initRoleIds(); // init permissions map self::initPermissionsMap(); // initialization done self::$initialized = true; return true; }
/** * Performs a DELETE on the database, given a UserRole or Criteria object OR a primary key value. * * @param mixed $values Criteria or UserRole object or primary key or array of primary keys * which is used to create the DELETE statement * @param PropelPDO $con the connection to use * @return int The number of affected rows (if supported by underlying database driver). This includes CASCADE-related rows * if supported by native driver or if emulated using Propel. * @throws PropelException Any exceptions caught during processing will be * rethrown wrapped into a PropelException. */ public static function doDelete($values, PropelPDO $con = null) { if ($con === null) { $con = Propel::getConnection(UserRolePeer::DATABASE_NAME, Propel::CONNECTION_WRITE); } if ($values instanceof Criteria) { // invalidate the cache for all objects of this type, since we have no // way of knowing (without running a query) what objects should be invalidated // from the cache based on this Criteria. UserRolePeer::clearInstancePool(); // rename for clarity $criteria = clone $values; } elseif ($values instanceof UserRole) { // it's a model object // invalidate the cache for this single object UserRolePeer::removeInstanceFromPool($values); // create criteria based on pk values $criteria = $values->buildPkeyCriteria(); } else { // it's a primary key, or an array of pks $criteria = new Criteria(UserRolePeer::DATABASE_NAME); // primary key is composite; we therefore, expect // the primary key passed to be an array of pkey values if (count($values) == count($values, COUNT_RECURSIVE)) { // array is not multi-dimensional $values = array($values); } foreach ($values as $value) { $criterion = $criteria->getNewCriterion(UserRolePeer::USER_ID, $value[0]); $criterion->addAnd($criteria->getNewCriterion(UserRolePeer::ROLE_KEY, $value[1])); $criteria->addOr($criterion); // we can invalidate the cache for this single PK UserRolePeer::removeInstanceFromPool($value); } } // Set the correct dbName $criteria->setDbName(UserRolePeer::DATABASE_NAME); $affectedRows = 0; // initialize var to track total num of affected rows try { // use transaction because $criteria could contain info // for more than one table or we could emulating ON DELETE CASCADE, etc. $con->beginTransaction(); $affectedRows += BasePeer::doDelete($criteria, $con); UserRolePeer::clearRelatedInstancePool(); $con->commit(); return $affectedRows; } catch (Exception $e) { $con->rollBack(); throw $e; } }
public static function clearMemory() { accessControlPeer::clearInstancePool(); kuserPeer::clearInstancePool(); kshowPeer::clearInstancePool(); entryPeer::clearInstancePool(); // kvotePeer::clearInstancePool(); // commentPeer::clearInstancePool(); // flagPeer::clearInstancePool(); // favoritePeer::clearInstancePool(); // KshowKuserPeer::clearInstancePool(); // MailJobPeer::clearInstancePool(); SchedulerPeer::clearInstancePool(); SchedulerWorkerPeer::clearInstancePool(); SchedulerStatusPeer::clearInstancePool(); SchedulerConfigPeer::clearInstancePool(); ControlPanelCommandPeer::clearInstancePool(); BatchJobPeer::clearInstancePool(); // PriorityGroupPeer::clearInstancePool(); BulkUploadResultPeer::clearInstancePool(); // blockedEmailPeer::clearInstancePool(); // conversionPeer::clearInstancePool(); // flickrTokenPeer::clearInstancePool(); PuserKuserPeer::clearInstancePool(); // PuserRolePeer::clearInstancePool(); PartnerPeer::clearInstancePool(); // WidgetLogPeer::clearInstancePool(); // adminKuserPeer::clearInstancePool(); // notificationPeer::clearInstancePool(); moderationPeer::clearInstancePool(); moderationFlagPeer::clearInstancePool(); roughcutEntryPeer::clearInstancePool(); // widgetPeer::clearInstancePool(); uiConfPeer::clearInstancePool(); // PartnerStatsPeer::clearInstancePool(); // PartnerActivityPeer::clearInstancePool(); ConversionProfilePeer::clearInstancePool(); // ConversionParamsPeer::clearInstancePool(); // KceInstallationErrorPeer::clearInstancePool(); FileSyncPeer::clearInstancePool(); accessControlPeer::clearInstancePool(); mediaInfoPeer::clearInstancePool(); assetParamsPeer::clearInstancePool(); assetParamsOutputPeer::clearInstancePool(); assetPeer::clearInstancePool(); conversionProfile2Peer::clearInstancePool(); flavorParamsConversionProfilePeer::clearInstancePool(); categoryPeer::clearInstancePool(); syndicationFeedPeer::clearInstancePool(); TrackEntryPeer::clearInstancePool(); // SystemUserPeer::clearInstancePool(); StorageProfilePeer::clearInstancePool(); // EmailIngestionProfilePeer::clearInstancePool(); UploadTokenPeer::clearInstancePool(); // invalidSessionPeer::clearInstancePool(); DynamicEnumPeer::clearInstancePool(); UserLoginDataPeer::clearInstancePool(); PermissionPeer::clearInstancePool(); UserRolePeer::clearInstancePool(); PermissionItemPeer::clearInstancePool(); PermissionToPermissionItemPeer::clearInstancePool(); KuserToUserRolePeer::clearInstancePool(); $pluginInstances = KalturaPluginManager::getPluginInstances('IKalturaMemoryCleaner'); foreach ($pluginInstances as $pluginInstance) { $pluginInstance->cleanMemory(); } if (function_exists('gc_collect_cycles')) { // php 5.3 and above gc_collect_cycles(); } }
$newPartnerRoles[] = $newRole; } if (!$dryRun) { foreach ($newPartnerRoles as $newRole) { KalturaLog::log('Saving role name [' . $newRole->getName() . '] for partner [' . $partner->getId() . ']'); $newRole->save(); } } else { // dry run - no saving! foreach ($newPartnerRoles as $newRole) { KalturaLog::log('DRY RUN ONLY - Saving role name [' . $newRole->getName() . '] for partner [' . $partner->getId() . ']'); } } file_put_contents($lastPartnerFile, $lastPartner); } UserRolePeer::clearInstancePool(); $partners = getPartners($lastPartner, $partnerLimitEachLoop); } $msg = 'Done - ' . ($dryRun ? 'DRY RUN!' : 'REAL RUN!'); KalturaLog::log($msg); echo $msg; function getPartners($lastPartner, $partnerLimitEachLoop) { PartnerPeer::clearInstancePool(); $c = new Criteria(); $c->add(PartnerPeer::ID, $lastPartner, Criteria::GREATER_THAN); $c->addAscendingOrderByColumn(PartnerPeer::ID); $c->setLimit($partnerLimitEachLoop); PartnerPeer::setUseCriteriaFilter(false); $partners = PartnerPeer::doSelect($c); PartnerPeer::setUseCriteriaFilter(true);