gpt4 book ai didi

sql - Flask-Admin 用户每行读/写设置

转载 作者:行者123 更新时间:2023-12-02 07:31:34 29 4
gpt4 key购买 nike

假设我有用户和子用户表,其中一个用户可以有许多子用户。如何只允许登录用户(current_user)查看属于该用户的子用户? IE。 Subuser.user_id == current_user.id。我知道我可以通过过滤器来做到这一点,但这必须是强制的而不是可选的。

如果有帮助的话,我正在使用 SQLAlchemy 后端!

最佳答案

在 Flask Admin 中覆盖后端生成的查询非常简单 - 您可以做一些相当复杂的事情。请记住覆盖以下所有内容 - 特别是 get_one()。

class BaseModelView(ModelView):
def is_accessible(self):
# if not authenticated we can't see this
if not login.current_user.is_authenticated():
return False

return True

def get_query(self):
return query.filter(self.model.parent_user_id.any(id=login.current_user.id))

def get_count_query(self):
# faster count query!
query = self.session.query(func.count('*')).select_from(self.model).filter(self.model.location_id == login.current_user.id)

return query

def get_one(self, id):
"""
Return a single model by its id.

:param id:
Model id
"""
result = self.session.query(self.model).get(iterdecode(id))

# if the users location does not exist and she is only allowed to edit locations they control
if login.current_user.id != result.parent_user_id:
app.logger.warn('You are not allowed to edit entries for this user.')
abort(404)

return result

关于sql - Flask-Admin 用户每行读/写设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26147178/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com