X Tutup
Skip to content

Commit 6c9e642

Browse files
committed
Cleaner code for CI
1 parent 4854e94 commit 6c9e642

File tree

3 files changed

+64
-37
lines changed

3 files changed

+64
-37
lines changed

apps/files_external/appinfo/Migrations/Version20210511082903.php

Lines changed: 36 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -44,50 +44,63 @@ public function run(IOutput $out) {
4444
$configId = $storageConfig->getId();
4545
$changedOptions = [];
4646
foreach ($backendOptions as $key => $value) {
47-
$realValue = $value;
48-
if ($key === 'password') {
49-
try {
50-
$realValue = $this->crypto->decrypt($value);
51-
} catch (\Exception $ex) {
52-
$out->warning("Storage configuration with id = {$configId}: Cannot decrypt value for key {$key}, assuming unencrypted value");
53-
}
54-
}
55-
47+
$realValue = $this->conditionalDecrypt($key, $value, $out, $configId);
5648
if ($this->shouldBeEncrypted($storageConfig, $key)) {
5749
$changedOptions[$key] = $realValue;
5850
}
5951
}
6052
if ($changedOptions) {
61-
// need to force a fake password change to update the password later
62-
foreach ($changedOptions as $key => $value) {
63-
$storageConfig->setBackendOption($key, "{$value}0");
64-
}
65-
$this->storageService->updateStorage($storageConfig);
66-
// re-insert the old password so it will be encrypted now
67-
foreach ($changedOptions as $key => $value) {
68-
$storageConfig->setBackendOption($key, $value);
69-
}
70-
$this->storageService->updateStorage($storageConfig);
53+
$this->updateConfig($storageConfig, $changedOptions);
7154
$out->info("Storage configuration with id = {$configId} updated correctly");
7255
}
7356
}
7457
}
7558

