[Share 2.0] Use GenericShareException
This commit is contained in:
parent
4d7130ad31
commit
dc32f49c6e
|
@ -27,6 +27,9 @@ use OCP\IURLGenerator;
|
|||
use OCP\IUser;
|
||||
use OCP\Files\IRootFolder;
|
||||
|
||||
use OCP\Share\Exceptions\ShareNotFound;
|
||||
use OCP\Share\Exceptions\GenericShareException;
|
||||
|
||||
class Share20OCS {
|
||||
|
||||
/** @var \OC\Share20\Manager */
|
||||
|
@ -148,7 +151,7 @@ class Share20OCS {
|
|||
// First check if it is an internal share.
|
||||
try {
|
||||
$share = $this->shareManager->getShareById('ocinternal:'.$id);
|
||||
} catch (\OCP\Share\Exceptions\ShareNotFound $e) {
|
||||
} catch (ShareNotFound $e) {
|
||||
// Ignore for now
|
||||
//return new \OC_OCS_Result(null, 404, 'wrong share ID, share doesn\'t exist.');
|
||||
}
|
||||
|
@ -178,7 +181,7 @@ class Share20OCS {
|
|||
|
||||
try {
|
||||
$share = $this->shareManager->getShareById('ocinternal:' . $id);
|
||||
} catch (\OCP\Share\Exceptions\ShareNotFound $e) {
|
||||
} catch (ShareNotFound $e) {
|
||||
//Ignore for now
|
||||
//return new \OC_OCS_Result(null, 404, 'wrong share ID, share doesn\'t exist.');
|
||||
}
|
||||
|
@ -192,11 +195,7 @@ class Share20OCS {
|
|||
return new \OC_OCS_Result(null, 404, 'could not delete share');
|
||||
}
|
||||
|
||||
try {
|
||||
$this->shareManager->deleteShare($share);
|
||||
} catch (\OC\Share20\Exception\BackendError $e) {
|
||||
return new \OC_OCS_Result(null, 404, 'could not delete share');
|
||||
}
|
||||
$this->shareManager->deleteShare($share);
|
||||
|
||||
return new \OC_OCS_Result();
|
||||
}
|
||||
|
@ -318,7 +317,7 @@ class Share20OCS {
|
|||
|
||||
try {
|
||||
$share = $this->shareManager->createShare($share);
|
||||
} catch (\OC\HintException $e) {
|
||||
} catch (GenericShareException $e) {
|
||||
$code = $e->getCode() === 0 ? 403 : $e->getCode();
|
||||
return new \OC_OCS_Result(null, $code, $e->getHint());
|
||||
}catch (\Exception $e) {
|
||||
|
@ -443,7 +442,7 @@ class Share20OCS {
|
|||
|
||||
try {
|
||||
$share = $this->shareManager->getShareById('ocinternal:' . $id);
|
||||
} catch (\OCP\Share\Exceptions\ShareNotFound $e) {
|
||||
} catch (ShareNotFound $e) {
|
||||
//Ignore for now
|
||||
//return new \OC_OCS_Result(null, 404, 'wrong share ID, share doesn\'t exist.');
|
||||
}
|
||||
|
|
|
@ -102,25 +102,6 @@ class Share20OCSTest extends \Test\TestCase {
|
|||
$this->assertEquals($expected, $this->ocs->deleteShare(42));
|
||||
}
|
||||
|
||||
public function testDeleteShareCouldNotDelete() {
|
||||
$share = $this->getMock('OCP\Share\IShare');
|
||||
$share->method('getShareOwner')->willReturn($this->currentUser);
|
||||
$this->shareManager
|
||||
->expects($this->once())
|
||||
->method('getShareById')
|
||||
->with('ocinternal:42')
|
||||
->willReturn($share);
|
||||
$this->shareManager
|
||||
->expects($this->once())
|
||||
->method('deleteShare')
|
||||
->with($share)
|
||||
->will($this->throwException(new \OC\Share20\Exception\BackendError()));
|
||||
|
||||
|
||||
$expected = new \OC_OCS_Result(null, 404, 'could not delete share');
|
||||
$this->assertEquals($expected, $this->ocs->deleteShare(42));
|
||||
}
|
||||
|
||||
public function testDeleteShare() {
|
||||
$share = $this->getMock('OCP\Share\IShare');
|
||||
$share->method('getSharedBy')->willReturn($this->currentUser);
|
||||
|
|
|
@ -37,7 +37,7 @@ use OCP\Files\Folder;
|
|||
use OCP\IUser;
|
||||
|
||||
use OCP\Share\Exceptions\ShareNotFound;
|
||||
use OC\HintException;
|
||||
use OCP\Share\Exceptions\GenericShareException;
|
||||
|
||||
/**
|
||||
* This class is the communication hub for all sharing related operations.
|
||||
|
@ -144,7 +144,8 @@ class Manager implements IManager {
|
|||
* Check for generic requirements before creating a share
|
||||
*
|
||||
* @param \OCP\Share\IShare $share
|
||||
* @throws \Exception
|
||||
* @throws \InvalidArgumentException
|
||||
* @throws GenericShareException
|
||||
*/
|
||||
protected function generalCreateChecks(\OCP\Share\IShare $share) {
|
||||
if ($share->getShareType() === \OCP\Share::SHARE_TYPE_USER) {
|
||||
|
@ -190,7 +191,7 @@ class Manager implements IManager {
|
|||
// Check if we actually have share permissions
|
||||
if (!$share->getNode()->isShareable()) {
|
||||
$message_t = $this->l->t('You are not allowed to share %s', [$share->getNode()->getPath()]);
|
||||
throw new HintException($message_t, $message_t, 404);
|
||||
throw new GenericShareException($message_t, $message_t, 404);
|
||||
}
|
||||
|
||||
// Permissions should be set
|
||||
|
@ -201,7 +202,7 @@ class Manager implements IManager {
|
|||
// Check that we do not share with more permissions than we have
|
||||
if ($share->getPermissions() & ~$share->getNode()->getPermissions()) {
|
||||
$message_t = $this->l->t('Cannot increase permissions of %s', [$share->getNode()->getPath()]);
|
||||
throw new HintException($message_t, $message_t, 404);
|
||||
throw new GenericShareException($message_t, $message_t, 404);
|
||||
}
|
||||
|
||||
// Check that read permissions are always set
|
||||
|
@ -213,9 +214,11 @@ class Manager implements IManager {
|
|||
/**
|
||||
* Validate if the expiration date fits the system settings
|
||||
*
|
||||
* @param \DateTime $expirationDate The current expiration date (can be null)
|
||||
* @param \OCP\Share\IShare $share The share to validate the expiration date of
|
||||
* @return \DateTime|null The expiration date or null if $expireDate was null and it is not required
|
||||
* @throws \OC\HintException
|
||||
* @throws GenericShareException
|
||||
* @throws \InvalidArgumentException
|
||||
* @throws \Exception
|
||||
*/
|
||||
protected function validateExpirationDate(\OCP\Share\IShare $share) {
|
||||
|
||||
|
@ -229,7 +232,7 @@ class Manager implements IManager {
|
|||
$date->setTime(0, 0, 0);
|
||||
if ($date >= $expirationDate) {
|
||||
$message = $this->l->t('Expiration date is in the past');
|
||||
throw new \OC\HintException($message, $message, 404);
|
||||
throw new GenericShareException($message, $message, 404);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -244,7 +247,7 @@ class Manager implements IManager {
|
|||
$date->add(new \DateInterval('P' . $this->shareApiLinkDefaultExpireDays() . 'D'));
|
||||
if ($date < $expirationDate) {
|
||||
$message = $this->l->t('Cannot set expiration date more than %s days in the future', [$this->shareApiLinkDefaultExpireDays()]);
|
||||
throw new \OC\HintException($message, $message, 404);
|
||||
throw new GenericShareException($message, $message, 404);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -638,8 +641,6 @@ class Manager implements IManager {
|
|||
*
|
||||
* @param \OCP\Share\IShare $share
|
||||
* @throws ShareNotFound
|
||||
* @throws BackendError
|
||||
* @throws ShareNotFound
|
||||
*/
|
||||
public function deleteShare(\OCP\Share\IShare $share) {
|
||||
// Just to make sure we have all the info
|
||||
|
|
|
@ -586,7 +586,7 @@ class ManagerTest extends \Test\TestCase {
|
|||
try {
|
||||
$this->invokePrivate($this->manager, 'generalCreateChecks', [$share]);
|
||||
$thrown = false;
|
||||
} catch (\OC\HintException $e) {
|
||||
} catch (\OCP\Share\Exceptions\GenericShareException $e) {
|
||||
$this->assertEquals($exceptionMessage, $e->getHint());
|
||||
$thrown = true;
|
||||
} catch(\InvalidArgumentException $e) {
|
||||
|
@ -598,7 +598,7 @@ class ManagerTest extends \Test\TestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* @expectedException \OC\HintException
|
||||
* @expectedException \OCP\Share\Exceptions\GenericShareException
|
||||
* @expectedExceptionMessage Expiration date is in the past
|
||||
*/
|
||||
public function testvalidateExpirationDateInPast() {
|
||||
|
@ -644,7 +644,7 @@ class ManagerTest extends \Test\TestCase {
|
|||
|
||||
try {
|
||||
$this->invokePrivate($this->manager, 'validateExpirationDate', [$share]);
|
||||
} catch (\OC\HintException $e) {
|
||||
} catch (\OCP\Share\Exceptions\GenericShareException $e) {
|
||||
$this->assertEquals('Cannot set expiration date more than 3 days in the future', $e->getMessage());
|
||||
$this->assertEquals('Cannot set expiration date more than 3 days in the future', $e->getHint());
|
||||
$this->assertEquals(404, $e->getCode());
|
||||
|
|
Loading…
Reference in New Issue