Merge pull request #22679 from owncloud/fix_22668

When the Share API is disabled do not return shares
This commit is contained in:
Thomas Müller 2016-03-22 21:26:31 +01:00
commit e516612a25
2 changed files with 91 additions and 1 deletions

View File

@ -161,6 +161,10 @@ class Share20OCS {
* @return \OC_OCS_Result * @return \OC_OCS_Result
*/ */
public function getShare($id) { public function getShare($id) {
if (!$this->shareManager->shareApiEnabled()) {
return new \OC_OCS_Result(null, 404, 'Share API is disabled');
}
try { try {
$share = $this->getShareById($id); $share = $this->getShareById($id);
} catch (ShareNotFound $e) { } catch (ShareNotFound $e) {
@ -186,7 +190,10 @@ class Share20OCS {
* @return \OC_OCS_Result * @return \OC_OCS_Result
*/ */
public function deleteShare($id) { public function deleteShare($id) {
// Try both our default and our federated provider if (!$this->shareManager->shareApiEnabled()) {
return new \OC_OCS_Result(null, 404, 'Share API is disabled');
}
try { try {
$share = $this->getShareById($id); $share = $this->getShareById($id);
} catch (ShareNotFound $e) { } catch (ShareNotFound $e) {
@ -208,6 +215,10 @@ class Share20OCS {
public function createShare() { public function createShare() {
$share = $this->shareManager->newShare(); $share = $this->shareManager->newShare();
if (!$this->shareManager->shareApiEnabled()) {
return new \OC_OCS_Result(null, 404, 'Share API is disabled');
}
// Verify path // Verify path
$path = $this->request->getParam('path', null); $path = $this->request->getParam('path', null);
if ($path === null) { if ($path === null) {
@ -421,6 +432,10 @@ class Share20OCS {
* @return \OC_OCS_Result * @return \OC_OCS_Result
*/ */
public function getShares() { public function getShares() {
if (!$this->shareManager->shareApiEnabled()) {
return new \OC_OCS_Result();
}
$sharedWithMe = $this->request->getParam('shared_with_me', null); $sharedWithMe = $this->request->getParam('shared_with_me', null);
$reshares = $this->request->getParam('reshares', null); $reshares = $this->request->getParam('reshares', null);
$subfiles = $this->request->getParam('subfiles'); $subfiles = $this->request->getParam('subfiles');
@ -478,6 +493,10 @@ class Share20OCS {
* @return \OC_OCS_Result * @return \OC_OCS_Result
*/ */
public function updateShare($id) { public function updateShare($id) {
if (!$this->shareManager->shareApiEnabled()) {
return new \OC_OCS_Result(null, 404, 'Share API is disabled');
}
try { try {
$share = $this->getShareById($id); $share = $this->getShareById($id);
} catch (ShareNotFound $e) { } catch (ShareNotFound $e) {

View File

@ -65,6 +65,10 @@ class Share20OCSTest extends \Test\TestCase {
$this->shareManager = $this->getMockBuilder('OCP\Share\IManager') $this->shareManager = $this->getMockBuilder('OCP\Share\IManager')
->disableOriginalConstructor() ->disableOriginalConstructor()
->getMock(); ->getMock();
$this->shareManager
->expects($this->any())
->method('shareApiEnabled')
->willReturn(true);
$this->groupManager = $this->getMock('OCP\IGroupManager'); $this->groupManager = $this->getMock('OCP\IGroupManager');
$this->userManager = $this->getMock('OCP\IUserManager'); $this->userManager = $this->getMock('OCP\IUserManager');
$this->request = $this->getMock('OCP\IRequest'); $this->request = $this->getMock('OCP\IRequest');
@ -1827,7 +1831,74 @@ class Share20OCSTest extends \Test\TestCase {
} catch (NotFoundException $e) { } catch (NotFoundException $e) {
$this->assertTrue($exception); $this->assertTrue($exception);
} }
}
/**
* @return Share20OCS
*/
public function getOcsDisabledAPI() {
$shareManager = $this->getMockBuilder('OCP\Share\IManager')
->disableOriginalConstructor()
->getMock();
$shareManager
->expects($this->any())
->method('shareApiEnabled')
->willReturn(false);
return new Share20OCS(
$shareManager,
$this->groupManager,
$this->userManager,
$this->request,
$this->rootFolder,
$this->urlGenerator,
$this->currentUser
);
}
public function testGetShareApiDisabled() {
$ocs = $this->getOcsDisabledAPI();
$expected = new \OC_OCS_Result(null, 404, 'Share API is disabled');
$result = $ocs->getShare('my:id');
$this->assertEquals($expected, $result);
}
public function testDeleteShareApiDisabled() {
$ocs = $this->getOcsDisabledAPI();
$expected = new \OC_OCS_Result(null, 404, 'Share API is disabled');
$result = $ocs->deleteShare('my:id');
$this->assertEquals($expected, $result);
}
public function testCreateShareApiDisabled() {
$ocs = $this->getOcsDisabledAPI();
$expected = new \OC_OCS_Result(null, 404, 'Share API is disabled');
$result = $ocs->createShare();
$this->assertEquals($expected, $result);
}
public function testGetSharesApiDisabled() {
$ocs = $this->getOcsDisabledAPI();
$expected = new \OC_OCS_Result();
$result = $ocs->getShares();
$this->assertEquals($expected, $result);
}
public function testUpdateShareApiDisabled() {
$ocs = $this->getOcsDisabledAPI();
$expected = new \OC_OCS_Result(null, 404, 'Share API is disabled');
$result = $ocs->updateShare('my:id');
$this->assertEquals($expected, $result);
} }
} }