[英]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.