Users and Sub Users and Multi Roles

I want to create different ‘kinds’ of users. As per this article :

class User(AbstractUser):
      DOCTOR = 1
      NURSE = 2
      SURGEN =3

      ROLE_CHOICES = (
          (DOCTOR, 'Doctor'),
          (NURSE, 'Nurse'),
          (SURGEN, 'Surgen'),
      role = models.PositiveSmallIntegerField(choices=ROLE_CHOICES, blank=True, null=True)

But if I have 2 different kinds of users where each kind of user has different kinds of sub users ?

 | - Sales
       | - Admin
       | - Sales Person
       | - Sales Manager
       | - Accounts
       | - Delivery
       | - Support
 | - Operations
       | - Super Admin
       | - Admin
       | - Management
       | - CSR

Some users of Operations like SuperAdmin and Admin should be able to access a Sales > Sales User menu items.

Then what’s the best way to go about creating users and user roles ?

One approach is by creating groups and assign permissions accordingly like Group name “Sales Admin” and give CRUD permission to the required Models. Afterwards user can be added to that particular group and will have all the permissions that “Sales Admin” group have.

Does this still have relevance in Django 4.1 ?

Django’s Documentation have this Using the Django authentication system | Django documentation | Django, so I think it is still relevance in 4.1.

I meant, is still required to do pip install django-role-permissions or does Django 4.1 provide this out of the box now ?

yes django provide this, no need to install it via pip