Merge pull request #7780 from owncloud/share-file-exists
Verify that a file exists before we share it
This commit is contained in:
commit
2dbb2db7e0
2 changed files with 33 additions and 0 deletions
|
@ -878,6 +878,29 @@ class Test_Files_Sharing_Api extends Test_Files_Sharing_Base {
|
|||
$this->assertSame($expectedResult, $shareApiDummy->correctPathTest($path, $folder));
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException \Exception
|
||||
*/
|
||||
public function testShareNonExisting() {
|
||||
\Test_Files_Sharing_Api::loginHelper(\Test_Files_Sharing_Api::TEST_FILES_SHARING_API_USER1);
|
||||
|
||||
$id = PHP_INT_MAX - 1;
|
||||
\OCP\Share::shareItem('file', $id, \OCP\Share::SHARE_TYPE_LINK, \Test_Files_Sharing_Api::TEST_FILES_SHARING_API_USER2, 31);
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException \Exception
|
||||
*/
|
||||
public function testShareNotOwner() {
|
||||
\Test_Files_Sharing_Api::loginHelper(\Test_Files_Sharing_Api::TEST_FILES_SHARING_API_USER2);
|
||||
\OC\Files\Filesystem::file_put_contents('foo.txt', 'bar');
|
||||
$info = \OC\Files\Filesystem::getFileInfo('foo.txt');
|
||||
|
||||
\Test_Files_Sharing_Api::loginHelper(\Test_Files_Sharing_Api::TEST_FILES_SHARING_API_USER1);
|
||||
|
||||
\OCP\Share::shareItem('file', $info->getId(), \OCP\Share::SHARE_TYPE_LINK, \Test_Files_Sharing_Api::TEST_FILES_SHARING_API_USER2, 31);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -431,6 +431,16 @@ class Share extends \OC\Share\Constants {
|
|||
$itemSourceName = $itemSource;
|
||||
}
|
||||
|
||||
// verify that the file exists before we try to share it
|
||||
if ($itemType === 'file' or $itemType === 'folder') {
|
||||
$path = \OC\Files\Filesystem::getPath($itemSource);
|
||||
if (!$path) {
|
||||
$message = 'Sharing ' . $itemSourceName . ' failed, because the file does not exist';
|
||||
\OC_Log::write('OCP\Share', $message, \OC_Log::ERROR);
|
||||
throw new \Exception($message);
|
||||
}
|
||||
}
|
||||
|
||||
// Verify share type and sharing conditions are met
|
||||
if ($shareType === self::SHARE_TYPE_USER) {
|
||||
if ($shareWith == $uidOwner) {
|
||||
|
|
Loading…
Reference in a new issue