Skip to content

Commit

Permalink
Uses early returns.
Browse files Browse the repository at this point in the history
To improve code readability.

Signed-off-by: Faraz Samapoor <fsa@adlas.at>
  • Loading branch information
Faraz Samapoor committed Aug 3, 2023
1 parent dd36d5f commit 4507123
Show file tree
Hide file tree
Showing 4 changed files with 59 additions and 49 deletions.
32 changes: 17 additions & 15 deletions apps/encryption/lib/Command/DisableMasterKey.php
Original file line number Diff line number Diff line change
Expand Up @@ -52,21 +52,23 @@ protected function execute(InputInterface $input, OutputInterface $output): int

if (!$isMasterKeyEnabled) {
$output->writeln('Master key already disabled');
} else {
$question = new ConfirmationQuestion(
'Warning: Only perform this operation for a fresh installations with no existing encrypted data! '
. 'There is no way to enable the master key again. '
. 'We strongly recommend to keep the master key, it provides significant performance improvements '
. 'and is easier to handle for both, users and administrators. '
. 'Do you really want to switch to per-user keys? (y/n) ', false);
if ($this->questionHelper->ask($input, $output, $question)) {
$this->config->setAppValue('encryption', 'useMasterKey', '0');
$output->writeln('Master key successfully disabled.');
} else {
$output->writeln('aborted.');
return self::FAILURE;
}
return self::SUCCESS;
}
return self::SUCCESS;

$question = new ConfirmationQuestion(
'Warning: Only perform this operation for a fresh installations with no existing encrypted data! '
. 'There is no way to enable the master key again. '
. 'We strongly recommend to keep the master key, it provides significant performance improvements '
. 'and is easier to handle for both, users and administrators. '
. 'Do you really want to switch to per-user keys? (y/n) ', false);

if ($this->questionHelper->ask($input, $output, $question)) {
$this->config->setAppValue('encryption', 'useMasterKey', '0');
$output->writeln('Master key successfully disabled.');
return self::SUCCESS;
}

$output->writeln('aborted.');
return self::FAILURE;
}
}
24 changes: 13 additions & 11 deletions apps/encryption/lib/Command/EnableMasterKey.php
Original file line number Diff line number Diff line change
Expand Up @@ -51,18 +51,20 @@ protected function execute(InputInterface $input, OutputInterface $output): int

if ($isAlreadyEnabled) {
$output->writeln('Master key already enabled');
} else {
$question = new ConfirmationQuestion(
'Warning: Only available for fresh installations with no existing encrypted data! '
return self::SUCCESS;
}

$question = new ConfirmationQuestion(
'Warning: Only available for fresh installations with no existing encrypted data! '
. 'There is also no way to disable it again. Do you want to continue? (y/n) ', false);
if ($this->questionHelper->ask($input, $output, $question)) {
$this->config->setAppValue('encryption', 'useMasterKey', '1');
$output->writeln('Master key successfully enabled.');
} else {
$output->writeln('aborted.');
return self::FAILURE;
}

if ($this->questionHelper->ask($input, $output, $question)) {
$this->config->setAppValue('encryption', 'useMasterKey', '1');
$output->writeln('Master key successfully enabled.');
return self::SUCCESS;
}
return self::SUCCESS;

$output->writeln('aborted.');
return self::FAILURE;
}
}
24 changes: 13 additions & 11 deletions apps/encryption/lib/Command/FixEncryptedVersion.php
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,11 @@ protected function execute(InputInterface $input, OutputInterface $output): int
$all = $input->getOption('all');
$pathOption = \trim(($input->getOption('path') ?? ''), '/');

if (!$user && !$all) {
$output->writeln("Either a user id or --all needs to be provided");
return self::FAILURE;
}

if ($user) {
if ($all) {
$output->writeln("Specifying a user id and --all are mutually exclusive");
Expand All @@ -105,18 +110,15 @@ protected function execute(InputInterface $input, OutputInterface $output): int
}

return $this->runForUser($user, $pathOption, $output);
} elseif ($all) {
$result = 0;
$this->userManager->callForSeenUsers(function (IUser $user) use ($pathOption, $output, &$result) {
$output->writeln("Processing files for " . $user->getUID());
$result = $this->runForUser($user->getUID(), $pathOption, $output);
return $result === 0;
});
return $result;
} else {
$output->writeln("Either a user id or --all needs to be provided");
return self::FAILURE;
}

$result = 0;
$this->userManager->callForSeenUsers(function (IUser $user) use ($pathOption, $output, &$result) {
$output->writeln("Processing files for " . $user->getUID());
$result = $this->runForUser($user->getUID(), $pathOption, $output);
return $result === 0;
});
return $result;
}

private function runForUser(string $user, string $pathOption, OutputInterface $output): int {
Expand Down
28 changes: 16 additions & 12 deletions apps/encryption/lib/Command/FixKeyLocation.php
Original file line number Diff line number Diff line change
Expand Up @@ -87,19 +87,23 @@ protected function execute(InputInterface $input, OutputInterface $output): int

$files = $this->getAllFiles($mountRootFolder);
foreach ($files as $file) {
if ($this->isKeyStoredForUser($user, $file)) {
if ($dryRun) {
$output->writeln("<info>" . $file->getPath() . "</info> needs migration");
} else {
$output->write("Migrating key for <info>" . $file->getPath() . "</info> ");
if ($this->copyKeyAndValidate($user, $file)) {
$output->writeln("<info>✓</info>");
} else {
$output->writeln("<fg=red>❌</>");
$output->writeln(" Failed to validate key for <error>" . $file->getPath() . "</error>, key will not be migrated");
}
}
if (!$this->isKeyStoredForUser($user, $file)) {
continue;
}

if ($dryRun) {
$output->writeln("<info>" . $file->getPath() . "</info> needs migration");
continue;
}

$output->write("Migrating key for <info>" . $file->getPath() . "</info> ");
if ($this->copyKeyAndValidate($user, $file)) {
$output->writeln("<info>✓</info>");
continue;
}

$output->writeln("<fg=red>❌</>");