0

在 symfony 5.0 应用程序中,我需要集成一个为用户提供基本文件处理的文件管理器。

每个用户只能管理其特定用户文件夹中的文件,该文件夹(显然)不在公用文件夹中,而是在某个路径中,例如

../data/images/[user_id]/

我选择的文件管理器需要这个路径作为参数来做到这一点。

如何在 symfony 中定义访问规则以定义此行为以授予对特定但动态路径的访问权限,该路径取决于当前登录的用户?

4

1 回答 1

0

您必须在控制器或文件管理器中处理该问题。您必须创建一个数据库模式,为每个用户和每个目录注册访问权限。

您可以在和实体之间创建一个many to manymany to one关系。此关系将目录与其所有者映射userdirectory

  • 如果每个用户都有一个目录,可以在创建用户的时候直接创建。
  • 如果用户可以没有目录,则只有在他决定创建目录时才能创建目录。
  • 如果用户可以拥有多个目录(多对多关系),则每次用户决定创建一个目录时,您都必须创建该目录。

为了处理访问权限,您必须在用户和目录之间创建第二个关系。此关系将目录与可以访问它的用户映射

  • 我认为这种关系应该是多对多的,因为显然在您的情况下,用户可以访问许多目录,并且许多用户可以访问目录

为了知道用户是否可以访问资源,文件管理器将从数据库中获取访问权限,然后提供文件或返回错误

于 2020-04-08T12:04:12.433 回答