refactor: Chat user model
This commit is contained in:
parent
340ca6c436
commit
d8254f9e45
@ -9,3 +9,4 @@
|
|||||||
from .workspace_user_permission import *
|
from .workspace_user_permission import *
|
||||||
from .system_setting import *
|
from .system_setting import *
|
||||||
from .log_management import *
|
from .log_management import *
|
||||||
|
from .chat_user import *
|
||||||
101
apps/system_manage/models/chat_user.py
Normal file
101
apps/system_manage/models/chat_user.py
Normal file
@ -0,0 +1,101 @@
|
|||||||
|
# coding=utf-8
|
||||||
|
"""
|
||||||
|
@project: MaxKB
|
||||||
|
@Author:虎虎
|
||||||
|
@file: user.py
|
||||||
|
@date:2025/4/14 10:20
|
||||||
|
@desc:
|
||||||
|
"""
|
||||||
|
import uuid_utils.compat as uuid
|
||||||
|
from django.db import models
|
||||||
|
|
||||||
|
from common.constants.permission_constants import Group
|
||||||
|
|
||||||
|
|
||||||
|
class ChatUser(models.Model):
|
||||||
|
id = models.UUIDField(primary_key=True, max_length=128, default=uuid.uuid7, editable=False, verbose_name="主键id")
|
||||||
|
email = models.EmailField(null=True, blank=True, verbose_name="邮箱", db_index=True)
|
||||||
|
phone = models.CharField(max_length=20, verbose_name="电话", default="")
|
||||||
|
nick_name = models.CharField(max_length=150, verbose_name="昵称", unique=True, db_index=True)
|
||||||
|
username = models.CharField(max_length=150, unique=True, verbose_name="用户名", db_index=True)
|
||||||
|
password = models.CharField(max_length=150, verbose_name="密码")
|
||||||
|
source = models.CharField(max_length=10, verbose_name="来源", default="LOCAL", db_index=True)
|
||||||
|
is_active = models.BooleanField(default=True, db_index=True)
|
||||||
|
create_time = models.DateTimeField(verbose_name="创建时间", auto_now_add=True, null=True, db_index=True)
|
||||||
|
update_time = models.DateTimeField(verbose_name="修改时间", auto_now=True, null=True, db_index=True)
|
||||||
|
|
||||||
|
USERNAME_FIELD = 'username'
|
||||||
|
REQUIRED_FIELDS = []
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
db_table = "chat_user"
|
||||||
|
|
||||||
|
|
||||||
|
class UserGroup(models.Model):
|
||||||
|
id = models.CharField(primary_key=True, max_length=128, default=uuid.uuid7, editable=False, verbose_name="主键id")
|
||||||
|
name = models.CharField(max_length=150, verbose_name="名称", unique=True, db_index=True)
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
db_table = "user_group"
|
||||||
|
|
||||||
|
|
||||||
|
class UserGroupRelation(models.Model):
|
||||||
|
id = models.UUIDField(primary_key=True, max_length=128, default=uuid.uuid7, editable=False, verbose_name="主键id")
|
||||||
|
user = models.ForeignKey(ChatUser, on_delete=models.CASCADE, verbose_name="用户")
|
||||||
|
group = models.ForeignKey(UserGroup, on_delete=models.CASCADE, verbose_name="用户组")
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
db_table = "user_group_relation"
|
||||||
|
|
||||||
|
|
||||||
|
class ChatUserPlatformSource(models.Model):
|
||||||
|
id = models.UUIDField(primary_key=True, max_length=128, default=uuid.uuid7, editable=False, verbose_name="主键id")
|
||||||
|
auth_type = models.CharField(max_length=20, unique=True, db_index=True)
|
||||||
|
config = models.JSONField()
|
||||||
|
type = models.CharField(max_length=20, default="SSO", verbose_name="认证类型", db_index=True)
|
||||||
|
is_active = models.BooleanField(default=True, verbose_name="是否开启", db_index=True)
|
||||||
|
is_valid = models.BooleanField(default=True, verbose_name="是否有效", db_index=True)
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
db_table = "chat_user_platform_source"
|
||||||
|
|
||||||
|
|
||||||
|
class ResourceType(models.TextChoices):
|
||||||
|
"""资源类型"""
|
||||||
|
KNOWLEDGE = Group.KNOWLEDGE.value, '知识库'
|
||||||
|
APPLICATION = Group.APPLICATION.value, '应用'
|
||||||
|
|
||||||
|
|
||||||
|
class ResourceChatUserAuthorize(models.Model):
|
||||||
|
"""
|
||||||
|
资源对话用户授权表
|
||||||
|
"""
|
||||||
|
id = models.UUIDField(primary_key=True, max_length=128, default=uuid.uuid7, editable=False, verbose_name="主键id")
|
||||||
|
workspace_id = models.CharField(max_length=64, verbose_name="工作空间id", default="default", db_index=True,
|
||||||
|
null=True)
|
||||||
|
user_group = models.ForeignKey(UserGroup, on_delete=models.CASCADE, verbose_name="用户组")
|
||||||
|
user = models.ForeignKey(ChatUser, on_delete=models.CASCADE, verbose_name="用户")
|
||||||
|
resource_id = models.UUIDField(max_length=128, verbose_name="资源id", db_index=True)
|
||||||
|
resource_type = models.CharField(verbose_name="资源类型", choices=ResourceType.choices, db_index=True)
|
||||||
|
is_auth = models.BooleanField(verbose_name="是否授权")
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
db_table = "resource_chat_user_authorize"
|
||||||
|
unique_together = ('user_group_id', 'resource_type', 'resource_id', 'user_id')
|
||||||
|
|
||||||
|
|
||||||
|
class ResourceChatUserGroupAuthorize(models.Model):
|
||||||
|
"""
|
||||||
|
资源对话用户组授权表
|
||||||
|
"""
|
||||||
|
id = models.UUIDField(primary_key=True, max_length=128, default=uuid.uuid7, editable=False, verbose_name="主键id")
|
||||||
|
workspace_id = models.CharField(max_length=64, verbose_name="工作空间id", default="default", db_index=True,
|
||||||
|
null=True)
|
||||||
|
user_group = models.ForeignKey(UserGroup, on_delete=models.CASCADE, verbose_name="用户组")
|
||||||
|
resource_id = models.UUIDField(max_length=128, verbose_name="资源id", db_index=True)
|
||||||
|
resource_type = models.CharField(verbose_name="资源类型", choices=ResourceType.choices, db_index=True)
|
||||||
|
is_auth = models.BooleanField(verbose_name="是否授权")
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
db_table = "resource_chat_user_group_authorize"
|
||||||
|
unique_together = ('user_group_id', 'resource_type', 'resource_id')
|
||||||
Loading…
Reference in New Issue
Block a user