特定文件夹的Symfony访问处理取决于登录的用户

问题描述 投票:0回答:1

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

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

../data/images/[user_id]/

我选择的文件管理器需要此路径作为参数来实现它的魔力。

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

symfony symfony4 symfony-security symfony5 symfony-filesystem
1个回答
0
投票

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

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

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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.