我需要建立自己的权限系统(不仅是单一的权限!)基于组。但是我的组和group_permissions是从其他表动态创建的,所以我想创建myapp_groupview而不是auth_group和myapp_group_permissions而不是auth_group_permissions。经过8小时的搜索,测试我什么也没发现... auth_group仍然存在,无法找到方法来摆脱它....AbstractBaseGroup将是一个简单的解决方案。
myapp_groupview
auth_group
myapp_group_permissions
auth_group_permissions
AbstractBaseGroup
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限制前端功能的每个权限。
1条答案
按热度按时间eh57zj3b1#
根据我的经验,我们没有触及默认权限模型及其示例,因为它们确实有一个有用的目的(可以限制管理面板可用的模型)。我们所做的是将授予用户的自定义权限和组的列表添加到default_data dump(我们以脚本的形式完成,该脚本将检查任何新更改并在管理命令执行时添加它们)。
在自定义权限(如“can_see_shop_cart”或“can_edit_shop_cart”)和组(如“customer”)被授予后,您可以在请求开始时检查用户是否拥有它,如下所示:
此外,您还可以创建API,列出用户必须根据custom_permissions限制前端功能的每个权限。