eliasprado

add user type to groups

May 23rd, 2021 (edited)
227
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.74 KB | None | 0 0
  1. # models.py.
  2.  
  3. from django.db import models
  4. from django.contrib.auth.models import AbstractUser, Group, Permission
  5. from django.contrib.contenttypes.models import ContentType
  6.  
  7. # Create your models here.
  8.  
  9. class CustomUser(AbstractUser):
  10.     is_admin = models.BooleanField(default=False)
  11.     is_insurer = models.BooleanField(default=False)
  12.  
  13.     def __str__(self):
  14.         return self.username
  15.  
  16.  
  17. #management/commands/add_groups.py
  18.  
  19. from django.contrib.auth.models import AbstractUser, Group, Permission
  20. from django.contrib.contenttypes.models import ContentType
  21. from django.core.management.base import BaseCommand
  22. from customuser.models import CustomUser
  23.  
  24. class Command(BaseCommand):
  25.     help = 'Adding RBAC to the system..'
  26.     def handle(self, *args, **options):
  27.  
  28.         is_insurer = CustomUser.objects.filter(is_insurer=True)
  29.         is_admin = CustomUser.objects.filter(is_admin=True)
  30.  
  31.  
  32.         admin_group , created = Group.objects.get_or_create(name='admin_group')
  33.         insurer_group, created = Group.objects.get_or_create(name='insurer_group')
  34.  
  35.  
  36.         ct = ContentType.objects.get_for_model(CustomUser)
  37.  
  38.         permission = Permission.objects.create(codename='can_view_user', name='Can view user', content_type=ct)
  39.  
  40.         insurer_group.permissions.add(permission)
  41.  
  42.         get_custom_user_permissions = ContentType.objects.get_for_model(CustomUser)
  43.         all_custom_user_permissions = Permission.objects.filter(content_type=get_custom_user_permissions)
  44.        
  45.         admin_group.permissions.add(*all_custom_user_permissions)
  46.  
  47.         if is_admin == True: # <==================================== HERE
  48.             admin_group = Group.objects.get(name='admin_group')
  49.             admin_group.user_set.add(self.is_admin)
  50.  
Add Comment
Please, Sign In to add comment