Forum OpenACS Q&A: Re: file storage problem

Collapse
3: Re: file storage problem (response to 2)
Posted by bill kellerman on
i took the version info query from file.tcl and put it in file-postgresql.xql in the version-info query:

select r.title,
      r.revision_id as version_id,
      person__name(o.creation_user) as author,
      r.mime_type as type,
      to_char(o.last_modified,'YYYY-MM-DD HH24:MI') as last_modified,
      r.description,
      acs_permission__permission_p(r.revision_id,:user_id,'admin') as admin_p,
      acs_permission__permission_p(r.revision_id,:user_id,'delete') as delete_p,
      r.content_length as content_size
from  acs_objects o, cr_revisions r
where  o.object_id = r.revision_id
and    acs_permission__permission_p(r.revision_id, :user_id, 'read') = 't'
and    o.context_id = :file_id
        $show_versions order by last_modified desc

i had to add the line "add o.context_id = :file_id".

it seems to be working now.  what's going on??

Collapse
4: Re: file storage problem (response to 3)
Posted by bill kellerman on
mmph...  sorry, correction...  version-info query in file-postgresql.xql changed to:

select  r.title,
                r.revision_id as version_id,
                person__name(o.creation_user) as author,
                r.mime_type as type,
                to_char(fs_objects.last_modified, 'YYYY-MM-DD HH24:MI') as last_modified,
                r.description,
                acs_permission__permission_p(r.revision_id,:user_id,'admin') as admin_p,
                acs_permission__permission_p(r.revision_id,:user_id,'delete') as delete_p,
                r.content_length as content_size
        from  acs_objects o, cr_revisions r, cr_items i
        where o.object_id = r.revision_id
          and r.item_id = i.item_id
          and r.item_id = :file_id
          and exists (select 1
                      from acs_object_party_privilege_map m
                      where m.object_id = r.revision_id
                        and m.party_id = :user_id
                        and m.privilege = 'read')
        $show_versions order by last_modified desc

i don't know if this query is correct or efficient, but so far it is working.