postgresql
7.2
select fs.object_id, fs.name, fs.parent_id, fs.file_upload_name,
acs_permission__permission_p(fs.object_id, :user_id, 'read') as copy_p, fs.type
from fs_objects fs
where fs.object_id in ([template::util::tcl_to_sql_list $object_id])
order by copy_p
select file_storage__copy_file(
:object_id,
:folder_id,
:user_id,
:peer_addr,
:file_upload_name,
:name
)
select content_folder__copy (
:object_id,
:folder_id,
:user_id,
:peer_addr,
:file_upload_name,
:name
)
select
cf.folder_id, ci1.parent_id, cf.label, tree_level(ci1.tree_sortkey) as level_num
from
cr_folders cf,
cr_items ci1,
cr_items ci2
where ci1.tree_sortkey between ci2.tree_sortkey and tree_right(ci2.tree_sortkey)
and ci2.item_id=:root_folder_id
and ci1.item_id=cf.folder_id
and acs_permission__permission_p(cf.folder_id, :user_id, 'write')
order by ci1.tree_sortkey, cf.label
postgresql8.4
With folder_tree as (
select
cf.folder_id, ci1.parent_id, cf.label,
tree_level(ci1.tree_sortkey) as level_num,
acs_permission__permission_p(cf.folder_id, :user_id, 'write') as permission_p
from cr_folders cf, cr_items ci1, cr_items ci2
where
ci1.tree_sortkey between ci2.tree_sortkey and
tree_right(ci2.tree_sortkey)
and ci2.item_id= :root_folder_id
and ci1.item_id=cf.folder_id
order by ci1.tree_sortkey, cf.label
) select folder_id, parent_id, label, level_num from folder_tree where permission_p is true;