|
|
@@ -38,19 +38,36 @@ class Test_Share_Backend implements OCP\Share_Backend { |
|
|
|
|
|
|
|
public function generateTarget($itemSource, $shareWith, $exclude = null) { |
|
|
|
// Always make target be test.txt to cause conflicts |
|
|
|
$target = 'test.txt'; |
|
|
|
if (isset($exclude)) { |
|
|
|
|
|
|
|
if (substr($itemSource, 0, strlen('test')) !== 'test') { |
|
|
|
$target = "test.txt"; |
|
|
|
} else { |
|
|
|
$target = $itemSource; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
$shares = \OCP\Share::getItemsSharedWithUser('test', $shareWith); |
|
|
|
|
|
|
|
$knownTargets = array(); |
|
|
|
foreach ($shares as $share) { |
|
|
|
$knownTargets[] = $share['item_target']; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (in_array($target, $knownTargets)) { |
|
|
|
$pos = strrpos($target, '.'); |
|
|
|
$name = substr($target, 0, $pos); |
|
|
|
$ext = substr($target, $pos); |
|
|
|
$append = ''; |
|
|
|
$i = 1; |
|
|
|
while (in_array($name.$append.$ext, $exclude)) { |
|
|
|
while (in_array($name.$append.$ext, $knownTargets)) { |
|
|
|
$append = $i; |
|
|
|
$i++; |
|
|
|
} |
|
|
|
$target = $name.$append.$ext; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
return $target; |
|
|
|
} |
|
|
|
|