django 如何使用自己权限和组模型而不是auth_group和auth_permission(AbstractBaseUser样式)

owfi6suc  于 2023-03-31  发布在  Go
关注(0)|答案(1)|浏览(132)

我需要建立自己的权限系统(不仅是单一的权限!)基于组。
但是我的组和group_permissions是从其他表动态创建的,所以我想创建myapp_groupview而不是auth_groupmyapp_group_permissions而不是auth_group_permissions
经过8小时的搜索,测试我什么也没发现... auth_group仍然存在,无法找到方法来摆脱它....
AbstractBaseGroup将是一个简单的解决方案。

eh57zj3b

eh57zj3b1#

根据我的经验,我们没有触及默认权限模型及其示例,因为它们确实有一个有用的目的(可以限制管理面板可用的模型)。我们所做的是将授予用户的自定义权限和组的列表添加到default_data dump(我们以脚本的形式完成,该脚本将检查任何新更改并在管理命令执行时添加它们)。
在自定义权限(如“can_see_shop_cart”或“can_edit_shop_cart”)和组(如“customer”)被授予后,您可以在请求开始时检查用户是否拥有它,如下所示:

Permission.objects.filter(Q(user=request.user) | Q(group__user=request.user), codename="can_see_shop_cart").exists()

此外,您还可以创建API,列出用户必须根据custom_permissions限制前端功能的每个权限。

相关问题