59+
private function conditionalDecrypt($key, $value, IOutput $out, $configId) {
60+
// only attempt to decrypt the "password" key
61+
if ($key === 'password') {
62+
try {
63+
return $this->crypto->decrypt($value);
64+
} catch (\Exception $ex) {
65+
$out->warning("Storage configuration with id = {$configId}: Cannot decrypt value for key {$key}, assuming unencrypted value");
66+
}
67+
} else {
68+
return $value;
69+
}
70+
}
71+
7672
private function shouldBeEncrypted($storageConfig, $key) {
7773
$backend = $storageConfig->getBackend();
7874
$backendParameters = $backend->getParameters();
7975

8076
$auth = $storageConfig->getAuthMechanism();
8177
$authParameters = $auth->getParameters();
8278

83-
if (isset($backendParameters[$key]) && $backendParameters[$key]->getType() === DefinitionParameter::VALUE_PASSWORD) {
79+
if (
80+
(
81+
isset($backendParameters[$key]) &&
82+
$backendParameters[$key]->getType() === DefinitionParameter::VALUE_PASSWORD
83+
) || (
84+
isset($authParameters[$key]) &&
85+
$authParameters[$key]->getType() === DefinitionParameter::VALUE_PASSWORD
86+
)
87+
) {
8488
return true;
8589
}
90+
return false;
91+
}
8692

87-
if (isset($authParameters[$key]) && $authParameters[$key]->getType() === DefinitionParameter::VALUE_PASSWORD) {
88-
return true;
93+
private function updateConfig(IStorageConfig $storageConfig, $changedOptions) {
94+
// need to force a fake password change to update the password later
95+
foreach ($changedOptions as $key => $value) {
96+
$storageConfig->setBackendOption($key, "{$value}0");
8997
}
90-
return false;
98+
$this->storageService->updateStorage($storageConfig);
99+
// re-insert the old password so it will be encrypted now
100+
foreach ($changedOptions as $key => $value) {
101+
$storageConfig->setBackendOption($key, $value);
102+
}
103+
$this->storageService->updateStorage($storageConfig);
91104
}
92105

93106
/**

apps/files_external/lib/Command/ListCommand.php

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -335,9 +335,15 @@ private function shouldHideKey(IStorageConfig $mount, $key) {
335335

336336
$auth = $mount->getAuthMechanism();
337337
$authParameters = $auth->getParameters();
338-
if (isset($backendParameters[$key]) && $backendParameters[$key]->getType() === DefinitionParameter::VALUE_PASSWORD) {
339-
return true;
340-
} elseif (isset($authParameters[$key]) && $authParameters[$key]->getType() === DefinitionParameter::VALUE_PASSWORD) {
338+
if (
339+
(
340+
isset($backendParameters[$key]) &&
341+
$backendParameters[$key]->getType() === DefinitionParameter::VALUE_PASSWORD
342+
) || (
343+
isset($authParameters[$key]) &&
344+
$authParameters[$key]->getType() === DefinitionParameter::VALUE_PASSWORD
345+
)
346+
) {
341347
return true;
342348
}
343349
return false;

lib/private/Files/External/Service/StoragesService.php

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828

2929
use OC\Files\Filesystem;
3030
use OC\Files\External\StorageConfig;
31-
31+
use OCP\Files\External\DefinitionParameter
3232
use OCP\Files\External\IStorageConfig;
3333
use OCP\Files\External\Backend\Backend;
3434
use OCP\Files\External\Auth\AuthMechanism;
@@ -573,9 +573,15 @@ private function getStorageId(IStorageConfig $storageConfig) {
573573
private function encryptIfPassword(Backend $backend, AuthMechanism $auth, $key, $value) {
574574
$backendParameters = $backend->getParameters();
575575
$authParameters = $auth->getParameters();
576-
if (isset($backendParameters[$key]) && $backendParameters[$key]->getType() === \OCP\Files\External\DefinitionParameter::VALUE_PASSWORD) {
577-
$value = $this->crypto->encrypt($value);
578-
} elseif (isset($authParameters[$key]) && $authParameters[$key]->getType() === \OCP\Files\External\DefinitionParameter::VALUE_PASSWORD) {
576+
if (
577+
(
578+
isset($backendParameters[$key]) &&
579+
$backendParameters[$key]->getType() === DefinitionParameter::VALUE_PASSWORD
580+
) || (
581+
isset($authParameters[$key]) &&
582+
$authParameters[$key]->getType() === DefinitionParameter::VALUE_PASSWORD
583+
)
584+
) {
579585
$value = $this->crypto->encrypt($value);
580586
}
581587
return $value;
@@ -584,13 +590,15 @@ private function encryptIfPassword(Backend $backend, AuthMechanism $auth, $key,
584590
private function decryptIfPassword(Backend $backend, AuthMechanism $auth, $key, $value) {
585591
$backendParameters = $backend->getParameters();
586592
$authParameters = $auth->getParameters();
587-
if (isset($backendParameters[$key]) && $backendParameters[$key]->getType() === \OCP\Files\External\DefinitionParameter::VALUE_PASSWORD) {
588-
try {
589-
$value = $this->crypto->decrypt($value);
590-
} catch (\Exception $e) {
591-
// assume the value isn't encrypted
592-
}
593-
} elseif (isset($authParameters[$key]) && $authParameters[$key]->getType() === \OCP\Files\External\DefinitionParameter::VALUE_PASSWORD) {
593+
if (
594+
(
595+
isset($backendParameters[$key]) &&
596+
$backendParameters[$key]->getType() === DefinitionParameter::VALUE_PASSWORD
597+
) || (
598+
isset($authParameters[$key]) &&
599+
$authParameters[$key]->getType() === DefinitionParameter::VALUE_PASSWORD
600+
)
601+
) {
594602
try {
595603
$value = $this->crypto->decrypt($value);
596604
} catch (\Exception $e) {

0 commit comments

Comments
 (0)
X Tutup