summaryrefslogtreecommitdiffstats
path: root/apps/files_encryption/ajax
diff options
context:
space:
mode:
authorFlorin Peter <github@florin-peter.de>2013-05-17 00:58:41 +0200
committerFlorin Peter <github@florin-peter.de>2013-05-17 00:58:41 +0200
commit42b4963dd010830d1a99666052ee2bfc7295249a (patch)
treeedb19185a47afe725211af2fbfb2487abaf90075 /apps/files_encryption/ajax
parent3793e4d2d6729f01a83c56d8f123226134f8c626 (diff)
downloadnextcloud-server-42b4963dd010830d1a99666052ee2bfc7295249a.tar.gz
nextcloud-server-42b4963dd010830d1a99666052ee2bfc7295249a.zip
moved enable and disable recovery to Helper class for unit tests
Diffstat (limited to 'apps/files_encryption/ajax')
-rw-r--r--apps/files_encryption/ajax/adminrecovery.php64
1 files changed, 2 insertions, 62 deletions
diff --git a/apps/files_encryption/ajax/adminrecovery.php b/apps/files_encryption/ajax/adminrecovery.php
index 0ab449709c3..dc13bc57c11 100644
--- a/apps/files_encryption/ajax/adminrecovery.php
+++ b/apps/files_encryption/ajax/adminrecovery.php
@@ -21,74 +21,14 @@ $recoveryKeyId = OC_Appconfig::getValue('files_encryption', 'recoveryKeyId');
if (isset($_POST['adminEnableRecovery']) && $_POST['adminEnableRecovery'] == 1){
- $view = new \OC\Files\View('/');
-
- if ($recoveryKeyId === null) {
- $recoveryKeyId = 'recovery_' . substr(md5(time()), 0, 8);
- \OC_Appconfig::setValue('files_encryption', 'recoveryKeyId', $recoveryKeyId);
- }
-
- if (!$view->is_dir('/owncloud_private_key')) {
- $view->mkdir('/owncloud_private_key');
- }
-
- if (
- (!$view->file_exists("/public-keys/" . $recoveryKeyId . ".public.key")
- || !$view->file_exists("/owncloud_private_key/" . $recoveryKeyId . ".private.key"))
- ) {
-
- $keypair = \OCA\Encryption\Crypt::createKeypair();
-
- \OC_FileProxy::$enabled = false;
-
- // Save public key
-
- if (!$view->is_dir('/public-keys')) {
- $view->mkdir('/public-keys');
- }
-
- $view->file_put_contents('/public-keys/' . $recoveryKeyId . '.public.key', $keypair['publicKey']);
-
- // Encrypt private key empthy passphrase
- $encryptedPrivateKey = \OCA\Encryption\Crypt::symmetricEncryptFileContent($keypair['privateKey'], $_POST['recoveryPassword']);
-
- // Save private key
- $view->file_put_contents('/owncloud_private_key/' . $recoveryKeyId . '.private.key', $encryptedPrivateKey);
-
- // create control file which let us check later on if the entered password was correct.
- $encryptedControlData = \OCA\Encryption\Crypt::keyEncrypt("ownCloud", $keypair['publicKey']);
- if (!$view->is_dir('/control-file')) {
- $view->mkdir('/control-file');
- }
- $view->file_put_contents('/control-file/controlfile.enc', $encryptedControlData);
-
- \OC_FileProxy::$enabled = true;
-
- // Set recoveryAdmin as enabled
- OC_Appconfig::setValue('files_encryption', 'recoveryAdminEnabled', 1);
-
- $return = true;
-
- } else { // get recovery key and check the password
- $util = new \OCA\Encryption\Util(new \OC_FilesystemView('/'), \OCP\User::getUser());
- $return = $util->checkRecoveryPassword($_POST['recoveryPassword']);
- if ($return) {
- OC_Appconfig::setValue('files_encryption', 'recoveryAdminEnabled', 1);
- }
- }
+ $return = \Helper::adminEnableRecovery($recoveryKeyId, $_POST['recoveryPassword']);
// Disable recoveryAdmin
} elseif (
isset($_POST['adminEnableRecovery'])
&& 0 == $_POST['adminEnableRecovery']
) {
- $util = new \OCA\Encryption\Util(new \OC_FilesystemView('/'), \OCP\User::getUser());
- $return = $util->checkRecoveryPassword($_POST['recoveryPassword']);
-
- if ($return) {
- // Set recoveryAdmin as disabled
- OC_Appconfig::setValue('files_encryption', 'recoveryAdminEnabled', 0);
- }
+ $return = \Helper::adminDisableRecovery($_POST['recoveryPassword']);
}
// Return success or failure