gpt4 book ai didi

Django - 匿名用户组

转载 作者:行者123 更新时间:2023-12-03 22:54:26 33 4
gpt4 key购买 nike

我需要允许管理员管理我网站上模型的权限。组、用户和权限现在在这方面做得很好。但是,我还需要允许管理员管理未经身份验证的用户 - 匿名用户的权限。文档说匿名用户的组总是空的,那么我如何允许管理他们的权限?

最佳答案

给匿名用户添加权限很奇怪。 Docs说:

Django's permission framework does not have a place to store permissions for anonymous users. However, it has a foundation that allows custom authentication backends to specify authorization for anonymous users. This is especially useful for the authors of re-usable apps, who can delegate all questions of authorization to the auth backend, rather than needing settings, for example, to control anonymous access.



因此,您可以为 anon yuser 设置权限,但使用自定义身份验证后端。
有时最好使用声明式权限检查,在具有所需权限的 View 上使用装饰器,例如:
@permission_required('somemodel.can_add')
def add_model(request):

或不限制所有人(包括匿名用户)。或一些自定义权限检查..

或者,如果您无论如何都想拥有权限,您始终可以创建一个虚拟用户,例如“AnonUser”,授予它权限,然后检查权限以具有以下内容:
if not user.is_authenticated():
dummy_user = User.objects.get(name="AnonUser")
if dummy_user.has_perm("somepermission"):
# bla bla bla

但这是我永远不会使用的东西..

关于Django - 匿名用户组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11317034/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com