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