Search code examples
djangoauthenticationdjango-authenticationdjango-users

Django user doesn't inherit its groups permissions


In my Django project my jack user is in a group called 'Personals'. 'Personals' group has a permission named 'personal'. But jack doesn't inherit that permission from its group. Jack user doesn't have the 'personal' permission which its groups have. Why jack user didn't take the permission from its group?

>>>jack = User.objects.get(username="jack")
>>>jack_permissions = Permission.objects.filter(user=jack)
>>>print(jack_permissions)
<QuerySet []>   #It gives a emty query.

>>>jack_group = jack.groups.all()
>>>print(jack_group)
Personals
>>>jacks_group = Group.objects.get(name="Personals")
>>>jacks_groups_permissions = jacks_group.permissions.all()
>>>print(jacks_groups_permissions)
<QuerySet [<Permission: auth | user | The Personals>]>      #The Group has the permission The Personals

Solution

  • Use User.get_all_permissions() to get all permissions that the user has including permissions inherited from groups or use User.get_group_permissions to get all permissions that a user has from their groups

    jack_permissions = jack.get_all_permissions()