Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # models.py.
- from django.db import models
- from django.contrib.auth.models import AbstractUser, Group, Permission
- from django.contrib.contenttypes.models import ContentType
- # Create your models here.
- class CustomUser(AbstractUser):
- is_admin = models.BooleanField(default=False)
- is_insurer = models.BooleanField(default=False)
- def __str__(self):
- return self.username
- #management/commands/add_groups.py
- from django.contrib.auth.models import AbstractUser, Group, Permission
- from django.contrib.contenttypes.models import ContentType
- from django.core.management.base import BaseCommand
- from customuser.models import CustomUser
- class Command(BaseCommand):
- help = 'Adding RBAC to the system..'
- def handle(self, *args, **options):
- is_insurer = CustomUser.objects.filter(is_insurer=True)
- is_admin = CustomUser.objects.filter(is_admin=True)
- admin_group , created = Group.objects.get_or_create(name='admin_group')
- insurer_group, created = Group.objects.get_or_create(name='insurer_group')
- ct = ContentType.objects.get_for_model(CustomUser)
- permission = Permission.objects.create(codename='can_view_user', name='Can view user', content_type=ct)
- insurer_group.permissions.add(permission)
- get_custom_user_permissions = ContentType.objects.get_for_model(CustomUser)
- all_custom_user_permissions = Permission.objects.filter(content_type=get_custom_user_permissions)
- admin_group.permissions.add(*all_custom_user_permissions)
- if is_admin == True: # <==================================== HERE
- admin_group = Group.objects.get(name='admin_group')
- admin_group.user_set.add(self.is_admin)
Add Comment
Please, Sign In to add comment