From 53bb89824deaf97095acf6bcc2997aa7141dd573 Mon Sep 17 00:00:00 2001 From: Bjoern Schiessle Date: Mon, 12 Aug 2013 17:25:27 +0200 Subject: [PATCH] check if some encrypted files are left after the app was disabled and warn the user --- apps/files/index.php | 1 + apps/files/js/files.js | 14 ++++++++++++++ apps/files/templates/index.php | 1 + lib/public/util.php | 8 ++++++++ lib/util.php | 17 +++++++++++++++++ settings/personal.php | 8 +------- 6 files changed, 42 insertions(+), 7 deletions(-) diff --git a/apps/files/index.php b/apps/files/index.php index 2f00539150..57171ac3b5 100644 --- a/apps/files/index.php +++ b/apps/files/index.php @@ -143,5 +143,6 @@ if ($needUpgrade) { $tmpl->assign('usedSpacePercent', (int)$storageInfo['relative']); $tmpl->assign('isPublic', false); $tmpl->assign('publicUploadEnabled', $publicUploadEnabled); + $tmpl->assign("encryptedFiles", \OCP\Util::encryptedFiles()); $tmpl->printPage(); } diff --git a/apps/files/js/files.js b/apps/files/js/files.js index 98fc53b71a..d6886fc17e 100644 --- a/apps/files/js/files.js +++ b/apps/files/js/files.js @@ -81,9 +81,23 @@ Files={ if (usedSpacePercent > 90) { OC.Notification.show(t('files', 'Your storage is almost full ({usedSpacePercent}%)', {usedSpacePercent: usedSpacePercent})); } + }, + + displayEncryptionWarning: function() { + + if (!OC.Notification.isHidden()) { + return; + } + + var encryptedFiles = $('#encryptedFiles').val(); + if (encryptedFiles === '1') { + OC.Notification.show(t('files_encryption', 'Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files.', "www.schiessle.org")); + return; + } } }; $(document).ready(function() { + Files.displayEncryptionWarning(); Files.bindKeyboardShortcuts(document, jQuery); $('#fileList tr').each(function(){ //little hack to set unescape filenames in attribute diff --git a/apps/files/templates/index.php b/apps/files/templates/index.php index e073160936..72bc1e937c 100644 --- a/apps/files/templates/index.php +++ b/apps/files/templates/index.php @@ -121,3 +121,4 @@ + diff --git a/lib/public/util.php b/lib/public/util.php index 693805946e..b33f07b55e 100644 --- a/lib/public/util.php +++ b/lib/public/util.php @@ -122,6 +122,14 @@ class Util { return(\OC_Util::formatDate( $timestamp, $dateOnly )); } + /** + * @brief check if some encrypted files are stored + * @return bool + */ + public static function encryptedFiles() { + return \OC_Util::encryptedFiles(); + } + /** * @brief Creates an absolute url * @param string $app app diff --git a/lib/util.php b/lib/util.php index 2586ad2832..cc432af62a 100755 --- a/lib/util.php +++ b/lib/util.php @@ -312,6 +312,23 @@ class OC_Util { return $errors; } + /** + * @brief check if there are still some encrypted files stored + * @return boolean + */ + public static function encryptedFiles() { + //check if encryption was enabled in the past + $encryptedFiles = false; + if (OC_App::isEnabled('files_encryption') === false) { + $view = new OC\Files\View('/' . OCP\User::getUser()); + if ($view->file_exists('/files_encryption/keyfiles')) { + $encryptedFiles = true; + } + } + + return $encryptedFiles; + } + /** * Check for correct file permissions of data directory * @return array arrays with error messages and hints diff --git a/settings/personal.php b/settings/personal.php index bad19ba03c..e69898f6f8 100644 --- a/settings/personal.php +++ b/settings/personal.php @@ -25,13 +25,7 @@ $userLang=OC_Preferences::getValue( OC_User::getUser(), 'core', 'lang', OC_L10N: $languageCodes=OC_L10N::findAvailableLanguages(); //check if encryption was enabled in the past -$enableDecryptAll = false; -if (OC_App::isEnabled('files_encryption') === false) { - $view = new OC\Files\View('/'.OCP\User::getUser()); - if($view->file_exists('/files_encryption/keyfiles')) { - $enableDecryptAll = true; - } -} +$enableDecryptAll = OC_Util::encryptedFiles(); // array of common languages $commonlangcodes = array(