@@ -40,59 +40,59 @@ |
||
| 40 | 40 | * @package OCA\DAV\Connector\Sabre |
| 41 | 41 | */ |
| 42 | 42 | class DavAclPlugin extends \Sabre\DAVACL\Plugin { |
| 43 | - public function __construct() { |
|
| 44 | - $this->hideNodesFromListings = true; |
|
| 45 | - $this->allowUnauthenticatedAccess = false; |
|
| 46 | - } |
|
| 43 | + public function __construct() { |
|
| 44 | + $this->hideNodesFromListings = true; |
|
| 45 | + $this->allowUnauthenticatedAccess = false; |
|
| 46 | + } |
|
| 47 | 47 | |
| 48 | - function checkPrivileges($uri, $privileges, $recursion = self::R_PARENT, $throwExceptions = true) { |
|
| 49 | - $access = parent::checkPrivileges($uri, $privileges, $recursion, false); |
|
| 50 | - if($access === false && $throwExceptions) { |
|
| 51 | - /** @var INode $node */ |
|
| 52 | - $node = $this->server->tree->getNodeForPath($uri); |
|
| 48 | + function checkPrivileges($uri, $privileges, $recursion = self::R_PARENT, $throwExceptions = true) { |
|
| 49 | + $access = parent::checkPrivileges($uri, $privileges, $recursion, false); |
|
| 50 | + if($access === false && $throwExceptions) { |
|
| 51 | + /** @var INode $node */ |
|
| 52 | + $node = $this->server->tree->getNodeForPath($uri); |
|
| 53 | 53 | |
| 54 | - switch(get_class($node)) { |
|
| 55 | - case AddressBook::class: |
|
| 56 | - $type = 'Addressbook'; |
|
| 57 | - break; |
|
| 58 | - default: |
|
| 59 | - $type = 'Node'; |
|
| 60 | - break; |
|
| 61 | - } |
|
| 62 | - throw new NotFound( |
|
| 63 | - sprintf( |
|
| 64 | - "%s with name '%s' could not be found", |
|
| 65 | - $type, |
|
| 66 | - $node->getName() |
|
| 67 | - ) |
|
| 68 | - ); |
|
| 69 | - } |
|
| 54 | + switch(get_class($node)) { |
|
| 55 | + case AddressBook::class: |
|
| 56 | + $type = 'Addressbook'; |
|
| 57 | + break; |
|
| 58 | + default: |
|
| 59 | + $type = 'Node'; |
|
| 60 | + break; |
|
| 61 | + } |
|
| 62 | + throw new NotFound( |
|
| 63 | + sprintf( |
|
| 64 | + "%s with name '%s' could not be found", |
|
| 65 | + $type, |
|
| 66 | + $node->getName() |
|
| 67 | + ) |
|
| 68 | + ); |
|
| 69 | + } |
|
| 70 | 70 | |
| 71 | - return $access; |
|
| 72 | - } |
|
| 71 | + return $access; |
|
| 72 | + } |
|
| 73 | 73 | |
| 74 | - public function propFind(PropFind $propFind, INode $node) { |
|
| 75 | - // If the node is neither readable nor writable then fail unless its of |
|
| 76 | - // the standard user-principal |
|
| 77 | - if(!($node instanceof User)) { |
|
| 78 | - $path = $propFind->getPath(); |
|
| 79 | - $readPermissions = $this->checkPrivileges($path, '{DAV:}read', self::R_PARENT, false); |
|
| 80 | - $writePermissions = $this->checkPrivileges($path, '{DAV:}write', self::R_PARENT, false); |
|
| 81 | - if ($readPermissions === false && $writePermissions === false) { |
|
| 82 | - $this->checkPrivileges($path, '{DAV:}read', self::R_PARENT, true); |
|
| 83 | - $this->checkPrivileges($path, '{DAV:}write', self::R_PARENT, true); |
|
| 84 | - } |
|
| 85 | - } |
|
| 74 | + public function propFind(PropFind $propFind, INode $node) { |
|
| 75 | + // If the node is neither readable nor writable then fail unless its of |
|
| 76 | + // the standard user-principal |
|
| 77 | + if(!($node instanceof User)) { |
|
| 78 | + $path = $propFind->getPath(); |
|
| 79 | + $readPermissions = $this->checkPrivileges($path, '{DAV:}read', self::R_PARENT, false); |
|
| 80 | + $writePermissions = $this->checkPrivileges($path, '{DAV:}write', self::R_PARENT, false); |
|
| 81 | + if ($readPermissions === false && $writePermissions === false) { |
|
| 82 | + $this->checkPrivileges($path, '{DAV:}read', self::R_PARENT, true); |
|
| 83 | + $this->checkPrivileges($path, '{DAV:}write', self::R_PARENT, true); |
|
| 84 | + } |
|
| 85 | + } |
|
| 86 | 86 | |
| 87 | - return parent::propFind($propFind, $node); |
|
| 88 | - } |
|
| 87 | + return parent::propFind($propFind, $node); |
|
| 88 | + } |
|
| 89 | 89 | |
| 90 | - function beforeMethod(RequestInterface $request, ResponseInterface $response) { |
|
| 91 | - $path = $request->getPath(); |
|
| 90 | + function beforeMethod(RequestInterface $request, ResponseInterface $response) { |
|
| 91 | + $path = $request->getPath(); |
|
| 92 | 92 | |
| 93 | - // prevent the plugin from causing an unneeded overhead for file requests |
|
| 94 | - if (strpos($path, 'files/') !== 0) { |
|
| 95 | - parent::beforeMethod($request, $response); |
|
| 96 | - } |
|
| 97 | - } |
|
| 93 | + // prevent the plugin from causing an unneeded overhead for file requests |
|
| 94 | + if (strpos($path, 'files/') !== 0) { |
|
| 95 | + parent::beforeMethod($request, $response); |
|
| 96 | + } |
|
| 97 | + } |
|
| 98 | 98 | } |