diff options
author | Robin Appelman <robin@icewind.nl> | 2015-11-10 14:36:15 +0100 |
---|---|---|
committer | Robin Appelman <robin@icewind.nl> | 2015-11-10 14:36:15 +0100 |
commit | bbe2f5c2d57d57d5f89a76b63b9ba43bd0168169 (patch) | |
tree | cdd65f29a07f44762093636b9ab0010537c7d1c8 /lib | |
parent | f77c6dbbed34fc1dcaaa3d35c7a9ecc499ce3e36 (diff) | |
parent | 20cad09f7fa7f81862fbfb538bed7ddd8c0923b3 (diff) | |
download | nextcloud-server-bbe2f5c2d57d57d5f89a76b63b9ba43bd0168169.tar.gz nextcloud-server-bbe2f5c2d57d57d5f89a76b63b9ba43bd0168169.zip |
Merge pull request #20224 from owncloud/fileinfo-owner
Add getOwner to FileInfo
Diffstat (limited to 'lib')
-rw-r--r-- | lib/private/files/fileinfo.php | 20 | ||||
-rw-r--r-- | lib/private/files/node/node.php | 4 | ||||
-rw-r--r-- | lib/private/files/view.php | 19 | ||||
-rw-r--r-- | lib/public/files/fileinfo.php | 8 |
4 files changed, 44 insertions, 7 deletions
diff --git a/lib/private/files/fileinfo.php b/lib/private/files/fileinfo.php index cf9524241dd..bb810dd45ed 100644 --- a/lib/private/files/fileinfo.php +++ b/lib/private/files/fileinfo.php @@ -28,6 +28,8 @@ namespace OC\Files; +use OCP\IUser; + class FileInfo implements \OCP\Files\FileInfo, \ArrayAccess { /** * @var array $data @@ -55,18 +57,25 @@ class FileInfo implements \OCP\Files\FileInfo, \ArrayAccess { private $mount; /** + * @var IUser + */ + private $owner; + + /** * @param string|boolean $path * @param Storage\Storage $storage * @param string $internalPath * @param array $data * @param \OCP\Files\Mount\IMountPoint $mount + * @param \OCP\IUser|null $owner */ - public function __construct($path, $storage, $internalPath, $data, $mount) { + public function __construct($path, $storage, $internalPath, $data, $mount, $owner= null) { $this->path = $path; $this->storage = $storage; $this->internalPath = $internalPath; $this->data = $data; $this->mount = $mount; + $this->owner = $owner; } public function offsetSet($offset, $value) { @@ -267,4 +276,13 @@ class FileInfo implements \OCP\Files\FileInfo, \ArrayAccess { public function getMountPoint() { return $this->mount; } + + /** + * Get the owner of the file + * + * @return \OCP\IUser + */ + public function getOwner() { + return $this->owner; + } } diff --git a/lib/private/files/node/node.php b/lib/private/files/node/node.php index 943d12122e6..1b52243fcb4 100644 --- a/lib/private/files/node/node.php +++ b/lib/private/files/node/node.php @@ -347,4 +347,8 @@ class Node implements \OCP\Files\Node { public function getMountPoint() { return $this->getFileInfo()->getMountPoint(); } + + public function getOwner() { + return $this->getFileInfo()->getOwner(); + } } diff --git a/lib/private/files/view.php b/lib/private/files/view.php index 887b18530d7..7dd83588ec6 100644 --- a/lib/private/files/view.php +++ b/lib/private/files/view.php @@ -1250,7 +1250,8 @@ class View { $data['permissions'] |= \OCP\Constants::PERMISSION_DELETE; } - return new FileInfo($path, $storage, $internalPath, $data, $mount); + $owner = \OC::$server->getUserManager()->get($storage->getOwner($internalPath)); + return new FileInfo($path, $storage, $internalPath, $data, $mount, $owner); } /** @@ -1316,7 +1317,8 @@ class View { if (\OCP\Util::isSharingDisabledForUser()) { $content['permissions'] = $content['permissions'] & ~\OCP\Constants::PERMISSION_SHARE; } - $files[] = new FileInfo($path . '/' . $content['name'], $storage, $content['path'], $content, $mount); + $owner = \OC::$server->getUserManager()->get($storage->getOwner($content['path'])); + $files[] = new FileInfo($path . '/' . $content['name'], $storage, $content['path'], $content, $mount, $owner); } //add a folder for any mountpoint in this directory and add the sizes of other mountpoints to the folders @@ -1385,7 +1387,8 @@ class View { $rootEntry['permissions'] = $rootEntry['permissions'] & ~\OCP\Constants::PERMISSION_SHARE; } - $files[] = new FileInfo($path . '/' . $rootEntry['name'], $subStorage, '', $rootEntry, $mount); + $owner = \OC::$server->getUserManager()->get($subStorage->getOwner('')); + $files[] = new FileInfo($path . '/' . $rootEntry['name'], $subStorage, '', $rootEntry, $mount, $owner); } } } @@ -1507,7 +1510,8 @@ class View { $internalPath = $result['path']; $path = $mountPoint . $result['path']; $result['path'] = substr($mountPoint . $result['path'], $rootLength); - $files[] = new FileInfo($path, $storage, $internalPath, $result, $mount); + $owner = \OC::$server->getUserManager()->get($storage->getOwner($internalPath)); + $files[] = new FileInfo($path, $storage, $internalPath, $result, $mount, $owner); } } @@ -1525,7 +1529,8 @@ class View { $internalPath = $result['path']; $result['path'] = rtrim($relativeMountPoint . $result['path'], '/'); $path = rtrim($mountPoint . $internalPath, '/'); - $files[] = new FileInfo($path, $storage, $internalPath, $result, $mount); + $owner = \OC::$server->getUserManager()->get($storage->getOwner($internalPath)); + $files[] = new FileInfo($path, $storage, $internalPath, $result, $mount, $owner); } } } @@ -1666,6 +1671,7 @@ class View { $mount = $this->getMount($path); $storage = $mount->getStorage(); $internalPath = $mount->getInternalPath($this->getAbsolutePath($path)); + $owner = \OC::$server->getUserManager()->get($storage->getOwner($internalPath)); return new FileInfo( $this->getAbsolutePath($path), $storage, @@ -1680,7 +1686,8 @@ class View { 'encrypted' => false, 'permissions' => \OCP\Constants::PERMISSION_ALL ], - $mount + $mount, + $owner ); } diff --git a/lib/public/files/fileinfo.php b/lib/public/files/fileinfo.php index accbe04e044..1af13302af0 100644 --- a/lib/public/files/fileinfo.php +++ b/lib/public/files/fileinfo.php @@ -229,4 +229,12 @@ interface FileInfo { * @since 8.0.0 */ public function getMountPoint(); + + /** + * Get the owner of the file + * + * @return \OCP\IUser + * @since 9.0.0 + */ + public function getOwner(); } |