[Pkg-owncloud-commits] [owncloud] 33/165: Delay initialization of the OC\Encryption\Update - introducing 'OC\Encryption\HookManager'

David Prévot taffit at moszumanska.debian.org
Thu Apr 23 04:06:20 UTC 2015


This is an automated email from the git hooks/post-receive script.

taffit pushed a commit to branch stable8
in repository owncloud.

commit d9990c2b4e9fb3fdc1867493e35a0bfcfd98b3ba
Author: Thomas Müller <thomas.mueller at tmit.eu>
Date:   Fri Apr 17 13:55:31 2015 +0200

    Delay initialization of the OC\Encryption\Update - introducing 'OC\Encryption\HookManager'
---
 lib/base.php                           | 21 ++---------
 lib/private/encryption/hookmanager.php | 66 ++++++++++++++++++++++++++++++++++
 2 files changed, 68 insertions(+), 19 deletions(-)

diff --git a/lib/base.php b/lib/base.php
index 80f2736..7e61835 100644
--- a/lib/base.php
+++ b/lib/base.php
@@ -718,25 +718,8 @@ class OC {
 	private static function registerEncryptionHooks() {
 		$enabled = self::$server->getEncryptionManager()->isEnabled();
 		if ($enabled) {
-			$user = \OC::$server->getUserSession()->getUser();
-			$uid = '';
-			if ($user) {
-				$uid = $user->getUID();
-			}
-			$updater = new \OC\Encryption\Update(
-				new \OC\Files\View(),
-				new \OC\Encryption\Util(
-					new \OC\Files\View(),
-					\OC::$server->getUserManager(),
-					\OC::$server->getGroupManager(),
-					\OC::$server->getConfig()),
-				\OC\Files\Filesystem::getMountManager(),
-				\OC::$server->getEncryptionManager(),
-				\OC::$server->getEncryptionFilesHelper(),
-				$uid
-			);
-			\OCP\Util::connectHook('OCP\Share', 'post_shared', $updater, 'postShared');
-			\OCP\Util::connectHook('OCP\Share', 'post_unshare', $updater, 'postUnshared');
+			\OCP\Util::connectHook('OCP\Share', 'post_shared', 'OC\Encryption\HookManager', 'postShared');
+			\OCP\Util::connectHook('OCP\Share', 'post_unshare', 'OC\Encryption\HookManager', 'postUnshared');
 		}
 	}
 
diff --git a/lib/private/encryption/hookmanager.php b/lib/private/encryption/hookmanager.php
new file mode 100644
index 0000000..c62583b
--- /dev/null
+++ b/lib/private/encryption/hookmanager.php
@@ -0,0 +1,66 @@
+<?php
+/**
+ * @author Thomas Müller <thomas.mueller at tmit.eu>
+ *
+ * @copyright Copyright (c) 2015, ownCloud, Inc.
+ * @license AGPL-3.0
+ *
+ * This code is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License, version 3,
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License, version 3,
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>
+ *
+ */
+
+namespace OC\Encryption;
+
+use OC\Files\Filesystem;
+use OC\Files\View;
+
+class HookManager {
+	/**
+	 * @var Update
+	 */
+	private static $updater;
+
+	public static function postShared($params) {
+		self::getUpdate()->postShared($params);
+	}
+	public static function postUnshared($params) {
+		self::getUpdate()->postUnshared($params);
+	}
+
+	/**
+	 * @return Update
+	 */
+	private static function getUpdate() {
+		if (is_null(self::$updater)) {
+			$user = \OC::$server->getUserSession()->getUser();
+			$uid = '';
+			if ($user) {
+				$uid = $user->getUID();
+			}
+			self::$updater = new Update(
+				new View(),
+				new Util(
+					new View(),
+					\OC::$server->getUserManager(),
+					\OC::$server->getGroupManager(),
+					\OC::$server->getConfig()),
+				Filesystem::getMountManager(),
+				\OC::$server->getEncryptionManager(),
+				\OC::$server->getEncryptionFilesHelper(),
+				$uid
+			);
+		}
+
+		return self::$updater;
+	}
+}

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-owncloud/owncloud.git



More information about the Pkg-owncloud-commits mailing list