Exemple #1
0
 public function testGetSharesBy()
 {
     $share = $this->manager->newShare();
     $node = $this->getMock('OCP\\Files\\Folder');
     $this->defaultProvider->expects($this->once())->method('getSharesBy')->with($this->equalTo('user'), $this->equalTo(\OCP\Share::SHARE_TYPE_USER), $this->equalTo($node), $this->equalTo(true), $this->equalTo(1), $this->equalTo(1))->willReturn([$share]);
     $shares = $this->manager->getSharesBy('user', \OCP\Share::SHARE_TYPE_USER, $node, true, 1, 1);
     $this->assertCount(1, $shares);
     $this->assertSame($share, $shares[0]);
 }
Exemple #2
0
 /**
  * The getShares function.
  *
  * - Get shares by the current user
  * - Get shares by the current user and reshares (?reshares=true)
  * - Get shares with the current user (?shared_with_me=true)
  * - Get shares for a specific path (?path=...)
  * - Get all shares in a folder (?subfiles=true&path=..)
  *
  * @return \OC_OCS_Result
  */
 public function getShares()
 {
     $sharedWithMe = $this->request->getParam('shared_with_me', null);
     $reshares = $this->request->getParam('reshares', null);
     $subfiles = $this->request->getParam('subfiles');
     $path = $this->request->getParam('path', null);
     if ($sharedWithMe === 'true') {
         return $this->getSharedWithMe();
     }
     if ($path !== null) {
         $userFolder = $this->rootFolder->getUserFolder($this->currentUser->getUID());
         try {
             $path = $userFolder->get($path);
         } catch (\OCP\Files\NotFoundException $e) {
             return new \OC_OCS_Result(null, 404, 'wrong path, file/folder doesn\'t exist');
         }
     }
     if ($subfiles === 'true') {
         return $this->getSharesInDir($path);
     }
     if ($reshares === 'true') {
         $reshares = true;
     } else {
         $reshares = false;
     }
     // Get all shares
     $userShares = $this->shareManager->getSharesBy($this->currentUser, \OCP\Share::SHARE_TYPE_USER, $path, $reshares, -1, 0);
     $groupShares = $this->shareManager->getSharesBy($this->currentUser, \OCP\Share::SHARE_TYPE_GROUP, $path, $reshares, -1, 0);
     $linkShares = $this->shareManager->getSharesBy($this->currentUser, \OCP\Share::SHARE_TYPE_LINK, $path, $reshares, -1, 0);
     //TODO: Add federated shares
     $shares = array_merge($userShares, $groupShares, $linkShares);
     $formatted = [];
     foreach ($shares as $share) {
         $formatted[] = $this->formatShare($share);
     }
     return new \OC_OCS_Result($formatted);
 }