tyhand / document-downloader-bundle
一个快速、懒惰且有些无用的包,用于处理静态PDF文件的下载链接
Requires
- symfony/symfony: >=2.2.0
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'选项不能同时使用。