Index: openacs-4/packages/file-storage/www/folder-chunk-postgresql.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/file-storage/www/folder-chunk-postgresql.xql,v
diff -u -r1.3 -r1.4
--- openacs-4/packages/file-storage/www/folder-chunk-postgresql.xql 21 Dec 2002 22:28:31 -0000 1.3
+++ openacs-4/packages/file-storage/www/folder-chunk-postgresql.xql 18 Feb 2003 20:56:09 -0000 1.4
@@ -4,20 +4,81 @@
postgresql7.1
- select fs_objects.object_id,
- fs_objects.name,
- fs_objects.live_revision,
- fs_objects.type,
- to_char(fs_objects.last_modified, 'YYYY-MM-DD HH24:MI:SS') as last_modified,
- fs_objects.content_size,
- fs_objects.url,
- fs_objects.key,
- fs_objects.sort_key,
- fs_objects.file_upload_name,
- case when fs_objects.last_modified >= (now() - interval '$n_past_days days') then 1 else 0 end as new_p
- from fs_objects
- where fs_objects.parent_id = :folder_id
- order by sort_key, name
+
+ select fs_objects.object_id,
+ fs_objects.name,
+ fs_objects.live_revision,
+ fs_objects.type,
+ to_char(fs_objects.last_modified, 'YYYY-MM-DD HH24:MI:SS') as last_modified,
+ fs_objects.content_size,
+ fs_objects.url,
+ fs_objects.sort_key,
+ fs_objects.file_upload_name,
+ case when fs_objects.last_modified >= (now() - interval '$n_past_days days') then 1 else 0 end as new_p,
+ delete_p,
+ write_p
+ from
+ (select fs_folders.folder_id as object_id,
+ 0 as live_revision,
+ 'folder' as type,
+ fs_folders.content_size,
+ fs_folders.name,
+ '' as file_upload_name,
+ fs_folders.last_modified,
+ '' as url,
+ fs_folders.parent_id,
+ cast('f' as bool) as write_p,
+ cast('f' as bool) as delete_p,
+ 0 as sort_key
+ from fs_folders
+ where fs_folders.parent_id = :folder_id
+ and exists (select 1
+ from acs_object_party_privilege_map m
+ where m.object_id = fs_folders.folder_id
+ and m.party_id = :viewing_user_id
+ and m.privilege = 'read')
+ union all
+ select fs_files.file_id as object_id,
+ fs_files.live_revision,
+ fs_files.type,
+ fs_files.content_size,
+ fs_files.name,
+ fs_files.file_upload_name,
+ fs_files.last_modified,
+ '' as url,
+ fs_files.parent_id,
+ cast('f' as bool) as write_p,
+ cast('f' as bool) as delete_p,
+ 1 as sort_key
+ from fs_files
+ where fs_files.parent_id = :folder_id
+ and exists (select 1
+ from acs_object_party_privilege_map m
+ where m.object_id = fs_files.file_id
+ and m.party_id = :viewing_user_id
+ and m.privilege = 'read')
+ union all
+ select fs_urls_full.url_id as object_id,
+ 0 as live_revision,
+ 'url' as type,
+ 0 as content_size,
+ fs_urls_full.name,
+ fs_urls_full.name as file_upload_name,
+ fs_urls_full.last_modified,
+ fs_urls_full.url,
+ fs_urls_full.folder_id as parent_id,
+ acs_permission__permission_p(fs_urls.url_id, :viewing_user_id, 'write') as write_p,
+ acs_permission__permission_p(fs_urls.url_id, :viewing_user_id, 'delete') as delete_p,
+ 1 as sort_key
+ from fs_urls_full
+ where fs_urls_full.folder_id = :folder_id
+ and exists (select 1
+ from acs_object_party_privilege_map m
+ where m.object_id = fs_urls_full.url_id
+ and m.party_id = :viewing_user_id
+ and m.privilege = 'read')) as fs_objects
+ order by fs_objects.sort_key, fs_objects.name
+