Files
2020-09-01 23:50:00 +08:00

54 lines
1.3 KiB
Python

from tortoise import Model, fields
from fastapi_admin import enums
class AbstractUser(Model):
username = fields.CharField(max_length=20, unique=True)
password = fields.CharField(
max_length=200, description="Will auto hash with raw password when change"
)
is_active = fields.BooleanField(default=True,)
is_superuser = fields.BooleanField(default=False)
class Meta:
abstract = True
class AbstractPermission(Model):
label = fields.CharField(max_length=50)
model = fields.CharField(max_length=50)
action: enums.PermissionAction = fields.IntEnumField(
enums.PermissionAction, default=enums.PermissionAction.read
)
def __str__(self):
return self.label
class Meta:
abstract = True
class AbstractRole(Model):
label = fields.CharField(max_length=50)
users = fields.ManyToManyField("models.User")
permissions = fields.ManyToManyField("models.Permission")
def __str__(self):
return self.label
class Meta:
abstract = True
class AbstractAdminLog(Model):
admin_log_id = fields.IntField(pk=True)
admin = fields.ForeignKeyField("models.User")
action = fields.CharField(max_length=20)
model = fields.CharField(max_length=50)
content = fields.JSONField()
class Meta:
abstract = True