[英]flask-admin: how to customize the view according to the individual user instead of the role?
众所周知,flask-admin允许具有相同角色的用户拥有相同的特权。 但是,在我的应用程序中,我只想限制创建查询的用户进行查看和编辑。
例如,有许多用户具有相同的角色,称为“开发人员” ,他/她创建代码审查并等待批准。
下图显示了开发人员Gina可以在列表中看到开发人员Bill的项目(这是不希望的)。 我只想实现Gina,而审阅者(此处为Wesker和Steve )可以在列表中查看此项目。
我将代码放在这里 ,如果不合适,我将删除链接。 提前致谢。
覆盖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默认过滤器
您必须创建另一个用户角色才能实现目标。 这将帮助您节省时间,并且可以轻松地为特定的个人或团体自定义视图。
请通过此链接
有了您提供的信息后,解决方案可能如下所示
重写/扩展收集Project
记录的逻辑,以便仅存在属于当前用户的记录。 一个示例来演示可能如下所示:
伪SQL
SELECT team, name, project_name, version, ... FROM projects where name = current_user.name
重写/扩展负责保存记录的逻辑,以便它将验证是否允许 current_user
更改给定的项目记录
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.