diff options
author | Michael Gapczynski <mtgap@owncloud.com> | 2013-05-30 02:08:18 +0400 |
---|---|---|
committer | Philipp Dreimann <philipp@dreimann.net> | 2013-07-06 23:34:38 +0400 |
commit | 3244d23bcfc997e8136424a7747b830eff3e47a2 (patch) | |
tree | 7716b04846206016f9e3420348f827e189b1f5fe /lib/files | |
parent | 918b1b77a2f09798070e9a2513a65b70f65d6f25 (diff) |
Only retrieve the current user's permissions
Diffstat (limited to 'lib/files')
-rw-r--r-- | lib/files/cache/permissions.php | 9 | ||||
-rw-r--r-- | lib/files/view.php | 2 |
2 files changed, 6 insertions, 5 deletions
diff --git a/lib/files/cache/permissions.php b/lib/files/cache/permissions.php index 03f9292a932..58a07aad0bf 100644 --- a/lib/files/cache/permissions.php +++ b/lib/files/cache/permissions.php @@ -89,14 +89,15 @@ class Permissions { * get the permissions for all files in a folder * * @param int $parentId + * @param string $user * @return int[] */ - public function getDirectoryPermissions($parentId) { + public function getDirectoryPermissions($parentId, $user) { $query = \OC_DB::prepare('SELECT `*PREFIX*permissions`.`fileid`, `permissions` - FROM `*PREFIX*permissions` INNER JOIN `*PREFIX*filecache` ON `*PREFIX*permissions`.fileid = `*PREFIX*filecache`.fileid - WHERE `*PREFIX*filecache`.parent = ?'); + FROM `*PREFIX*permissions` INNER JOIN `*PREFIX*filecache` ON `*PREFIX*permissions`.`fileid` = `*PREFIX*filecache`.`fileid` + WHERE `*PREFIX*filecache`.`parent` = ? AND `*PREFIX*permissions`.`user` = ?'); - $result = $query->execute(array($parentId)); + $result = $query->execute(array($parentId, $user)); $filePermissions = array(); while ($row = $result->fetchRow()) { $filePermissions[$row['fileid']] = $row['permissions']; diff --git a/lib/files/view.php b/lib/files/view.php index 0cd404a5282..1753d9a89ba 100644 --- a/lib/files/view.php +++ b/lib/files/view.php @@ -812,7 +812,7 @@ class View { } $files = $cache->getFolderContents($internalPath); //TODO: mimetype_filter - $permissions = $permissionsCache->getDirectoryPermissions($cache->getId($internalPath)); + $permissions = $permissionsCache->getDirectoryPermissions($cache->getId($internalPath), $user); $ids = array(); foreach ($files as $i => $file) { |