summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorVincent Petry <pvince81@owncloud.com>2014-06-11 18:28:55 +0200
committerVincent Petry <pvince81@owncloud.com>2014-06-11 18:28:55 +0200
commit75a53b3c4956724b7e242ad58b487bccb9be2279 (patch)
tree18ed2716dc7a421582ec6b4a73a4afed3402d77c /lib
parent2facfe9984230b70cf24467ca439e9192388e30a (diff)
parenta9786070118f67881750d40458e88f6795363e55 (diff)
downloadnextcloud-server-75a53b3c4956724b7e242ad58b487bccb9be2279.tar.gz
nextcloud-server-75a53b3c4956724b7e242ad58b487bccb9be2279.zip
Merge pull request #8901 from owncloud/permissions-update-cache
Save the permissions in the filecache if it's not saved yet
Diffstat (limited to 'lib')
-rw-r--r--lib/private/files/view.php24
1 files changed, 12 insertions, 12 deletions
diff --git a/lib/private/files/view.php b/lib/private/files/view.php
index d42f6cbf9fe..afccdf9f733 100644
--- a/lib/private/files/view.php
+++ b/lib/private/files/view.php
@@ -861,8 +861,12 @@ class View {
}
if ($data and isset($data['fileid'])) {
+ if ($data['permissions'] === 0) {
+ $data['permissions'] = $storage->getPermissions($data['path']);
+ $cache->update($data['fileid'], array('permissions' => $data['permissions']));
+ }
if ($includeMountPoints and $data['mimetype'] === 'httpd/unix-directory') {
- //add the sizes of other mountpoints to the folder
+ //add the sizes of other mount points to the folder
$extOnly = ($includeMountPoints === 'ext');
$mountPoints = Filesystem::getMountPoints($path);
foreach ($mountPoints as $mountPoint) {
@@ -917,21 +921,17 @@ class View {
}
$folderId = $cache->getId($internalPath);
+ /**
+ * @var \OC\Files\FileInfo[] $files
+ */
$files = array();
$contents = $cache->getFolderContents($internalPath, $folderId); //TODO: mimetype_filter
foreach ($contents as $content) {
- $files[] = new FileInfo($path . '/' . $content['name'], $storage, $content['path'], $content);
- }
-
- $ids = array();
- foreach ($files as $i => $file) {
- $files[$i]['type'] = $file['mimetype'] === 'httpd/unix-directory' ? 'dir' : 'file';
- $ids[] = $file['fileid'];
-
- if (!isset($permissions[$file['fileid']])) {
- $permissions[$file['fileid']] = $storage->getPermissions($file['path']);
+ if ($content['permissions'] === 0) {
+ $content['permissions'] = $storage->getPermissions($content['path']);
+ $cache->update($content['fileid'], array('permissions' => $content['permissions']));
}
- $files[$i]['permissions'] = $permissions[$file['fileid']];
+ $files[] = new FileInfo($path . '/' . $content['name'], $storage, $content['path'], $content);
}
//add a folder for any mountpoint in this directory and add the sizes of other mountpoints to the folders