[Zope] allow access to fileobject depending on role
leandros van den berg
l.vandenberg at geo.uu.nl
Thu Jun 1 04:49:13 EDT 2006
> Chris Withers wrote:
>> I'm having trouble with the precondition field of a fileobject. I've got a fileobject (a PDF-file) and its precondition field states myPrecondition, which is a DTML Method and its code is:
> This is insane...
Why is this insane? Because of using a precondition, the code of the
method or the hole idea?
>> Note: Using the security setting and assigning roles is not an option
>> because the fileobject is recreated every night.
>
>
> Rubbish. Two options:
>
> - don't recreate the file each night, just edit its contents.
I'm thinking of manage_upload or update_data to edit the file content,
but I can't figure out how to apply them. Hell, I can't even figure out
how to select the file that is to be updated!
I use the following two objects for replacing the existing file.
1. External Method 'printbestand'
def printbestand():
filename='/home/leandros/myzope/instance/Extensions/printbestand.pdf'
f=open(filename)
filebody=f.read()
f.close
return filebody
if __name__ == "__main__":
print printbestand()
2. Script (Python) 'printbestand_upload':
try:
context.manage_delObjects(ids='printbestand.pdf')
except:
pass
fileobject = context.printbestand()
context.manage_addFile('printbestand.pdf',file=fileobject,
content_type='application/pdf')
return 0
As you can see in 'printbestand_upload', the file is deleted first and
then the new file is added. Obviously the existing file should not be
deleted but its content updatad/edited/replaced.
My question are:
Q1: How do I select the file that is to be updated?
Q2: How do I update the content of that file with the content of the new
file?
> - when you recreate the file, set the role to permission mapping in the
> same lump of code.
OK, how do I do that?
>
> cheers,
>
> Chris
>
Kind regards,
Leandros
More information about the Zope
mailing list