我正在使用Django Admin Tool,我的模型非常简单。我想限制特定用户或特定组的特定密码的访问权限。我怎样才能为访问'是/否/从'做出3条件,当用户得到是+他的组时没有,那么他可以访问但是当有,+从不然后没有。我怎样才能使用django-admin-tools权限系统。
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 :(得分:1)
开箱即用,django仅支持类级别权限(换句话说,表上的权限)。
支持对象级(行级)权限,但django没有随附实现:
对象级权限
在每个对象级别指定权限的基础有 已被添加。虽然核心没有实现这一点,但是 自定义身份验证后端可以提供此实现和它 将由django.contrib.auth.models.User使用。见 身份验证文档以获取更多信息。
因此,有django-guardian等第三方应用启用此功能。
答案 1 :(得分:0)
由于您正在使用管理员,因此您可以覆盖has_add_permission
上的has_change_permission
,has_delete_permission
和ModelAdmin
方法。但是,如果不了解您的“是/否/从”权限如何附加到用户/组,我无法真正帮助您。
<强>更新强>
如果你想让它保持简单,那么最好的方法就是简单地创建一个组,例如“PasswordAccess”。然后,将您想要的任何用户分配给该组,并仅将Password
的默认添加,更改和删除权限分配给该组。
不需要其他任何东西。添加到该组的任何用户都将自动继承Password
的权限,任何其他用户都不会拥有这些权限,因此甚至不会在管理员中看到它。