Merge pull request #15363 from owncloud/ext-ocp

Use OCP classes as much as possible in files_external
This commit is contained in:
Morris Jobke 2015-07-01 11:16:52 +02:00
commit b476c125c0
9 changed files with 70 additions and 49 deletions

View File

@ -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');

View File

@ -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) {

View File

@ -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);

View File

@ -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');

View File

@ -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');

View File

@ -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');

View File

@ -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,
[

View File

@ -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>

View File

@ -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();
\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->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_User::setUserId(self::TEST_USER1);
$this->userHome = \OC_User::getHome(self::TEST_USER1);
$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);
$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);