Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/server.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorBjörn Schießle <schiessle@owncloud.com>2012-10-18 18:38:36 +0400
committerBjörn Schießle <schiessle@owncloud.com>2012-10-18 19:15:30 +0400
commit00ed2e87c9a1aa6f9ecd54ceaec4346250f6afca (patch)
tree3b0442897632cac9bf71d4de1cba6cad86877513 /lib
parente4c0bb59e52a2cc7be21cdc4180a7f1aa64b18b5 (diff)
check for mount points if file was shared from a different user
Diffstat (limited to 'lib')
-rw-r--r--lib/filesystem.php6
-rwxr-xr-xlib/util.php37
2 files changed, 28 insertions, 15 deletions
diff --git a/lib/filesystem.php b/lib/filesystem.php
index da524d7f181..5dc4b2f89e5 100644
--- a/lib/filesystem.php
+++ b/lib/filesystem.php
@@ -184,6 +184,12 @@ class OC_Filesystem{
* @return OC_Filestorage
*/
static public function getStorage($path) {
+ $user = ltrim(substr($path, 0, strpos($path, '/', 1)), '/');
+ // check mount points if file was shared from a different user
+ if ($user != OC_User::getUser()) {
+ OC_Util::loadMountPoints($user);
+ }
+
$mountpoint=self::getMountPoint($path);
if($mountpoint) {
if(!isset(OC_Filesystem::$storages[$mountpoint])) {
diff --git a/lib/util.php b/lib/util.php
index 880a519d347..29f2c56b0b2 100755
--- a/lib/util.php
+++ b/lib/util.php
@@ -53,21 +53,7 @@ class OC_Util {
OC_FileProxy::register($quotaProxy);
OC_FileProxy::register($fileOperationProxy);
// Load personal mount config
- if (is_file($user_root.'/mount.php')) {
- $mountConfig = include($user_root.'/mount.php');
- if (isset($mountConfig['user'][$user])) {
- foreach ($mountConfig['user'][$user] as $mountPoint => $options) {
- OC_Filesystem::mount($options['class'], $options['options'], $mountPoint);
- }
- }
-
- $mtime=filemtime($user_root.'/mount.php');
- $previousMTime=OC_Preferences::getValue($user,'files','mountconfigmtime',0);
- if($mtime>$previousMTime) {//mount config has changed, filecache needs to be updated
- OC_FileCache::triggerUpdate($user);
- OC_Preferences::setValue($user,'files','mountconfigmtime',$mtime);
- }
- }
+ self::loadMountPoints($user);
OC_Hook::emit('OC_Filesystem', 'setup', array('user' => $user, 'user_dir' => $user_dir));
}
}
@@ -76,6 +62,27 @@ class OC_Util {
OC_Filesystem::tearDown();
self::$fsSetup=false;
}
+
+ public static function loadMountPoints($user) {
+ $user_dir = '/'.$user.'/files';
+ $user_root = OC_User::getHome($user);
+ $userdirectory = $user_root . '/files';
+ if (is_file($user_root.'/mount.php')) {
+ $mountConfig = include($user_root.'/mount.php');
+ if (isset($mountConfig['user'][$user])) {
+ foreach ($mountConfig['user'][$user] as $mountPoint => $options) {
+ OC_Filesystem::mount($options['class'], $options['options'], $mountPoint);
+ }
+ }
+
+ $mtime=filemtime($user_root.'/mount.php');
+ $previousMTime=OC_Preferences::getValue($user,'files','mountconfigmtime',0);
+ if($mtime>$previousMTime) {//mount config has changed, filecache needs to be updated
+ OC_FileCache::triggerUpdate($user);
+ OC_Preferences::setValue($user,'files','mountconfigmtime',$mtime);
+ }
+ }
+ }
/**
* get the current installed version of ownCloud