Fix multiple users having the same external share mountpoint
This commit is contained in:
parent
5b1b6572f7
commit
0616eb4007
3 changed files with 11 additions and 5 deletions
|
@ -81,6 +81,10 @@
|
|||
<index>
|
||||
<name>sh_external_mp</name>
|
||||
<unique>true</unique>
|
||||
<field>
|
||||
<name>user</name>
|
||||
<sorting>ascending</sorting>
|
||||
</field>
|
||||
<field>
|
||||
<name>mountpoint_hash</name>
|
||||
<sorting>ascending</sorting>
|
||||
|
|
|
@ -1 +1 @@
|
|||
0.5.1
|
||||
0.5.2
|
||||
|
|
10
apps/files_sharing/lib/external/manager.php
vendored
10
apps/files_sharing/lib/external/manager.php
vendored
|
@ -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()));
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue