gpt4 book ai didi

django - django-guardian 的行级权限 - 观察到对管理界面没有影响

转载 作者:行者123 更新时间:2023-12-04 15:12:18 28 4
gpt4 key购买 nike

我已将 django-guardian 的行级权限添加到我的项目中。

从设置来看,似乎一切正常:

  • 已创建监护人特定表(guardian_groupobjectpermission、guardian_userobjectpermission)
  • 带有 GuardedModelAdmin 的模型在“历史”旁边显示“对象权限”功能
  • 它让我为用户/组分配“添加”、“更改”、“删除”权限

  • 但是分配(或不分配)权限对管理界面没有任何影响。每个用户都可以对所有对象执行任何操作。

    我试过
    user_can_access_owned_objects_only = True

    但这只会影响查看对象的能力。一旦用户看到它,他也可以更改和删除它。无论权限中设置了什么。

    我在 ModelAdmin 中遵循了另一个建议
    def queryset(self, request):
    if request.user.is_superuser:
    return get_objects_for_user(user=request.user, perms=['change_program'], klass=Program)

    但这和上面有类似的效果,它只限制了可见项目。

    我本来希望看到管理员“保存”和“删除”按钮(和功能)在听 django-guardian。这是一种误解吗?还是我根本就没有走完整条路?

    感谢您的任何提示!
    电阻

    最佳答案

    Guardian 允许您创建自己的权限以分配给用户/对象组合,但基于这些对象权限限制对资源的访问仍然需要您在 View 中编写代码。因此,在 Admin View 中没有自动强制执行。管理集成是为了允许有权访问管理界面的用户管理对象级权限,请参阅监护人文档:

    http://django-guardian.readthedocs.org/en/latest/userguide/admin-integration.html

    关于django - django-guardian 的行级权限 - 观察到对管理界面没有影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18298851/

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