【问题标题】:symfony2 access private files as admin usersymfony2 以管理员用户身份访问私有文件
【发布时间】:2013-12-05 09:52:28
【问题描述】:

在我的 Symfony2.3 项目中,我有一个前端网站和一个后端。后端由 security.yml 文件保护,只有 role_admin 用户可以访问后端。

我现在想要的是只有管理员用户可以下载存储在资产中的 pdf 文件。

有没有办法做到这一点?

现在,所有访问者都可以通过 url 链接访问我的 pdfs 文件。

我是否必须将此 pdf 移动到另一个文件夹?或者可能使用 htaccess?

【问题讨论】:

    标签: php symfony assets


    【解决方案1】:

    您需要将这些文件存储在您的网络服务器无法直接访问的位置。 (即 不在 web 文件夹或其子文件夹之一中)

    然后创建一个控制器/动作,在提供文件之前检查下载权限(即某个用户角色)。

    阅读文档章节 Serving Files 以快速了解如何在 symfony2 中提供文件。

    【讨论】:

    • 非常感谢。如果我将 pdf 存储到 app/Resources 文件夹中是否有意义?以及通过控制器操作提供 pdf 内容的方式是什么?
    • 您可以在app/Resources 中创建一个子文件夹来存储您的文件。只是不要将其命名为public,因为包含的文件将被assets:install 命令拾取并被复制/符号链接到不需要的web 文件夹。我在答案中添加了指向文档的链接。
    • 再次感谢,对我帮助很大!
    【解决方案2】:

    添加一个角色,例如 ROLE_ACCESS_PRIVATE ASSETS 并将其分配给管理员用户。像其他任何方法一样检查代码中的权限。

    编辑:当然,这是假设控制器阻碍了这些文件。

    【讨论】:

      猜你喜欢
      • 2015-10-31
      • 2013-03-24
      • 2011-07-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-14
      • 1970-01-01
      相关资源
      最近更新 更多