flaskadmin:如何根据单个用户而不是角色自定义视图?

2024-06-16 14:11:45 发布

您现在位置:Python中文网/ 问答频道 /正文

众所周知,flaskadmin允许具有相同角色的用户拥有相同的权限。不过,在我的应用程序中,我只想限制创建查询的用户进行查看和编辑。在

例如,有许多具有相同角色的用户称为“developers”,他/她创建代码评审并等待批准。在

下面的图片显示开发人员Gina可以在列表中看到开发人员Bill的项目(这是不需要的)。我想实现的是只有吉娜和评审人员(WeskerSteve这里)可以在列表中查看这个项目。在

我把代码here ,如果不合适,我会删除链接。提前谢谢。在

enter image description here


Tags: 项目代码用户应用程序权限角色编辑列表
3条回答

您应该创建另一个用户角色来实现您的目标。它将帮助您节省时间,并且您可以轻松地为特定的个人或组自定义视图。在

请看一下这个link

重写ModelView时,可以筛选结果以显示记录的用户自己的结果:

def get_query(self):
  return self.session.query(self.model).filter(self.model.user==current_user)

def get_count_query(self):
  return self.session.query(func.count('*')).filter(self.model.user==current_user)

您可以在此处找到更多信息: Flask-Admin default filters

根据您提供的信息,解决方案可能如下所示

  1. 重写/扩展收集Project记录的逻辑,以便只有属于当前用户的记录。下面是一个要演示的示例:

    伪sql

    SELECT team, name, project_name, version, ... FROM projects where name = current_user.name

  2. {/strong>允许对记录进行修改以使记录被重写

相关问题 更多 >