コード例 #1
0
 /**
  * Method perform a DELETE on the database, given a UserLoginData or Criteria object OR a primary key value.
  *
  * @param      mixed $values Criteria or UserLoginData 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(UserLoginDataPeer::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.
         UserLoginDataPeer::clearInstancePool();
         // rename for clarity
         $criteria = clone $values;
     } elseif ($values instanceof UserLoginData) {
         // it's a model object
         // invalidate the cache for this single object
         UserLoginDataPeer::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(UserLoginDataPeer::ID, (array) $values, Criteria::IN);
         // invalidate the cache for this object(s)
         foreach ((array) $values as $singleval) {
             UserLoginDataPeer::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);
         UserLoginDataPeer::clearRelatedInstancePool();
         $con->commit();
         return $affectedRows;
     } catch (PropelException $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();
     }
 }
コード例 #3
0
ファイル: UserServiceTest.php プロジェクト: richhl/kalturaCE
 /**
  * Tests UserService->deleteAction()
  */
 public function testDeleteAction()
 {
     // create a new user
     $this->startSession(KalturaSessionType::ADMIN, null);
     $newUser = $this->createUser(true, true, __FUNCTION__);
     $addedUser = $this->addUser($newUser);
     $this->assertType('KalturaUser', $addedUser);
     // try to delete with user ks - should fail
     $this->startSession(KalturaSessionType::USER, null);
     $exceptionThrown = false;
     try {
         $this->client->user->delete($newUser->id);
     } catch (Exception $e) {
         $exceptionThrown = $e;
     }
     $this->checkException($exceptionThrown, 'SERVICE_FORBIDDEN');
     // check that can get user
     $this->startSession(KalturaSessionType::ADMIN, null);
     $getUser = $this->client->user->get($newUser->id);
     $this->assertType('KalturaUser', $getUser);
     $this->assertEquals(KalturaUserStatus::ACTIVE, $getUser->status);
     // check delete user with admin ks
     $deletedUser = $this->client->user->delete($newUser->id);
     $this->assertEquals(KalturaUserStatus::DELETED, $deletedUser->status);
     // delete user -> check no get
     $exceptionThrown = false;
     try {
         $this->client->user->get($newUser->id);
     } catch (Exception $e) {
         $exceptionThrown = $e;
     }
     $this->checkException($exceptionThrown, 'INVALID_USER_ID');
     // delete user -> check no list with and without filter
     $userList = $this->client->user->listAction();
     foreach ($userList->objects as $user) {
         if ($user->id == $newUser->id) {
             $this->fail('user->list returned a deleted user!');
         }
     }
     $userFilter = new KalturaUserFilter();
     $userFilter->idEqual = $newUser->id;
     $userList = $this->client->user->listAction($userFilter);
     $this->assertEquals(0, count($userList->objects));
     $this->assertEquals(0, $userList->totalCount);
     // check that can add a new user with same id
     $addedUser = $this->addUser($newUser);
     $this->assertType('KalturaUser', $addedUser);
     $this->assertEquals($newUser->id, $addedUser->id);
     // delete user from one partner only
     $this->startSession(KalturaSessionType::ADMIN, null);
     $this->startSession2(KalturaSessionType::ADMIN, null);
     $newUser = $this->createUser(false, true, __FUNCTION__);
     $createdUser1 = $this->addUser($newUser);
     $this->assertType('KalturaUser', $createdUser1);
     $newUser->isAdmin = false;
     // make the user not admin on the 2nd partner
     $createdUser2 = $this->addUser2($newUser);
     $this->assertType('KalturaUser', $createdUser2);
     $this->assertEquals(self::TEST_PARTNER_ID, $createdUser1->partnerId);
     $this->assertEquals(self::TEST_PARTNER_ID_2, $createdUser2->partnerId);
     $deletedUser = $this->client->user->delete($newUser->id);
     $this->assertEquals(KalturaUserStatus::DELETED, $deletedUser->status);
     $exceptionThrown = false;
     try {
         $this->client->user->get($newUser->id);
     } catch (Exception $e) {
         $exceptionThrown = $e;
     }
     $this->checkException($exceptionThrown, 'INVALID_USER_ID');
     $getUser2 = $this->client2->user->get($newUser->id);
     $this->assertEquals($createdUser2, $getUser2);
     $this->assertEquals(self::TEST_PARTNER_ID_2, $getUser2->partnerId);
     $this->assertEquals($newUser->id, $getUser2->id);
     // create user with login id on 2 partners
     $newUser = $this->createUser(true, false, __FUNCTION__);
     $createdUser1 = $this->addUser($newUser);
     $this->assertType('KalturaUser', $createdUser1);
     $newUser->isAdmin = true;
     // make the user admin on the 2nd partner
     $createdUser2 = $this->addUser2($newUser);
     $this->assertType('KalturaUser', $createdUser2);
     $this->assertEquals(self::TEST_PARTNER_ID, $createdUser1->partnerId);
     $this->assertEquals(self::TEST_PARTNER_ID_2, $createdUser2->partnerId);
     // check that login data exists
     $dbUser = kuserPeer::getKuserByPartnerAndUid(self::TEST_PARTNER_ID, $newUser->id);
     $loginDataId = $dbUser->getLoginDataId();
     $loginData = UserLoginDataPeer::retrieveByPK($loginDataId);
     $this->assertNotNull($loginData);
     // delete from 1st partner and verify that login data still exists
     $this->client->user->delete($newUser->id);
     $loginData = UserLoginDataPeer::retrieveByPK($loginDataId);
     $this->assertNotNull($loginData);
     // verify that user now logs in to the 2nd partner
     $newClient = $this->getClient(null);
     $ks = $newClient->user->loginByLoginId($newUser->email, $newUser->password);
     $this->assertNotNull($ks);
     $ks = kSessionUtils::crackKs($ks);
     $this->assertNotNull($ks);
     $this->assertEquals(self::TEST_PARTNER_ID_2, $ks->partner_id);
     // delete user with login id when it's the last one
     $this->client2->user->delete($newUser->id);
     UserLoginDataPeer::clearInstancePool();
     $loginData = UserLoginDataPeer::retrieveByPK($loginDataId);
     $this->assertNull($loginData);
 }
