[Share 2.0] Fix pre_share and post_share hooks

This commit is contained in:
Roeland Jago Douma 2016-01-13 21:48:53 +01:00
parent d0a690fde4
commit 4cc2230c58
2 changed files with 24 additions and 1 deletions

View File

@ -452,6 +452,16 @@ class Manager {
$target = \OC\Files\Filesystem::normalizePath($target);
$share->setTarget($target);
//Get sharewith for hooks
$sharedWith = null;
if ($share->getShareType() === \OCP\Share::SHARE_TYPE_USER) {
$sharedWith = $share->getSharedWith()->getUID();
} else if ($share->getShareType() === \OCP\Share::SHARE_TYPE_GROUP) {
$sharedWith = $share->getSharedWith()->getGID();
} else {
$sharedWith = $share->getSharedWith();
}
// Pre share hook
$run = true;
$error = '';
@ -464,8 +474,10 @@ class Manager {
'fileSource' => $share->getPath()->getId(),
'expiration' => $share->getExpirationDate(),
'token' => $share->getToken(),
'itemTarget' => $share->getTarget(),
'shareWith' => $sharedWith,
'run' => &$run,
'error' => &$error
'error' => &$error,
];
\OC_Hook::emit('OCP\Share', 'pre_shared', $preHookData);
@ -488,7 +500,11 @@ class Manager {
'expiration' => $share->getExpirationDate(),
'token' => $share->getToken(),
'id' => $share->getId(),
'shareWith' => $sharedWith,
'itemTarget' => $share->getTarget(),
'fileTarget' => $share->getTarget(),
];
\OC_Hook::emit('OCP\Share', 'post_shared', $postHookData);
return $share;

View File

@ -1364,6 +1364,8 @@ class ManagerTest extends \Test\TestCase {
$share->expects($this->once())
->method('setTarget')
->with('/target');
$share->method('getTarget')
->willReturn('/target');
$share->expects($this->once())
->method('setExpirationDate')
->with($date);
@ -1388,6 +1390,8 @@ class ManagerTest extends \Test\TestCase {
'token' => 'token',
'run' => true,
'error' => '',
'itemTarget' => '/target',
'shareWith' => null,
];
$hookListnerExpectsPost = [
@ -1400,6 +1404,9 @@ class ManagerTest extends \Test\TestCase {
'expiration' => $date,
'token' => 'token',
'id' => 42,
'itemTarget' => '/target',
'fileTarget' => '/target',
'shareWith' => null,
];
$share->method('getId')->willReturn(42);