繁体   English   中英

flask-admin:如何根据个人用户而不是角色自定义视图?

[英]flask-admin: how to customize the view according to the individual user instead of the role?

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

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

下图显示了开发人员Gina可以在列表中看到开发人员Bill的项目(这是不希望的)。 我只想实现Gina,而审阅者(此处为WeskerSteve )可以在列表中查看此项目。

我将代码放在这里 ,如果不合适,我将删除链接。 提前致谢。

在此处输入图片说明

覆盖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默认过滤器

您必须创建另一个用户角色才能实现目标。 这将帮助您节省时间,并且可以轻松地为特定的个人或团体自定义视图。

请通过此链接

有了您提供的信息后,解决方案可能如下所示

  1. 重写/扩展收集Project记录的逻辑,以便仅存在属于当前用户的记录。 一个示例来演示可能如下所示:

    伪SQL

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

  2. 重写/扩展负责保存记录的逻辑,以便它将验证是否允许 current_user 更改给定的项目记录

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM