Example #1
0
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     // perform system reorganization
     $migration = new Migration();
     $output->writeln("Reorganize system folder structure");
     $migration->reorganizeSystemFolderStructure();
     $users = $input->getArgument('user_id');
     if (!empty($users)) {
         foreach ($users as $user) {
             if ($this->userManager->userExists($user)) {
                 $output->writeln("Migrating keys   <info>{$user}</info>");
                 $migration->reorganizeFolderStructureForUser($user);
             } else {
                 $output->writeln("<error>Unknown user {$user}</error>");
             }
         }
     } else {
         foreach ($this->userManager->getBackends() as $backend) {
             $name = get_class($backend);
             if ($backend instanceof IUserBackend) {
                 $name = $backend->getBackendName();
             }
             $output->writeln("Migrating keys for users on backend <info>{$name}</info>");
             $limit = 500;
             $offset = 0;
             do {
                 $users = $backend->getUsers('', $limit, $offset);
                 foreach ($users as $user) {
                     $output->writeln("   <info>{$user}</info>");
                     $migration->reorganizeFolderStructureForUser($user);
                 }
                 $offset += $limit;
             } while (count($users) >= $limit);
         }
     }
 }
Example #2
0
 public function testDuplicateDataMigration()
 {
     // create test table
     OC_DB::createDbFromStructure(__DIR__ . '/encryption_table.xml');
     // in case of duplicate entries we want to preserve 0 on migration status and 1 on recovery
     $data = array(array('user1', 'server-side', 1, 1), array('user1', 'server-side', 1, 0), array('user1', 'server-side', 0, 1), array('user1', 'server-side', 0, 0));
     foreach ($data as $d) {
         OC_DB::executeAudited('INSERT INTO `*PREFIX*encryption_test` values(?, ?, ?, ?)', $d);
     }
     // preform migration
     $migration = new Migration('encryption_test');
     $migration->dropTableEncryption();
     // assert
     $this->assertTableNotExist('encryption_test');
     $rec = \OC_Preferences::getValue('user1', 'files_encryption', 'recovery_enabled');
     $mig = \OC_Preferences::getValue('user1', 'files_encryption', 'migration_status');
     $this->assertEquals(1, $rec);
     $this->assertEquals(0, $mig);
 }
Example #3
0
<?php

use OCA\Files_Encryption\Migration;
$installedVersion = OCP\Config::getAppValue('files_encryption', 'installed_version');
if (version_compare($installedVersion, '0.6', '<')) {
    $m = new Migration();
    $m->dropTableEncryption();
}
Example #4
0
<?php

use OCA\Files_Encryption\Migration;
$installedVersion = OCP\Config::getAppValue('files_encryption', 'installed_version');
// Migration OC7 -> OC8
if (version_compare($installedVersion, '0.7', '<')) {
    $m = new Migration();
    $m->reorganizeFolderStructure();
}