众所周知,flask-admin允许具有相同角色的用户拥有相同的权限。但是,在我的应用中,我只想限制创建查询的用户进行查看和编辑。
例如,有许多用户具有相同的角色,名为"开发人员" ,他/她创建代码审核并等待批准。
下面的图片显示开发人员 Gina 可以在列表中看到开发人员比尔项目(这是不可取的)。我想要实现的只有Gina和评论者( Wesker 和 Steve 这里)可以在列表中查看此项目。
我已经放了代码here 如果不合适,我会删除该链接。提前致谢。
答案 0 :(得分:3)
重写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 :(得分:0)
您必须创建另一个用户角色才能实现目标。它可以帮助您节省时间,并且您可以轻松地为特定个人或团体自定义视图。
请完成此link
答案 2 :(得分:0)
获得您提供的信息后,解决方案可能如下所示
重写/扩展收集Project
记录的逻辑,以便只有属于当前用户的记录。演示的示例可能如下所示:
伪SQL
SELECT team, name, project_name, version, ... FROM projects where name = current_user.name
重写/扩展负责保存记录的逻辑,以便验证current_user
是否允许对给定的项目记录进行更改