Multiple users under managet?

hello gyus,

in my project manager have multiple developers, when manager added developers profile developer get email with username and random password

i have created normal auhentication

how can manage roll and permission and authentication
developer profile fields :

class Developer(models.Model):
	user									 = models.ForeignKey(CustomUser,related_name='EmployeesMaster', on_delete=models.CASCADE)
	Name 				           = models.CharField(max_length=20)
	AliasName 			       = models.CharField(max_length=20)
	PresentAddress 		     = models.CharField(max_length=300)
	PermanantAddress	     = models.CharField(max_length=300)
	DateOfJoin 			       = models.DateField(blank=True, null=True)
	Designation 		       = models.CharField(max_length=40)
	EmailAddress 		       = models.CharField(max_length=50)
	ContactNumbers 		     = models.CharField(max_length=20)
	Salary				         = models.DecimalField(max_digits=8, decimal_places=2)
	Is_salesPerson		     = models.BooleanField(default=False)
	Is_SystemUser					 = models.BooleanField(default=False)
	Is_ProductionTeam			 = models.BooleanField(default=False)
	Notes									 = models.CharField(max_length=200)
	ProfilePic           	 = models.ImageField(upload_to='EmployeeProfile', null=True, blank=True)
	created_by_ip 				 = models.GenericIPAddressField(null=True)
	updated_by_ip 				 = models.GenericIPAddressField(null=True)



class CustomAccountManager(BaseUserManager):
    def create_user(self, email, password):
        user = self.model(email=email, password=password)
        user.set_password(password)
        user.is_staff = True
        user.is_superuser = False
        user.save()
        return user

    def create_superuser(self, email, password):
        user = self.create_user(email=email, password=password)
        user.is_active = True
        user.is_staff = True
        user.is_superuser = True
        user.save()
        return user

    def get_by_natural_key(self, email_):
        # print(email_)
        return self.get(email=email_)


    class CustomUser(AbstractUser):
        alphanumeric            = RegexValidator(r'^[A-Za-z- ]*$', 'Only alphanumeric characters are allowed.')
        FullName                = models.CharField(max_length=100, validators=[alphanumeric])
        CompanyName             = models.CharField(max_length=50)
        Country                 = CountryField(blank_label='Select Country')
        # username              = None
        email                   = models.EmailField(('email address'), unique=True)
        email_confirmed         = models.BooleanField(default=False)
        # Is_employee             = models.BooleanField(default=False)

        force_logout_date       = models.DateTimeField(null=True, blank=True)
       
        # randompwd               = models.CharField(max_length=20)
        objects = CustomAccountManager()
        USERNAME_FIELD 			= 'email'
        REQUIRED_FIELDS 		= []
        def __str__(self):  # __unicode__ on Python 2
            return self.email #'{} {} {}'.format(self.email, self.FullName, self.CompanyName) #

        def force_logout(self):
            self.force_logout_date = datetime.now()
            self.save()
            
        class Meta:
            verbose_name_plural = "Admin Registration"
    CustomUser._meta.get_field('username')._unique = False