summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjörn Schießle <bjoern@schiessle.org>2013-07-02 07:26:48 -0700
committerBjörn Schießle <bjoern@schiessle.org>2013-07-02 07:26:48 -0700
commit4d4484fac13dee4afbbab6c8fc4cca533800acdf (patch)
treefdb762d3f4babe00cf22f8b690bfa9bb7c3cb976
parentcec8384b1a07ea4e8f6ac8534636bd24d7019ae7 (diff)
parent2e6ebe1ab4e1ae6d0fb730e833c09ac4dbbb895c (diff)
downloadnextcloud-server-4d4484fac13dee4afbbab6c8fc4cca533800acdf.tar.gz
nextcloud-server-4d4484fac13dee4afbbab6c8fc4cca533800acdf.zip
Merge pull request #3870 from owncloud/reset_migration_status
introduce pre-disable-app hook and first usage in files_encryption
-rw-r--r--apps/files_encryption/appinfo/app.php3
-rw-r--r--apps/files_encryption/hooks/hooks.php13
-rwxr-xr-xapps/files_encryption/lib/helper.php9
-rw-r--r--lib/app.php1
4 files changed, 26 insertions, 0 deletions
diff --git a/apps/files_encryption/appinfo/app.php b/apps/files_encryption/appinfo/app.php
index d97811bb791..ca3f2554e5e 100644
--- a/apps/files_encryption/appinfo/app.php
+++ b/apps/files_encryption/appinfo/app.php
@@ -22,6 +22,9 @@ if (!OC_Config::getValue('maintenance', false)) {
// Filesystem related hooks
OCA\Encryption\Helper::registerFilesystemHooks();
+ // App manager related hooks
+ OCA\Encryption\Helper::registerAppHooks();
+
stream_wrapper_register('crypt', 'OCA\Encryption\Stream');
// check if we are logged in
diff --git a/apps/files_encryption/hooks/hooks.php b/apps/files_encryption/hooks/hooks.php
index e39e068cc5d..09153918940 100644
--- a/apps/files_encryption/hooks/hooks.php
+++ b/apps/files_encryption/hooks/hooks.php
@@ -543,4 +543,17 @@ class Hooks {
\OC_FileProxy::$enabled = $proxyStatus;
}
+
+ /**
+ * set migration status back to '0' so that all new files get encrypted
+ * if the app gets enabled again
+ * @param array $params contains the app ID
+ */
+ public static function preDisable($params) {
+ if ($params['app'] === 'files_encryption') {
+ $query = \OC_DB::prepare('UPDATE `*PREFIX*encryption` SET `migration_status`=0');
+ $query->execute();
+ }
+ }
+
}
diff --git a/apps/files_encryption/lib/helper.php b/apps/files_encryption/lib/helper.php
index a22c139c503..0d30dd8e7b5 100755
--- a/apps/files_encryption/lib/helper.php
+++ b/apps/files_encryption/lib/helper.php
@@ -63,6 +63,15 @@ class Helper {
}
/**
+ * @brief register app management related hooks
+ *
+ */
+ public static function registerAppHooks() {
+
+ \OCP\Util::connectHook('OC_App', 'pre_disable', 'OCA\Encryption\Hooks', 'preDisable');
+ }
+
+ /**
* @brief setup user for files_encryption
*
* @param Util $util
diff --git a/lib/app.php b/lib/app.php
index f974dd9f594..f9b1c5ca7b5 100644
--- a/lib/app.php
+++ b/lib/app.php
@@ -259,6 +259,7 @@ class OC_App{
*/
public static function disable( $app ) {
// check if app is a shipped app or not. if not delete
+ \OC_Hook::emit('OC_App', 'pre_disable', array('app' => $app));
OC_Appconfig::setValue( $app, 'enabled', 'no' );
// check if app is a shipped app or not. if not delete