Files
RasadDam_Backend/apps/authorization/models.py

62 lines
1.6 KiB
Python

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, unique=True)
description = models.TextField(max_length=500)
type = models.ForeignKey(
auth_models.OrganizationType,
on_delete=models.CASCADE,
related_name="organization_role_type",
null=True
)
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 UserRelations(BaseModel):
user = models.ForeignKey(
auth_models.User,
on_delete=models.CASCADE,
related_name='user_relation',
null=True
)
organization = models.ForeignKey(
auth_models.Organization,
on_delete=models.CASCADE,
related_name='user_organization'
)
role = models.ForeignKey(
Role,
on_delete=models.CASCADE,
related_name='user_role',
null=True
)
permissions = models.ManyToManyField(Permissions)
def __str__(self):
return f'{self.organization.name}-{self.user.username}'
def save(self, *args, **kwargs):
super(UserRelations, self).save(*args, **kwargs)