From 728a22cda18845f831d65eac0c6f49b9f9b3b42f Mon Sep 17 00:00:00 2001
From: Robin McCorkell <rmccorkell@karoshi.org.uk>
Date: Wed, 1 Apr 2015 14:50:51 +0100
Subject: [PATCH] Use OCP classes as much as possible in files_external

---
 apps/files_external/lib/amazons3.php          |  4 +-
 apps/files_external/lib/api.php               |  2 +-
 apps/files_external/lib/config.php            | 32 +++++----
 apps/files_external/lib/dropbox.php           |  4 +-
 apps/files_external/lib/google.php            |  4 +-
 apps/files_external/lib/swift.php             |  4 +-
 .../service/storagesservice.php               |  2 +-
 apps/files_external/templates/settings.php    |  2 +-
 apps/files_external/tests/mountconfig.php     | 65 ++++++++++++-------
 9 files changed, 70 insertions(+), 49 deletions(-)

diff --git a/apps/files_external/lib/amazons3.php b/apps/files_external/lib/amazons3.php
index 02a02710a14..77918c5507c 100644
--- a/apps/files_external/lib/amazons3.php
+++ b/apps/files_external/lib/amazons3.php
@@ -373,7 +373,7 @@ class AmazonS3 extends \OC\Files\Storage\Common {
 		switch ($mode) {
 			case 'r':
 			case 'rb':
-				$tmpFile = \OC_Helper::tmpFile();
+				$tmpFile = \OCP\Files::tmpFile();
 				self::$tmpFiles[$tmpFile] = $path;
 
 				try {
@@ -405,7 +405,7 @@ class AmazonS3 extends \OC\Files\Storage\Common {
 				} else {
 					$ext = '';
 				}
-				$tmpFile = \OC_Helper::tmpFile($ext);
+				$tmpFile = \OCP\Files::tmpFile($ext);
 				\OC\Files\Stream\Close::registerCallback($tmpFile, array($this, 'writeBack'));
 				if ($this->file_exists($path)) {
 					$source = $this->fopen($path, 'r');
diff --git a/apps/files_external/lib/api.php b/apps/files_external/lib/api.php
index b9435e33105..015c15c41ff 100644
--- a/apps/files_external/lib/api.php
+++ b/apps/files_external/lib/api.php
@@ -71,7 +71,7 @@ class Api {
 	 */
 	public static function getUserMounts($params) {
 		$entries = array();
-		$user = \OC_User::getUser();
+		$user = \OC::$server->getUserSession()->getUser()->getUID();
 
 		$mounts = \OC_Mount_Config::getAbsoluteMountPoints($user);
 		foreach($mounts as $mountPoint => $mount) {
diff --git a/apps/files_external/lib/config.php b/apps/files_external/lib/config.php
index 5dc6d06ae06..9d8b312e77e 100644
--- a/apps/files_external/lib/config.php
+++ b/apps/files_external/lib/config.php
@@ -124,10 +124,9 @@ class OC_Mount_Config {
 			self::addStorageIdToConfig($data['user']);
 			$user = \OC::$server->getUserManager()->get($data['user']);
 			if (!$user) {
-				\OCP\Util::writeLog(
-					'files_external',
+				\OC::$server->getLogger()->warning(
 					'Cannot init external mount points for non-existant user "' . $data['user'] . '".',
-					\OCP\Util::WARN
+					['app' => 'files_external']
 				);
 				return;
 			}
@@ -161,6 +160,9 @@ class OC_Mount_Config {
 		// Load system mount points
 		$mountConfig = self::readData();
 
+		$userObject = \OC::$server->getUserManager()->get($user);
+		$groupManager = \OC::$server->getGroupManager();
+
 		// Global mount points (is this redundant?)
 		if (isset($mountConfig[self::MOUNT_TYPE_GLOBAL])) {
 			foreach ($mountConfig[self::MOUNT_TYPE_GLOBAL] as $mountPoint => $options) {
@@ -207,7 +209,7 @@ class OC_Mount_Config {
 		// Group mount points
 		if (isset($mountConfig[self::MOUNT_TYPE_GROUP])) {
 			foreach ($mountConfig[self::MOUNT_TYPE_GROUP] as $group => $mounts) {
-				if (\OC_Group::inGroup($user, $group)) {
+				if ($groupManager->get($group)->inGroup($userObject)) {
 					foreach ($mounts as $mountPoint => $options) {
 						$mountPoint = self::setUserVars($user, $mountPoint);
 						foreach ($options as &$option) {
@@ -581,7 +583,7 @@ class OC_Mount_Config {
 
 		$result = self::getBackendStatus($class, $classOptions, $isPersonal);
 		if ($result === self::STATUS_SUCCESS && $isNew) {
-			\OC_Hook::emit(
+			\OCP\Util::emitHook(
 				\OC\Files\Filesystem::CLASSNAME,
 				\OC\Files\Filesystem::signal_create_mount,
 				array(
@@ -627,7 +629,7 @@ class OC_Mount_Config {
 			}
 		}
 		self::writeData($isPersonal ? OCP\User::getUser() : null, $mountPoints);
-		\OC_Hook::emit(
+		\OCP\Util::emitHook(
 			\OC\Files\Filesystem::CLASSNAME,
 			\OC\Files\Filesystem::signal_delete_mount,
 			array(
@@ -669,10 +671,11 @@ class OC_Mount_Config {
 	 */
 	public static function readData($user = null) {
 		if (isset($user)) {
-			$jsonFile = OC_User::getHome($user) . '/mount.json';
+			$jsonFile = \OC::$server->getUserManager()->get($user)->getHome() . '/mount.json';
 		} else {
-			$datadir = \OC_Config::getValue('datadirectory', \OC::$SERVERROOT . '/data/');
-			$jsonFile = \OC_Config::getValue('mount_file', $datadir . '/mount.json');
+			$config = \OC::$server->getConfig();
+			$datadir = $config->getSystemValue('datadirectory', \OC::$SERVERROOT . '/data/');
+			$jsonFile = $config->getSystemValue('mount_file', $datadir . '/mount.json');
 		}
 		if (is_file($jsonFile)) {
 			$mountPoints = json_decode(file_get_contents($jsonFile), true);
@@ -691,10 +694,11 @@ class OC_Mount_Config {
 	 */
 	public static function writeData($user, $data) {
 		if (isset($user)) {
-			$file = OC_User::getHome($user) . '/mount.json';
+			$file = \OC::$server->getUserManager()->get($user)->getHome() . '/mount.json';
 		} else {
-			$datadir = \OC_Config::getValue('datadirectory', \OC::$SERVERROOT . '/data/');
-			$file = \OC_Config::getValue('mount_file', $datadir . '/mount.json');
+			$config = \OC::$server->getConfig();
+			$datadir = $config->getSystemValue('datadirectory', \OC::$SERVERROOT . '/data/');
+			$file = $config->getSystemValue('mount_file', $datadir . '/mount.json');
 		}
 
 		foreach ($data as &$applicables) {
@@ -752,7 +756,7 @@ class OC_Mount_Config {
 	}
 
 	private static function generateDependencyMessage($dependencies) {
-		$l = new \OC_L10N('files_external');
+		$l = \OC::$server->getL10N('files_external');
 		$dependencyMessage = '';
 		foreach ($dependencies as $module => $backends) {
 			$dependencyGroup = array();
@@ -789,7 +793,7 @@ class OC_Mount_Config {
 	 * @param string $backend
 	 * @return string
 	 */
-	private static function getSingleDependencyMessage(OC_L10N $l, $module, $backend) {
+	private static function getSingleDependencyMessage(\OCP\IL10N $l, $module, $backend) {
 		switch (strtolower($module)) {
 			case 'curl':
 				return $l->t('<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it.', $backend);
diff --git a/apps/files_external/lib/dropbox.php b/apps/files_external/lib/dropbox.php
index 78219f8f06e..afdf09a676b 100644
--- a/apps/files_external/lib/dropbox.php
+++ b/apps/files_external/lib/dropbox.php
@@ -243,7 +243,7 @@ class Dropbox extends \OC\Files\Storage\Common {
 		switch ($mode) {
 			case 'r':
 			case 'rb':
-				$tmpFile = \OC_Helper::tmpFile();
+				$tmpFile = \OCP\Files::tmpFile();
 				try {
 					$data = $this->dropbox->getFile($path);
 					file_put_contents($tmpFile, $data);
@@ -269,7 +269,7 @@ class Dropbox extends \OC\Files\Storage\Common {
 				} else {
 					$ext = '';
 				}
-				$tmpFile = \OC_Helper::tmpFile($ext);
+				$tmpFile = \OCP\Files::tmpFile($ext);
 				\OC\Files\Stream\Close::registerCallback($tmpFile, array($this, 'writeBack'));
 				if ($this->file_exists($path)) {
 					$source = $this->fopen($path, 'r');
diff --git a/apps/files_external/lib/google.php b/apps/files_external/lib/google.php
index 8199d97eacb..b4cc9bb0eab 100644
--- a/apps/files_external/lib/google.php
+++ b/apps/files_external/lib/google.php
@@ -428,7 +428,7 @@ class Google extends \OC\Files\Storage\Common {
 						$request = new \Google_Http_Request($downloadUrl, 'GET', null, null);
 						$httpRequest = $this->client->getAuth()->authenticatedRequest($request);
 						if ($httpRequest->getResponseHttpCode() == 200) {
-							$tmpFile = \OC_Helper::tmpFile($ext);
+							$tmpFile = \OCP\Files::tmpFile($ext);
 							$data = $httpRequest->getResponseBody();
 							file_put_contents($tmpFile, $data);
 							return fopen($tmpFile, $mode);
@@ -448,7 +448,7 @@ class Google extends \OC\Files\Storage\Common {
 			case 'x+':
 			case 'c':
 			case 'c+':
-				$tmpFile = \OC_Helper::tmpFile($ext);
+				$tmpFile = \OCP\Files::tmpFile($ext);
 				\OC\Files\Stream\Close::registerCallback($tmpFile, array($this, 'writeBack'));
 				if ($this->file_exists($path)) {
 					$source = $this->fopen($path, 'rb');
diff --git a/apps/files_external/lib/swift.php b/apps/files_external/lib/swift.php
index 50f0d40805a..4104e97fbe6 100644
--- a/apps/files_external/lib/swift.php
+++ b/apps/files_external/lib/swift.php
@@ -310,7 +310,7 @@ class Swift extends \OC\Files\Storage\Common {
 		switch ($mode) {
 			case 'r':
 			case 'rb':
-				$tmpFile = \OC_Helper::tmpFile();
+				$tmpFile = \OCP\Files::tmpFile();
 				self::$tmpFiles[$tmpFile] = $path;
 				try {
 					$object = $this->getContainer()->getObject($path);
@@ -348,7 +348,7 @@ class Swift extends \OC\Files\Storage\Common {
 				} else {
 					$ext = '';
 				}
-				$tmpFile = \OC_Helper::tmpFile($ext);
+				$tmpFile = \OCP\Files::tmpFile($ext);
 				\OC\Files\Stream\Close::registerCallback($tmpFile, array($this, 'writeBack'));
 				if ($this->file_exists($path)) {
 					$source = $this->fopen($path, 'r');
diff --git a/apps/files_external/service/storagesservice.php b/apps/files_external/service/storagesservice.php
index 930f994455e..84ca8a4524d 100644
--- a/apps/files_external/service/storagesservice.php
+++ b/apps/files_external/service/storagesservice.php
@@ -306,7 +306,7 @@ abstract class StoragesService {
 	 */
 	protected function triggerApplicableHooks($signal, $mountPoint, $mountType, $applicableArray) {
 		foreach ($applicableArray as $applicable) {
-			\OC_Hook::emit(
+			\OCP\Util::emitHook(
 				Filesystem::CLASSNAME,
 				$signal,
 				[
diff --git a/apps/files_external/templates/settings.php b/apps/files_external/templates/settings.php
index b886c2e1b1b..d5aba6fc80b 100644
--- a/apps/files_external/templates/settings.php
+++ b/apps/files_external/templates/settings.php
@@ -16,7 +16,7 @@
 		<tbody>
 		<?php $_['mounts'] = array_merge($_['mounts'], array('' => array('id' => ''))); ?>
 		<?php foreach ($_['mounts'] as $mount): ?>
-			<tr <?php print_unescaped(isset($mount['mountpoint']) ? 'class="'.OC_Util::sanitizeHTML($mount['class']).'"' : 'id="addMountPoint"'); ?> data-id="<?php p($mount['id']) ?>">
+			<tr <?php print_unescaped(isset($mount['mountpoint']) ? 'class="'.\OCP\Util::sanitizeHTML($mount['class']).'"' : 'id="addMountPoint"'); ?> data-id="<?php p($mount['id']) ?>">
 				<td class="status">
 					<span></span>
 				</td>
diff --git a/apps/files_external/tests/mountconfig.php b/apps/files_external/tests/mountconfig.php
index b76ba0a39a6..f198b09c089 100644
--- a/apps/files_external/tests/mountconfig.php
+++ b/apps/files_external/tests/mountconfig.php
@@ -131,6 +131,9 @@ class Test_Mount_Config extends \Test\TestCase {
 	const TEST_GROUP2 = 'group2';
 	const TEST_GROUP2B = 'group2b';
 
+	private $users = [];
+	private $groups = [];
+
 	protected function setUp() {
 		parent::setUp();
 
@@ -147,32 +150,43 @@ class Test_Mount_Config extends \Test\TestCase {
 			)
 		);
 
-		\OC_User::createUser(self::TEST_USER1, self::TEST_USER1);
-		\OC_User::createUser(self::TEST_USER2, self::TEST_USER2);
+		$userManager = \OC::$server->getUserManager();
+		$groupManager = \OC::$server->getGroupManager();
+
+		$this->users[self::TEST_USER1] = $userManager->createUser(
+			self::TEST_USER1,
+			self::TEST_USER1
+		);
+		$this->users[self::TEST_USER2] = $userManager->createUser(
+			self::TEST_USER2,
+			self::TEST_USER2
+		);
 
-		\OC_Group::createGroup(self::TEST_GROUP1);
-		\OC_Group::createGroup(self::TEST_GROUP1B);
-		\OC_Group::addToGroup(self::TEST_USER1, self::TEST_GROUP1);
-		\OC_Group::addToGroup(self::TEST_USER1, self::TEST_GROUP1B);
-		\OC_Group::createGroup(self::TEST_GROUP2);
-		\OC_Group::createGroup(self::TEST_GROUP2B);
-		\OC_Group::addToGroup(self::TEST_USER2, self::TEST_GROUP2);
-		\OC_Group::addToGroup(self::TEST_USER2, self::TEST_GROUP2B);
+		$this->groups[self::TEST_GROUP1] = $groupManager->createGroup(self::TEST_GROUP1);
+		$this->groups[self::TEST_GROUP1B] = $groupManager->createGroup(self::TEST_GROUP1B);
+		$this->groups[self::TEST_GROUP2] = $groupManager->createGroup(self::TEST_GROUP2);
+		$this->groups[self::TEST_GROUP2B] = $groupManager->createGroup(self::TEST_GROUP2B);
 
-		\OC_User::setUserId(self::TEST_USER1);
-		$this->userHome = \OC_User::getHome(self::TEST_USER1);
+		$this->groups[self::TEST_GROUP1]->addUser($this->users[self::TEST_USER1]);
+		$this->groups[self::TEST_GROUP1B]->addUser($this->users[self::TEST_USER1]);
+		$this->groups[self::TEST_GROUP2]->addUser($this->users[self::TEST_USER2]);
+		$this->groups[self::TEST_GROUP2B]->addUser($this->users[self::TEST_USER2]);
+
+		\OC::$server->getUserSession()->setUser($this->users[self::TEST_USER1]);
+		$this->userHome = $this->users[self::TEST_USER1]->getHome();
 		@mkdir($this->userHome);
 
-		$this->dataDir = \OC_Config::getValue(
+		$config = \OC::$server->getConfig();
+		$this->dataDir = $config->getSystemValue(
 			'datadirectory',
 			\OC::$SERVERROOT . '/data/'
 		);
-		$this->oldAllowedBackends = OCP\Config::getAppValue(
+		$this->oldAllowedBackends = $config->getAppValue(
 			'files_external',
 			'user_mounting_backends',
 			''
 		);
-		OCP\Config::setAppValue(
+		$config->setAppValue(
 			'files_external',
 			'user_mounting_backends',
 			'Test_Mount_Config_Dummy_Storage'
@@ -186,16 +200,19 @@ class Test_Mount_Config extends \Test\TestCase {
 		Test_Mount_Config_Hook_Test::clear();
 		OC_Mount_Config::$skipTest = false;
 
-		\OC_User::deleteUser(self::TEST_USER2);
-		\OC_User::deleteUser(self::TEST_USER1);
-		\OC_Group::deleteGroup(self::TEST_GROUP1);
-		\OC_Group::deleteGroup(self::TEST_GROUP1B);
-		\OC_Group::deleteGroup(self::TEST_GROUP2);
-		\OC_Group::deleteGroup(self::TEST_GROUP2B);
+		foreach ($this->users as $user) {
+			$user->delete();
+		}
+		foreach ($this->groups as $group) {
+			$group->delete();
+		}
+		$this->users = [];
+		$this->groups = [];
 
 		@unlink($this->dataDir . '/mount.json');
 
-		OCP\Config::setAppValue(
+		$config = \OC::$server->getConfig();
+		$config->setAppValue(
 			'files_external',
 			'user_mounting_backends',
 			$this->oldAllowedBackends
@@ -778,7 +795,7 @@ class Test_Mount_Config extends \Test\TestCase {
 		);
 
 		// check mount points in the perspective of user $testUser
-		\OC_User::setUserId($testUser);
+		\OC::$server->getUserSession()->setUser($this->users[$testUser]);
 
 		$mountPoints = OC_Mount_Config::getAbsoluteMountPoints($testUser);
 		if ($expectVisible) {
@@ -1116,7 +1133,7 @@ class Test_Mount_Config extends \Test\TestCase {
 		);
 
 		// Ensure other user can read mount points
-		\OC_User::setUserId(self::TEST_USER2);
+		\OC::$server->getUserSession()->setUser($this->users[self::TEST_USER2]);
 		$mountPointsMe = OC_Mount_Config::getAbsoluteMountPoints(self::TEST_USER2);
 		$mountPointsOther = OC_Mount_Config::getAbsoluteMountPoints(self::TEST_USER1);
 
-- 
GitLab