我有一个用户表“UserInfo”,并创建了两个组“admin”和“普通用户”,并授予这些组一些权限。
我根据用户的类型将用户添加到特定组,即如果用户是管理员,我会将管理员的权限授予该用户。
现在我想检查特定用户是否具有权限,并且我想将该用户添加到表 auth_user_group 中。我怎样才能做到这一点?
每个用户都有一个groups
ManyToManyManager 将列出他们的组。如果要将用户添加到组中,请使用ManyToManyManager api https://docs.djangoproject.com/en/1.5/topics/db/examples/many_to_many/:
u = User.objects.get(pk=1)
g = Group.objects.get(name='admin')
u.groups.add(g)
u.save()
u.groups.remove(g)
u.save()
将用户添加到组后,他们将继承该组的所有权限。没有等效的has_perm
检查用户是否在组中,但是有user_passes_test https://docs.djangoproject.com/en/1.5/topics/auth/default/#django.contrib.auth.decorators.user_passes_test您可以使用它来检查用户是否通过了任何条件。它通过调用您使用用户对象定义的任何函数来工作:
from django.contrib.auth.decorators import user_passes_test
from django.shortcuts import render
def is_admin(user):
return user.group_set.filter(name='admin').count()
@user_passes_test(is_admin)
def only_admin(request):
return render(request, 'sekret.html')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)