fix error in gitignore
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
from django.db import models
|
||||
|
||||
from apps.core.models import TimeStampedModel, UUIDModel
|
||||
|
||||
|
||||
class Permission(UUIDModel):
|
||||
code = models.CharField(max_length=120, unique=True)
|
||||
description = models.CharField(max_length=255, blank=True)
|
||||
|
||||
def __str__(self) -> str:
|
||||
return self.code
|
||||
|
||||
|
||||
class Role(UUIDModel, TimeStampedModel):
|
||||
name = models.CharField(max_length=120)
|
||||
slug = models.SlugField(max_length=120, unique=True)
|
||||
description = models.CharField(max_length=255, blank=True)
|
||||
permissions = models.ManyToManyField(Permission, through="RolePermission", related_name="roles", blank=True)
|
||||
|
||||
def __str__(self) -> str:
|
||||
return self.name
|
||||
|
||||
|
||||
class RolePermission(UUIDModel):
|
||||
role = models.ForeignKey(Role, on_delete=models.CASCADE)
|
||||
permission = models.ForeignKey(Permission, on_delete=models.CASCADE)
|
||||
|
||||
class Meta:
|
||||
constraints = [
|
||||
models.UniqueConstraint(fields=["role", "permission"], name="uniq_role_permission")
|
||||
]
|
||||
|
||||
|
||||
class UserRole(UUIDModel, TimeStampedModel):
|
||||
user = models.ForeignKey("accounts.User", on_delete=models.CASCADE, related_name="user_roles")
|
||||
role = models.ForeignKey(Role, on_delete=models.CASCADE, related_name="user_roles")
|
||||
scope = models.JSONField(default=dict, blank=True)
|
||||
|
||||
class Meta:
|
||||
constraints = [
|
||||
models.UniqueConstraint(fields=["user", "role"], name="uniq_user_role")
|
||||
]
|
||||
Reference in New Issue
Block a user