. */ class Test_Share_Backend implements OCP\Share_Backend { const FORMAT_SOURCE = 0; const FORMAT_TARGET = 1; const FORMAT_PERMISSIONS = 2; private $testItem1 = 'test.txt'; private $testItem2 = 'share.txt'; private $testId = 1; public function isValidSource($itemSource, $uidOwner) { if ($itemSource == $this->testItem1 || $itemSource == $this->testItem2 || $itemSource == 1) { return true; } } public function generateTarget($itemSource, $shareWith, $exclude = null) { // Always make target be test.txt to cause conflicts 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, $knownTargets)) { $append = $i; $i++; } $target = $name.$append.$ext; } return $target; } public function formatItems($items, $format, $parameters = null) { $testItems = array(); foreach ($items as $item) { if ($format === self::FORMAT_SOURCE) { $testItems[] = $item['item_source']; } else if ($format === self::FORMAT_TARGET) { $testItems[] = $item['item_target']; } else if ($format === self::FORMAT_PERMISSIONS) { $testItems[] = $item['permissions']; } } return $testItems; } public function isShareTypeAllowed($shareType) { return true; } }