from django.db import models from apps.authentication import models as auth_models from apps.core.models import BaseModel # Create your models here. class Permissions(BaseModel): name = models.CharField(max_length=50) description = models.TextField(max_length=500) def __str__(self): return f'{self.name}-{self.description}' def save(self, *args, **kwargs): super(Permissions, self).save(*args, **kwargs) class Role(BaseModel): role_name = models.CharField(max_length=50) description = models.TextField(max_length=500) permissions = models.ManyToManyField(Permissions) def __str__(self): return f'{self.role_name}-{self.description}' def save(self, *args, **kwargs): super(Role, self).save(*args, **kwargs) class OrganizationRole(BaseModel): user = models.ForeignKey( auth_models.User, on_delete=models.CASCADE, related_name='organization_user', null=True ) organization = models.ForeignKey( auth_models.Organization, on_delete=models.CASCADE, related_name='organization' ) role = models.ForeignKey( Role, on_delete=models.CASCADE, related_name='organization_role' ) def __str__(self): return f'{self.organization.name}-{self.user.username}' def save(self, *args, **kwargs): super(OrganizationRole, self).save(*args, **kwargs)