簡體   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