コード例 #4
0
                KalturaLog::log('User [' . $user->getId() . '] has no login data' . PHP_EOL);
            }
            KalturaLog::log('Saving new kuser with the following parameters: ' . PHP_EOL);
            KalturaLog::log(print_r($user, true));
            $user->save();
            // save
        } else {
            KalturaLog::log('DRY RUN - records are not being saved: ' . PHP_EOL);
            KalturaLog::log('New user_login_data with the following parameters: ' . PHP_EOL);
            KalturaLog::log(print_r($new_login_data, true));
            KalturaLog::log('Newkuser with the following parameters (login_data_id unknown): ' . PHP_EOL);
            KalturaLog::log(print_r($user, true));
        }
        file_put_contents($lastUserFile, $lastUser);
    }
    UserLoginDataPeer::clearInstancePool();
    $users = getUsers($lastUser, $userLimitEachLoop);
}
$msg = 'Done - ' . ($dryRun ? 'DRY RUN!' : 'REAL RUN!');
KalturaLog::log($msg);
echo $msg;
function getUsers($lastUser, $userLimitEachLoop)
{
    kuserPeer::clearInstancePool();
    $c = new Criteria();
    $c->add(kuserPeer::ID, $lastUser, Criteria::GREATER_THAN);
    $c->addAscendingOrderByColumn(kuserPeer::ID);
    $c->setLimit($userLimitEachLoop);
    kuserPeer::setUseCriteriaFilter(false);
    $users = kuserPeer::doSelect($c);
    kuserPeer::setUseCriteriaFilter(true);