2012-05-24 40 views
0

我正在使用Django Admin Tool,並且我有非常簡單的模型。我想限制對特定用戶或特定組的特定密碼的訪問權限。我怎樣才能讓3條件訪問'是/否/從不',當用戶得到Yes +他的組No時,他有權訪問,但是當Yes + Never時,則不能訪問。我怎樣才能讓它與django-admin-tools權限系統一起工作。如何在django中限制對特定行的訪問

from django.db import models 
from passwords.objects.labels.models import Label 

class Password(models.Model): 
    class Meta: 
     db_table = 'passwords' 

    name = models.CharField(max_length=32) 
    username = models.CharField(max_length=32) 
    password = models.CharField(max_length=32) 
    labels = models.ManyToManyField(Label) 

    def __unicode__(self): 
     return self.name 

回答

0

開箱,django的只支持類級別的權限(換言之,在權限)。

沒有爲對象的級別(行級)權限的支持,但Django的不來與它實現開箱即用:

對象級權限

一種指定權限的基礎在每個對象級別添加了 。雖然在覈心中沒有這個實現,但是一個 定製認證後端可以提供這個實現,並且它將被django.contrib.auth.models.User使用。有關更多信息,請參閱 身份驗證文檔。

因此,有第三方應用程序,如django-guardian啓用此功能。

0

既然你與管理工作,你可以覆蓋ModelAdminhas_add_permissionhas_change_permissionhas_delete_permission方法。但是,如果不知道用戶/組的用戶/組是否擁有「是/否/從不」權限,我無法進一步幫助您。

UPDATE

如果你想保持它太簡單,最好的辦法是簡單地創建一個組,「PASSWORDACCESS」爲例。然後,將所需的任何用戶分配給該組,並僅爲該組分配Password的默認添加,更改和刪除權限。

沒有別的要求。添加到該組的任何用戶都將自動繼承Password的權限,其他用戶將不具有這些權限,因此甚至在管理員中看不到它。

+0

感謝這麼多幫助人,是/否/從不可能過於複雜,特別是我剛開始學習Python,所以我如何設置是/否,所以任何用戶必須擁有或個人許可或必須在組中有有權讀取密碼。 – user1415982

+0

查看上面的更新。 –

相關問題