From 15534011f0e2fe98eb0995ba3b671c76ca12b534 Mon Sep 17 00:00:00 2001 From: Fabian Franz BSc Date: Sun, 15 Jul 2018 11:27:04 +0200 Subject: [PATCH] Nextcloud password: allow to set a separeate pw and allow no encryption (#2545) --- .../app/library/OPNsense/Backup/Nextcloud.php | 18 ++++++++++++++---- .../OPNsense/Backup/NextcloudSettings.xml | 3 +++ 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/src/opnsense/mvc/app/library/OPNsense/Backup/Nextcloud.php b/src/opnsense/mvc/app/library/OPNsense/Backup/Nextcloud.php index fc13aa10f..6b0208ffd 100644 --- a/src/opnsense/mvc/app/library/OPNsense/Backup/Nextcloud.php +++ b/src/opnsense/mvc/app/library/OPNsense/Backup/Nextcloud.php @@ -74,6 +74,13 @@ class Nextcloud extends Base implements IBackupProvider "help" => gettext("The app password which has been generated for you"), "value" => null ), + array( + "name" => "password_encryption", + "type" => "password", + "label" => gettext("Encryption Password (Optional)"), + "help" => gettext("A password to encrypt your configuration"), + "value" => null + ), array( "name" => "backupdir", "type" => "text", @@ -128,13 +135,16 @@ class Nextcloud extends Base implements IBackupProvider $username = (string)$nextcloud->user; $password = (string)$nextcloud->password; $backupdir = (string)$nextcloud->backupdir; + $crypto_password = (string)$nextcloud->password_encryption; $hostname = $config->system->hostname . '.' .$config->system->domain; $configname = 'config-' . $hostname . '-' . date("Y-m-d_H:i:s") . '.xml'; // backup source data to local strings (plain/encrypted) $confdata = file_get_contents('/conf/config.xml'); - $confdata_enc = chunk_split( - $this->encrypt($confdata, (string)$nextcloud->password) - ); + if (!empty($crypto_password)) { + $confdata = chunk_split( + $this->encrypt($confdata, $crypto_password) + ); + } try { $directories = $this->listFiles($url, $username, $password, '/'); if (!in_array("/$backupdir/", $directories)) { @@ -146,7 +156,7 @@ class Nextcloud extends Base implements IBackupProvider $password, $backupdir, $configname, - $confdata_enc + $confdata ); // do not list directories return array_filter( diff --git a/src/opnsense/mvc/app/models/OPNsense/Backup/NextcloudSettings.xml b/src/opnsense/mvc/app/models/OPNsense/Backup/NextcloudSettings.xml index b9743a5fe..cff613b78 100644 --- a/src/opnsense/mvc/app/models/OPNsense/Backup/NextcloudSettings.xml +++ b/src/opnsense/mvc/app/models/OPNsense/Backup/NextcloudSettings.xml @@ -41,6 +41,9 @@ + + N + Y /[a-z0-9\-]+/i