diff options
author | icewind1991 <icewind1991@gmail.com> | 2013-05-30 05:54:29 -0700 |
---|---|---|
committer | icewind1991 <icewind1991@gmail.com> | 2013-05-30 05:54:29 -0700 |
commit | aa1c5a5d63865fc35783dbbff3af0cc64a1bb4cf (patch) | |
tree | 176cc81cf888633c328f2cc67f17af9103431f0e /lib/files/cache | |
parent | 8e1d9261aa7cd9f9855f038feb5a9d8bbcc48a18 (diff) | |
parent | 5a47054505bfca3c3ba6e947cac6b963cd45b416 (diff) | |
download | nextcloud-server-aa1c5a5d63865fc35783dbbff3af0cc64a1bb4cf.tar.gz nextcloud-server-aa1c5a5d63865fc35783dbbff3af0cc64a1bb4cf.zip |
Merge pull request #3529 from owncloud/folder-permissions
Cache: provide a function to get the permissions of all files in a folder with one query
Diffstat (limited to 'lib/files/cache')
-rw-r--r-- | lib/files/cache/permissions.php | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/lib/files/cache/permissions.php b/lib/files/cache/permissions.php index faa5ff5eacc..29c30b0f36c 100644 --- a/lib/files/cache/permissions.php +++ b/lib/files/cache/permissions.php @@ -86,6 +86,26 @@ class Permissions { } /** + * get the permissions for all files in a folder + * + * @param int $parentId + * @param string $user + * @return int[] + */ + 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` = ? AND `*PREFIX*permissions`.`user` = ?'); + + $result = $query->execute(array($parentId, $user)); + $filePermissions = array(); + while ($row = $result->fetchRow()) { + $filePermissions[$row['fileid']] = $row['permissions']; + } + return $filePermissions; + } + + /** * remove the permissions for a file * * @param int $fileId |