X Tutup
Skip to content

Commit 22f5e1c

Browse files
committed
Cleaner code for CI
1 parent 4854e94 commit 22f5e1c

File tree

3 files changed

+65
-37
lines changed

3 files changed

+65
-37
lines changed

apps/files_external/appinfo/Migrations/Version20210511082903.php

Lines changed: 37 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
use OCP\Migration\ISimpleMigration;
66
use OCP\Migration\IOutput;
77
use OCP\Files\External\Service\IGlobalStoragesService;
8+
use OCP\Files\External\IStorageConfig;
89
use OCP\Files\External\DefinitionParameter;
910
use OCP\Security\ICrypto;
1011
use OCP\IConfig;
@@ -44,50 +45,63 @@ public function run(IOutput $out) {
4445
$configId = $storageConfig->getId();
4546
$changedOptions = [];
4647
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-
48+
$realValue = $this->conditionalDecrypt($key, $value, $out, $configId);
5649
if ($this->shouldBeEncrypted($storageConfig, $key)) {
5750
$changedOptions[$key] = $realValue;
5851
}
5952
}
6053
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);
54+
$this->updateConfig($storageConfig, $changedOptions);
7155
$out->info("Storage configuration with id = {$configId} updated correctly");
7256
}
7357
}
7458
}
7559

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

8077
$auth = $storageConfig->getAuthMechanism();
8178
$authParameters = $auth->getParameters();
8279

83-
if (isset($backendParameters[$key]) && $backendParameters[$key]->getType() === DefinitionParameter::VALUE_PASSWORD) {
80+
if (
81+
(
82+
isset($backendParameters[$key]) &&
83+
$backendParameters[$key]->getType() === DefinitionParameter::VALUE_PASSWORD
84+
) || (
85+
isset($authParameters[$key]) &&
86+
$authParameters[$key]->getType() === DefinitionParameter::VALUE_PASSWORD
87+
)
88+
) {
8489
return true;
8590
}
91+
return false;
92+
}
8693

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

93107
/**

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