Use DI for IAppManager to encryption migration
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
This commit is contained in:
parent
db1096bcfd
commit
99934134dc
|
@ -26,6 +26,7 @@ namespace OCA\Encryption;
|
||||||
|
|
||||||
|
|
||||||
use OC\Files\View;
|
use OC\Files\View;
|
||||||
|
use OCP\App\IAppManager;
|
||||||
use OCP\IConfig;
|
use OCP\IConfig;
|
||||||
use OCP\IDBConnection;
|
use OCP\IDBConnection;
|
||||||
use OCP\ILogger;
|
use OCP\ILogger;
|
||||||
|
@ -43,6 +44,8 @@ class Migration {
|
||||||
private $logger;
|
private $logger;
|
||||||
/** @var string*/
|
/** @var string*/
|
||||||
protected $installedVersion;
|
protected $installedVersion;
|
||||||
|
/** @var IAppManager */
|
||||||
|
protected $appManager;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param IConfig $config
|
* @param IConfig $config
|
||||||
|
@ -50,7 +53,7 @@ class Migration {
|
||||||
* @param IDBConnection $connection
|
* @param IDBConnection $connection
|
||||||
* @param ILogger $logger
|
* @param ILogger $logger
|
||||||
*/
|
*/
|
||||||
public function __construct(IConfig $config, View $view, IDBConnection $connection, ILogger $logger) {
|
public function __construct(IConfig $config, View $view, IDBConnection $connection, ILogger $logger, IAppManager $appManager) {
|
||||||
$this->view = $view;
|
$this->view = $view;
|
||||||
$this->view->disableCacheUpdate();
|
$this->view->disableCacheUpdate();
|
||||||
$this->connection = $connection;
|
$this->connection = $connection;
|
||||||
|
@ -58,6 +61,7 @@ class Migration {
|
||||||
$this->config = $config;
|
$this->config = $config;
|
||||||
$this->logger = $logger;
|
$this->logger = $logger;
|
||||||
$this->installedVersion = $this->config->getAppValue('files_encryption', 'installed_version', '-1');
|
$this->installedVersion = $this->config->getAppValue('files_encryption', 'installed_version', '-1');
|
||||||
|
$this->appManager = $appManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function finalCleanUp() {
|
public function finalCleanUp() {
|
||||||
|
@ -137,7 +141,7 @@ class Migration {
|
||||||
$path = '/files_encryption/keys';
|
$path = '/files_encryption/keys';
|
||||||
$this->renameFileKeys($user, $path);
|
$this->renameFileKeys($user, $path);
|
||||||
$trashPath = '/files_trashbin/keys';
|
$trashPath = '/files_trashbin/keys';
|
||||||
if (\OC_App::isEnabled('files_trashbin') && $this->view->is_dir($user . '/' . $trashPath)) {
|
if ($this->appManager->isEnabledForUser('files_trashbin') && $this->view->is_dir($user . '/' . $trashPath)) {
|
||||||
$this->renameFileKeys($user, $trashPath, true);
|
$this->renameFileKeys($user, $trashPath, true);
|
||||||
$this->view->deleteAll($trashPath);
|
$this->view->deleteAll($trashPath);
|
||||||
}
|
}
|
||||||
|
|
|
@ -203,13 +203,14 @@ class MigrationTest extends \Test\TestCase {
|
||||||
$this->createDummySystemWideKeys();
|
$this->createDummySystemWideKeys();
|
||||||
|
|
||||||
/** @var \PHPUnit_Framework_MockObject_MockObject|\OCA\Encryption\Migration $m */
|
/** @var \PHPUnit_Framework_MockObject_MockObject|\OCA\Encryption\Migration $m */
|
||||||
$m = $this->getMockBuilder('OCA\Encryption\Migration')
|
$m = $this->getMockBuilder(Migration::class)
|
||||||
->setConstructorArgs(
|
->setConstructorArgs(
|
||||||
[
|
[
|
||||||
\OC::$server->getConfig(),
|
\OC::$server->getConfig(),
|
||||||
new \OC\Files\View(),
|
new \OC\Files\View(),
|
||||||
\OC::$server->getDatabaseConnection(),
|
\OC::$server->getDatabaseConnection(),
|
||||||
$this->logger
|
$this->logger,
|
||||||
|
\OC::$server->getAppManager()
|
||||||
]
|
]
|
||||||
)->setMethods(['getSystemMountPoints'])->getMock();
|
)->setMethods(['getSystemMountPoints'])->getMock();
|
||||||
|
|
||||||
|
@ -366,7 +367,7 @@ class MigrationTest extends \Test\TestCase {
|
||||||
public function testUpdateDB() {
|
public function testUpdateDB() {
|
||||||
$this->prepareDB();
|
$this->prepareDB();
|
||||||
|
|
||||||
$m = new Migration(\OC::$server->getConfig(), new \OC\Files\View(), \OC::$server->getDatabaseConnection(), $this->logger);
|
$m = new Migration(\OC::$server->getConfig(), new \OC\Files\View(), \OC::$server->getDatabaseConnection(), $this->logger, \OC::$server->getAppManager());
|
||||||
$this->invokePrivate($m, 'installedVersion', ['0.7']);
|
$this->invokePrivate($m, 'installedVersion', ['0.7']);
|
||||||
$m->updateDB();
|
$m->updateDB();
|
||||||
|
|
||||||
|
@ -386,7 +387,7 @@ class MigrationTest extends \Test\TestCase {
|
||||||
$config->setAppValue('encryption', 'publicShareKeyId', 'wrong_share_id');
|
$config->setAppValue('encryption', 'publicShareKeyId', 'wrong_share_id');
|
||||||
$config->setUserValue(self::TEST_ENCRYPTION_MIGRATION_USER1, 'encryption', 'recoverKeyEnabled', '9');
|
$config->setUserValue(self::TEST_ENCRYPTION_MIGRATION_USER1, 'encryption', 'recoverKeyEnabled', '9');
|
||||||
|
|
||||||
$m = new Migration(\OC::$server->getConfig(), new \OC\Files\View(), \OC::$server->getDatabaseConnection(), $this->logger);
|
$m = new Migration(\OC::$server->getConfig(), new \OC\Files\View(), \OC::$server->getDatabaseConnection(), $this->logger, \OC::$server->getAppManager());
|
||||||
$this->invokePrivate($m, 'installedVersion', ['0.7']);
|
$this->invokePrivate($m, 'installedVersion', ['0.7']);
|
||||||
$m->updateDB();
|
$m->updateDB();
|
||||||
|
|
||||||
|
@ -455,7 +456,7 @@ class MigrationTest extends \Test\TestCase {
|
||||||
*/
|
*/
|
||||||
public function testUpdateFileCache() {
|
public function testUpdateFileCache() {
|
||||||
$this->prepareFileCache();
|
$this->prepareFileCache();
|
||||||
$m = new Migration(\OC::$server->getConfig(), new \OC\Files\View(), \OC::$server->getDatabaseConnection(), $this->logger);
|
$m = new Migration(\OC::$server->getConfig(), new \OC\Files\View(), \OC::$server->getDatabaseConnection(), $this->logger, \OC::$server->getAppManager());
|
||||||
$this->invokePrivate($m, 'installedVersion', ['0.7']);
|
$this->invokePrivate($m, 'installedVersion', ['0.7']);
|
||||||
self::invokePrivate($m, 'updateFileCache');
|
self::invokePrivate($m, 'updateFileCache');
|
||||||
|
|
||||||
|
@ -527,13 +528,14 @@ class MigrationTest extends \Test\TestCase {
|
||||||
->disableOriginalConstructor()->getMock();
|
->disableOriginalConstructor()->getMock();
|
||||||
$view->expects($this->any())->method('file_exists')->willReturn(true);
|
$view->expects($this->any())->method('file_exists')->willReturn(true);
|
||||||
|
|
||||||
$m = $this->getMockBuilder('OCA\Encryption\Migration')
|
$m = $this->getMockBuilder(Migration::class)
|
||||||
->setConstructorArgs(
|
->setConstructorArgs(
|
||||||
[
|
[
|
||||||
\OC::$server->getConfig(),
|
\OC::$server->getConfig(),
|
||||||
$view,
|
$view,
|
||||||
\OC::$server->getDatabaseConnection(),
|
\OC::$server->getDatabaseConnection(),
|
||||||
$this->logger
|
$this->logger,
|
||||||
|
\OC::$server->getAppManager()
|
||||||
]
|
]
|
||||||
)->setMethods(['getSystemMountPoints'])->getMock();
|
)->setMethods(['getSystemMountPoints'])->getMock();
|
||||||
|
|
||||||
|
|
|
@ -26,6 +26,7 @@ namespace OC\Settings\Controller;
|
||||||
|
|
||||||
use OC\Files\View;
|
use OC\Files\View;
|
||||||
use OCA\Encryption\Migration;
|
use OCA\Encryption\Migration;
|
||||||
|
use OCP\App\IAppManager;
|
||||||
use OCP\IDBConnection;
|
use OCP\IDBConnection;
|
||||||
use OCP\IL10N;
|
use OCP\IL10N;
|
||||||
use OCP\AppFramework\Controller;
|
use OCP\AppFramework\Controller;
|
||||||
|
@ -57,6 +58,9 @@ class EncryptionController extends Controller {
|
||||||
/** @var ILogger */
|
/** @var ILogger */
|
||||||
private $logger;
|
private $logger;
|
||||||
|
|
||||||
|
/** @var IAppManager */
|
||||||
|
private $appManager;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string $appName
|
* @param string $appName
|
||||||
* @param IRequest $request
|
* @param IRequest $request
|
||||||
|
@ -66,6 +70,7 @@ class EncryptionController extends Controller {
|
||||||
* @param IUserManager $userManager
|
* @param IUserManager $userManager
|
||||||
* @param View $view
|
* @param View $view
|
||||||
* @param ILogger $logger
|
* @param ILogger $logger
|
||||||
|
* @param IAppManager $appManager
|
||||||
*/
|
*/
|
||||||
public function __construct($appName,
|
public function __construct($appName,
|
||||||
IRequest $request,
|
IRequest $request,
|
||||||
|
@ -74,7 +79,8 @@ class EncryptionController extends Controller {
|
||||||
IDBConnection $connection,
|
IDBConnection $connection,
|
||||||
IUserManager $userManager,
|
IUserManager $userManager,
|
||||||
View $view,
|
View $view,
|
||||||
ILogger $logger) {
|
ILogger $logger,
|
||||||
|
IAppManager $appManager) {
|
||||||
parent::__construct($appName, $request);
|
parent::__construct($appName, $request);
|
||||||
$this->l10n = $l10n;
|
$this->l10n = $l10n;
|
||||||
$this->config = $config;
|
$this->config = $config;
|
||||||
|
@ -82,6 +88,7 @@ class EncryptionController extends Controller {
|
||||||
$this->view = $view;
|
$this->view = $view;
|
||||||
$this->userManager = $userManager;
|
$this->userManager = $userManager;
|
||||||
$this->logger = $logger;
|
$this->logger = $logger;
|
||||||
|
$this->appManager = $appManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -89,13 +96,15 @@ class EncryptionController extends Controller {
|
||||||
* @param View $view
|
* @param View $view
|
||||||
* @param IDBConnection $connection
|
* @param IDBConnection $connection
|
||||||
* @param ILogger $logger
|
* @param ILogger $logger
|
||||||
|
* @param IAppManager $appManager
|
||||||
* @return Migration
|
* @return Migration
|
||||||
*/
|
*/
|
||||||
protected function getMigration(IConfig $config,
|
protected function getMigration(IConfig $config,
|
||||||
View $view,
|
View $view,
|
||||||
IDBConnection $connection,
|
IDBConnection $connection,
|
||||||
ILogger $logger) {
|
ILogger $logger,
|
||||||
return new Migration($config, $view, $connection, $logger);
|
IAppManager $appManager) {
|
||||||
|
return new Migration($config, $view, $connection, $logger, $appManager);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -111,7 +120,7 @@ class EncryptionController extends Controller {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
||||||
$migration = $this->getMigration($this->config, $this->view, $this->connection, $this->logger);
|
$migration = $this->getMigration($this->config, $this->view, $this->connection, $this->logger, $this->appManager);
|
||||||
$migration->reorganizeSystemFolderStructure();
|
$migration->reorganizeSystemFolderStructure();
|
||||||
$migration->updateDB();
|
$migration->updateDB();
|
||||||
|
|
||||||
|
|
|
@ -24,6 +24,7 @@ namespace Tests\Settings\Controller;
|
||||||
use OC\DB\Connection;
|
use OC\DB\Connection;
|
||||||
use OC\Files\View;
|
use OC\Files\View;
|
||||||
use OC\Settings\Controller\EncryptionController;
|
use OC\Settings\Controller\EncryptionController;
|
||||||
|
use OCP\App\IAppManager;
|
||||||
use OCP\IConfig;
|
use OCP\IConfig;
|
||||||
use OCP\IL10N;
|
use OCP\IL10N;
|
||||||
use OCP\ILogger;
|
use OCP\ILogger;
|
||||||
|
@ -51,6 +52,8 @@ class EncryptionControllerTest extends TestCase {
|
||||||
private $view;
|
private $view;
|
||||||
/** @var ILogger */
|
/** @var ILogger */
|
||||||
private $logger;
|
private $logger;
|
||||||
|
/** @var IAppManager */
|
||||||
|
private $appManager;
|
||||||
/** @var EncryptionController */
|
/** @var EncryptionController */
|
||||||
private $encryptionController;
|
private $encryptionController;
|
||||||
|
|
||||||
|
@ -75,6 +78,8 @@ class EncryptionControllerTest extends TestCase {
|
||||||
->disableOriginalConstructor()->getMock();
|
->disableOriginalConstructor()->getMock();
|
||||||
$this->logger = $this->getMockBuilder('\\OCP\\ILogger')
|
$this->logger = $this->getMockBuilder('\\OCP\\ILogger')
|
||||||
->disableOriginalConstructor()->getMock();
|
->disableOriginalConstructor()->getMock();
|
||||||
|
$this->appManager = $this->getMockBuilder('\\OCP\\App\\IAppManager')
|
||||||
|
->disableOriginalConstructor()->getMock();
|
||||||
|
|
||||||
$this->encryptionController = $this->getMockBuilder('\\OC\\Settings\\Controller\\EncryptionController')
|
$this->encryptionController = $this->getMockBuilder('\\OC\\Settings\\Controller\\EncryptionController')
|
||||||
->setConstructorArgs([
|
->setConstructorArgs([
|
||||||
|
@ -86,6 +91,7 @@ class EncryptionControllerTest extends TestCase {
|
||||||
$this->userManager,
|
$this->userManager,
|
||||||
$this->view,
|
$this->view,
|
||||||
$this->logger,
|
$this->logger,
|
||||||
|
$this->appManager,
|
||||||
])
|
])
|
||||||
->setMethods(['getMigration'])
|
->setMethods(['getMigration'])
|
||||||
->getMock();
|
->getMock();
|
||||||
|
|
Loading…
Reference in New Issue