Merge pull request #24998 from owncloud/issue-24994-allow-decrypting-user-0-only

Allow to decrypt user '0' files only
This commit is contained in:
Vincent Petry 2016-06-08 10:12:28 +02:00
commit b7935dcebd
3 changed files with 30 additions and 18 deletions

View File

@ -111,7 +111,8 @@ class DecryptAll extends Command {
$this->addArgument(
'user',
InputArgument::OPTIONAL,
'user for which you want to decrypt all files (optional)'
'user for which you want to decrypt all files (optional)',
''
);
}

View File

@ -80,7 +80,7 @@ class DecryptAll {
$this->input = $input;
$this->output = $output;
if (!empty($user) && $this->userManager->userExists($user) === false) {
if ($user !== '' && $this->userManager->userExists($user) === false) {
$this->output->writeln('User "' . $user . '" does not exist. Please check the username and try again');
return false;
}
@ -141,7 +141,7 @@ class DecryptAll {
$this->output->writeln("\n");
$userList = [];
if (empty($user)) {
if ($user === '') {
$fetchUsersProgress = new ProgressBar($this->output);
$fetchUsersProgress->setFormat(" %message% \n [%bar%]");

View File

@ -86,13 +86,25 @@ class DecryptAllTest extends TestCase {
$this->invokePrivate($this->instance, 'output', [$this->outputInterface]);
}
/**
* @dataProvider dataTrueFalse
* @param bool $prepareResult
*/
public function testDecryptAll($prepareResult, $user) {
public function dataDecryptAll() {
return [
[true, 'user1', true],
[false, 'user1', true],
[true, '0', true],
[false, '0', true],
[true, '', false],
];
}
if (!empty($user)) {
/**
* @dataProvider dataDecryptAll
* @param bool $prepareResult
* @param string $user
* @param bool $userExistsChecked
*/
public function testDecryptAll($prepareResult, $user, $userExistsChecked) {
if ($userExistsChecked) {
$this->userManager->expects($this->once())->method('userExists')->willReturn(true);
} else {
$this->userManager->expects($this->never())->method('userExists');
@ -125,15 +137,6 @@ class DecryptAllTest extends TestCase {
$instance->decryptAll($this->inputInterface, $this->outputInterface, $user);
}
public function dataTrueFalse() {
return [
[true, 'user1'],
[false, 'user1'],
[true, ''],
[true, null]
];
}
/**
* test decrypt all call with a user who doesn't exists
*/
@ -147,8 +150,16 @@ class DecryptAllTest extends TestCase {
);
}
public function dataTrueFalse() {
return [
[true],
[false],
];
}
/**
* @dataProvider dataTrueFalse
* @param bool $success
*/
public function testPrepareEncryptionModules($success) {