2012-05-24 41 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

查看上面的更新。 –

相关问题