tyhand/document-downloader-bundle

一个快速、懒惰且有些无用的包,用于处理静态PDF文件的下载链接

v0.1.0 2014-12-01 17:00 UTC

This package is not auto-updated.

Last update: 2024-09-24 03:59:39 UTC


README

一个快速、懒惰且有些无用的包,提供了一种更快的方式生成静态PDF文档的链接,同时提供了一些基本的安全性。

安装

首先将项目添加到您的Symfony项目的composer.json文件中,这可以通过以下命令行完成。

$ composer require tyhand/document-downloader-bundle "~0.1"

接下来,将包添加到您的项目AppKernel.php文件中的register Bundles方法。

// app/AppKernel.php
public function registerBundles()
{
    $bundles = array(
        // ... The other bundles
        new TyHand\DocumentDownloaderBundle\TyHandDocumentDownloaderBundle()
    )
} 

接下来,由于这个包有一个控制器动作,您需要将包的路由文件包含到项目的主路由文件中。

# app/config/routing.yml
TyHandDocumentDownloader:
    resource: "@TyHandDocumentDownloaderBundle/Resources/config/routing.yml"
    prefix: /documents
    # prefix can be whatever you need it to be

最后,该包需要一个指向包含文档列表的文件的路径。默认情况下,包将在app/config/file_list.yml中查找它。如果您希望文档列表文件在那里,则安装完成;但是,如果您需要将文件列表放在其他地方,您可以通过以下方式添加一个配置选项来更改位置。

# app/config/config.yml
tyhand_document_downloader:
    file_list: /path/relative/to/the/app/folder.yml

使用方法

基本

要创建一个指向静态文档的链接,首先将文档添加到文件列表yaml中。

# file_list.yml
my_pdf:
    path: ../Resources/MyPDF.pdf

然后在您希望有文档链接的twig文件中,使用包提供的twig函数创建以下类似的内容。

<a target="_blank" href="{{ tyhand_docdownloader_url('my_pdf') }}">My PDF</a>

基于角色的限制

有两种方式可以根据角色进行限制,'allow'(允许)和'deny'(拒绝)。'allow'设置了一个用户需要至少拥有其中之一的角色才能检索文档的角色列表;而'Deny'设置了一个列表,如果用户拥有其中的任何一个角色,则他们无法检索文档。

例如,如果给定以下配置示例

# file_list.yml
my_pdf:
    path: ../Resources/MyPDF.pdf
    allow:
        - ROLE_USER

supervisor_notice:
    path: ../Resources/SupervisorNotice.pdf
    allow:
        - ROLE_SUPERVISOR

拥有角色['ROLE_USER', 'ROLE_SUPERVISOR']的用户可以查看两个文档,但只有拥有角色['ROLE_USER']的用户可以查看my_pdf文档。如果supervisor_notice的链接在没有supervisor角色的用户可见,那么他们尝试检索时会返回403错误。

另一个示例,这次是'deny'的情况

# file_list.yml
coup_detat_plans:
    path: ../Resources/donotlookatthis.pdf
    deny:
        - ROLE_SUPERVISOR

在这种情况下,任何拥有'ROLE_SUPERVISOR'角色的用户都无法查看该文档。

目前,对于单个文件,'allow'选项和'deny'选项不能同时使用。