]> source.dussan.org Git - nextcloud-server.git/commitdiff
Only retrieve the current user's permissions
authorMichael Gapczynski <mtgap@owncloud.com>
Wed, 29 May 2013 22:08:18 +0000 (18:08 -0400)
committerMichael Gapczynski <mtgap@owncloud.com>
Wed, 29 May 2013 22:08:18 +0000 (18:08 -0400)
lib/files/cache/permissions.php
lib/files/view.php

index 73473142c74ad346dbe976926ccfe40e478c40ed..29c30b0f36c8cb657f4bd28ea8bba4576ec9dcd5 100644 (file)
@@ -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'];
index ffe0e155c6c128b0c498d663f544aa6c2da78d9c..ecb0f30400a43545a444cc86a402421bb6f619f8 100644 (file)
@@ -797,7 +797,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) {