如何在plone4.3中禁用下载

时间:2013-10-25 07:42:27

标签: download plone

在plone 4.3中,我在plone4.3 at_download中编写了一些代码。当人们访问包含“at_download”的URL时,它们将被阻止。但是当点击该网址时不包含“at_download”时,他们也可以下载该文件。

感谢。

我使用documentviewer来显示.doc .pdf .ppt,我只是想让他们用文档查看器查看文件。但是不能从url下载文件。

2 个答案:

答案 0 :(得分:1)

不确定这是否可行,但您也可以尝试更改内容上“文件”字段的read_permission

但可能这也会隐藏文件预览(或破坏模板,在这种情况下你必须修复它)。

答案 1 :(得分:0)

为了确保没有人能够获取您的文件,我想最好的方法是创建自己的FileField并修改index_html方法

  1. 您必须创建自己的基于ATFile的内容类型 如果要使用此类型而不是默认的plone文件

  2. ,请使用相同的portal_type
  3. 使用您自己的file

  4. 覆盖CustomFileField字段

    您的FileField可能看起来像......

    from plone.app.blob import field
    
    
    class CustomFileField(field.FileField):
    
        def index_html(self, instance, REQUEST=None, RESPONSE=None,
                       no_output=False, disposition=None):
            """Docstring"""
    
            if self.has_permission_to_download():
                # Default behaviour
                super(CustomFileField, self).index_html(
                    instance,
                    REQUEST=None,
                    RESPONSE=None,
                    no_output=False,
                    disposition=None)
            else:
                # Your code if the user does not have the permission
                raise WhatEverYouWant
    
    
           def has_permission_to_download(self):
               """Do your permission check"""
    
               return bool()
    

    捷径将是一个猴子补丁,但我不建议这样做。