diff options
author | Robin Appelman <icewind@owncloud.com> | 2014-06-16 15:57:01 +0200 |
---|---|---|
committer | Robin Appelman <icewind@owncloud.com> | 2014-06-16 15:57:01 +0200 |
commit | 0616eb4007b14d701ca3949c83bddf0a31507b56 (patch) | |
tree | 1fac0dfd86d46afdf116f45bd2cf331c25afa177 /apps | |
parent | 5b1b6572f7ae9ac9e300032e049e317ac7496a30 (diff) | |
download | nextcloud-server-0616eb4007b14d701ca3949c83bddf0a31507b56.tar.gz nextcloud-server-0616eb4007b14d701ca3949c83bddf0a31507b56.zip |
Fix multiple users having the same external share mountpoint
Diffstat (limited to 'apps')
-rw-r--r-- | apps/files_sharing/appinfo/database.xml | 4 | ||||
-rw-r--r-- | apps/files_sharing/appinfo/version | 2 | ||||
-rw-r--r-- | apps/files_sharing/lib/external/manager.php | 10 |
3 files changed, 11 insertions, 5 deletions
diff --git a/apps/files_sharing/appinfo/database.xml b/apps/files_sharing/appinfo/database.xml index 159d6cb1c57..73d64c527b7 100644 --- a/apps/files_sharing/appinfo/database.xml +++ b/apps/files_sharing/appinfo/database.xml @@ -82,6 +82,10 @@ <name>sh_external_mp</name> <unique>true</unique> <field> + <name>user</name> + <sorting>ascending</sorting> + </field> + <field> <name>mountpoint_hash</name> <sorting>ascending</sorting> </field> diff --git a/apps/files_sharing/appinfo/version b/apps/files_sharing/appinfo/version index 4b9fcbec101..cb0c939a936 100644 --- a/apps/files_sharing/appinfo/version +++ b/apps/files_sharing/appinfo/version @@ -1 +1 @@ -0.5.1 +0.5.2 diff --git a/apps/files_sharing/lib/external/manager.php b/apps/files_sharing/lib/external/manager.php index 381651f8c6a..70a0e98ebd5 100644 --- a/apps/files_sharing/lib/external/manager.php +++ b/apps/files_sharing/lib/external/manager.php @@ -117,22 +117,24 @@ class Manager { * @return bool */ public function setMountPoint($source, $target) { + $user = $this->userSession->getUser(); $source = $this->stripPath($source); $target = $this->stripPath($target); $sourceHash = md5($source); $targetHash = md5($target); $query = $this->connection->prepare('UPDATE *PREFIX*share_external SET - `mountpoint` = ?, `mountpoint_hash` = ? WHERE `mountpoint_hash` = ?'); - $result = (bool)$query->execute(array($target, $targetHash, $sourceHash)); + `mountpoint` = ?, `mountpoint_hash` = ? WHERE `mountpoint_hash` = ? AND `user` = ?'); + $result = (bool)$query->execute(array($target, $targetHash, $sourceHash, $user->getUID())); return $result; } public function removeShare($mountPoint) { + $user = $this->userSession->getUser(); $mountPoint = $this->stripPath($mountPoint); $hash = md5($mountPoint); - $query = $this->connection->prepare('DELETE FROM *PREFIX*share_external WHERE `mountpoint_hash` = ?'); - return (bool)$query->execute(array($hash)); + $query = $this->connection->prepare('DELETE FROM *PREFIX*share_external WHERE `mountpoint_hash` = ? AND `user` = ?'); + return (bool)$query->execute(array($hash, $user->getUID())); } } |