Make getDefaultModuleId public and get module protected

This commit is contained in:
Joas Schilling 2015-04-20 11:11:52 +02:00
parent 4e97228cde
commit d600955a51
8 changed files with 34 additions and 60 deletions

View File

@ -49,16 +49,12 @@ class ListModules extends Base {
protected function execute(InputInterface $input, OutputInterface $output) {
$encryptionModules = $this->encryptionManager->getEncryptionModules();
$defaultEncryptionModuleId = '';
try {
$defaultEncryptionModule = $this->encryptionManager->getDefaultEncryptionModule();
$defaultEncryptionModuleId = $defaultEncryptionModule->getId();
} catch (\Exception $e) {}
$defaultEncryptionModuleId = $this->encryptionManager->getDefaultEncryptionModuleId();
$encModules = array();
foreach ($encryptionModules as $module) {
$encModules[$module->getId()]['displayName'] = $module->getDisplayName();
$encModules[$module->getId()]['default'] .= $module->getId() === $defaultEncryptionModuleId;
$encModules[$module['id']]['displayName'] = $module['displayName'];
$encModules[$module['id']]['default'] .= $module['id'] === $defaultEncryptionModuleId;
}
$this->writeModuleList($input, $output, $encModules);
}
@ -69,8 +65,7 @@ class ListModules extends Base {
* @param array $items
*/
protected function writeModuleList(InputInterface $input, OutputInterface $output, $items) {
switch ($input->getOption('output')) {
case 'plain':
if ($input->getOption('output') === 'plain') {
array_walk($items, function(&$item) {
if (!$item['default']) {
$item = $item['displayName'];
@ -78,11 +73,8 @@ class ListModules extends Base {
$item = $item['displayName'] . ' [default*]';
}
});
// no break;
default:
parent::writeArrayInOutputFormat($input, $output, $items);
break;
}
parent::writeArrayInOutputFormat($input, $output, $items);
}
}

View File

@ -56,22 +56,13 @@ class SetDefaultModule extends Command {
protected function execute(InputInterface $input, OutputInterface $output) {
$moduleId = $input->getArgument('module');
$currentDefaultModuleId = '';
try {
$currentDefaultModule = $this->encryptionManager->getDefaultEncryptionModule();
$currentDefaultModuleId = $currentDefaultModule->getId();
} catch (\Exception $e) {}
if ($moduleId === $currentDefaultModuleId) {
if ($moduleId === $this->encryptionManager->getDefaultEncryptionModuleId()) {
$output->writeln('"' . $moduleId . '"" is already the default module');
} else if ($this->encryptionManager->setDefaultEncryptionModule($moduleId)) {
$output->writeln('Set default module to "' . $moduleId . '"');
} else {
$output->writeln('The specified module "' . $moduleId . '" does not exist');
}
if ($moduleId === $currentDefaultModuleId) {
}
}
}

View File

@ -158,7 +158,7 @@ class Manager implements IManager {
* @return \OCP\Encryption\IEncryptionModule
* @throws Exceptions\ModuleDoesNotExistsException
*/
public function getDefaultEncryptionModule() {
protected function getDefaultEncryptionModule() {
$defaultModuleId = $this->getDefaultEncryptionModuleId();
if (!empty($defaultModuleId)) {
if (isset($this->encryptionModules[$defaultModuleId])) {
@ -183,12 +183,12 @@ class Manager implements IManager {
public function setDefaultEncryptionModule($moduleId) {
try {
$this->getEncryptionModule($moduleId);
$this->config->setAppValue('core', 'default_encryption_module', $moduleId);
return true;
} catch (\Exception $e) {
return false;
}
$this->config->setAppValue('core', 'default_encryption_module', $moduleId);
return true;
}
/**
@ -196,12 +196,8 @@ class Manager implements IManager {
*
* @return string
*/
protected function getDefaultEncryptionModuleId() {
try {
public function getDefaultEncryptionModuleId() {
return $this->config->getAppValue('core', 'default_encryption_module');
} catch (\Exception $e) {
return '';
}
}
public static function setupStorage() {

View File

@ -137,7 +137,7 @@ class Update {
$allFiles = array($path);
}
$encryptionModule = $this->encryptionManager->getDefaultEncryptionModule();
$encryptionModule = $this->encryptionManager->getEncryptionModule();
foreach ($allFiles as $file) {
$usersSharing = $this->file->getAccessList($file);

View File

@ -311,12 +311,10 @@ class Encryption extends Wrapper {
|| $mode === 'wb'
|| $mode === 'wb+'
) {
if (!empty($encryptionModuleId)) {
if ($encryptionEnabled) {
// if $encryptionModuleId is empty, the default module will be used
$encryptionModule = $this->encryptionManager->getEncryptionModule($encryptionModuleId);
$shouldEncrypt = $encryptionModule->shouldEncrypt($fullPath);
} elseif ($encryptionEnabled) {
$encryptionModule = $this->encryptionManager->getDefaultEncryptionModule();
$shouldEncrypt = $encryptionModule->shouldEncrypt($fullPath);
}
} else {
// only get encryption module if we found one in the header

View File

@ -78,13 +78,12 @@ interface IManager {
function getEncryptionModule($moduleId);
/**
* get default encryption module
* get default encryption module Id
*
* @return \OCP\Encryption\IEncryptionModule
* @throws ModuleDoesNotExistsException
* @return string
* @since 8.1.0
*/
public function getDefaultEncryptionModule();
public function getDefaultEncryptionModuleId();
/**
* set default encryption module Id

View File

@ -86,14 +86,10 @@ $backends = \OC::$server->getUserManager()->getBackends();
$externalBackends = (count($backends) > 1) ? true : false;
$template->assign('encryptionReady', \OC::$server->getEncryptionManager()->isReady());
$template->assign('externalBackendsEnabled', $externalBackends);
$encryptionModules = \OC::$server->getEncryptionManager()->getEncryptionModules();
try {
$defaultEncryptionModule = \OC::$server->getEncryptionManager()->getDefaultEncryptionModule();
$defaultEncryptionModuleId = $defaultEncryptionModule->getId();
} catch (Exception $e) {
$defaultEncryptionModuleId = null;
}
$encryptionModules = \OC::$server->getEncryptionManager()->getEncryptionModules();
$defaultEncryptionModuleId = \OC::$server->getEncryptionManager()->getDefaultEncryptionModuleId();
$encModulues = array();
foreach ($encryptionModules as $module) {
$encModulues[$module['id']]['displayName'] = $module['displayName'];

View File

@ -123,8 +123,10 @@ class ManagerTest extends TestCase {
$en0 = $this->manager->getEncryptionModule('ID0');
$this->assertEquals('ID0', $en0->getId());
$en0 = $this->manager->getDefaultEncryptionModule();
$en0 = \Test_Helper::invokePrivate($this->manager, 'getDefaultEncryptionModule');
$this->assertEquals('ID0', $en0->getId());
$this->assertEquals('ID0', $this->manager->getDefaultEncryptionModuleId());
}
public function testSetDefaultEncryptionModule() {
@ -143,7 +145,7 @@ class ManagerTest extends TestCase {
// Default module is the first we set
$defaultId = 'ID0';
$this->assertEquals('ID0', \Test_Helper::invokePrivate($this->manager, 'getDefaultEncryptionModuleId'));
$this->assertEquals('ID0', $this->manager->getDefaultEncryptionModuleId());
// Set to an existing module
$this->config->expects($this->once())
@ -151,11 +153,11 @@ class ManagerTest extends TestCase {
->with('core', 'default_encryption_module', 'ID1');
$this->assertTrue($this->manager->setDefaultEncryptionModule('ID1'));
$defaultId = 'ID1';
$this->assertEquals('ID1', \Test_Helper::invokePrivate($this->manager, 'getDefaultEncryptionModuleId'));
$this->assertEquals('ID1', $this->manager->getDefaultEncryptionModuleId());
// Set to an unexisting module
$this->assertFalse($this->manager->setDefaultEncryptionModule('ID2'));
$this->assertEquals('ID1', \Test_Helper::invokePrivate($this->manager, 'getDefaultEncryptionModuleId'));
$this->assertEquals('ID1', $this->manager->getDefaultEncryptionModuleId());
}
// /**