Files
TermiNexus 3346a3b9ce "refactor: route ugm/site-user/role-permission/user-detail through gvsdsdk managers
- ugm auth flows use AuthManager
- site_user management uses AdminUserManager
- role permission save uses RoleManager.SaveRolePermissions
- user detail aggregation uses UserService.GetUserDetail
- MC custom business moved into gvsds.apps.mc (manager/models)
- remove dead imports (User2FA/UserAvatar/Password/bcrypt/Role/transaction)
"
2026-08-07 03:12:38 +08:00

50 lines
2.2 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"""模块:MC 数据模型
Minecraft 游戏用户映射与 EasyAuth 插件认证表。
- ``EasyAuth``:MC EasyAuth 插件认证表(managed=False,外部 schema)
—— 模型定义原在 gvsdsdk.minecraft.models(MC 为定制业务,已迁回主工程)
EasyAuth 表的 ``data`` 列为 JSON,包含 ``password``(bcrypt hash)、
``last_ip``、``registration_date`` 等字段。新增 ``UserRoleUUID`` 列
(BINARY(16))存绑定后创建的 UserRole 关联 UUID,用于 MC 插件侧反查 GVSDS 身份。
注:原 MCUser 表(mc_users,一对一映射)已废弃删除——GVSDS 用户与 MC 玩家
的多对多绑定改走 UserRole + easyauth.UserRoleUUID。
模型 app_label='mc',通过 gvsds/db_router.py 路由到 minecraft 库。"""
from django.db import models
from gvsdsdk.model_base import QModel
from gvsdsdk.models import UUIDField
class EasyAuth(QModel):
"""EasyAuth 认证表——MC EasyAuth 插件的玩家凭据
映射真实表 ``easyauth``(managed=False)。``data`` 列为 JSON,
其中 ``password`` 字段为 bcrypt hash(``$2a$12$...``),
验证时使用 ``bcrypt.checkpw``。
``UserRoleUUID`` 列由本系统 ALTER 添加(BINARY(16) 可空),
存绑定后创建的 ``UserRole`` 关联 UUID,用于 MC 插件侧反查 GVSDS 身份。
"""
AuthID = models.AutoField(primary_key=True, db_column='id', verbose_name='认证ID')
Username = models.CharField(max_length=255, unique=True, db_column='username', verbose_name='玩家名')
UsernameLower = models.CharField(max_length=255, db_column='username_lower', verbose_name='玩家名小写')
PlayerUUID = models.CharField(max_length=255, null=True, blank=True, db_column='uuid', verbose_name='MC玩家UUID字符串')
Data = models.JSONField(db_column='data', verbose_name='插件数据')
UserRoleUUID = UUIDField(null=True, blank=True, db_column='UserRoleUUID', verbose_name='绑定用户角色关联UUID')
class Meta:
db_table = 'easyauth'
app_label = 'mc'
managed = False
verbose_name = 'EasyAuth认证'
verbose_name_plural = 'EasyAuth认证'
def __str__(self):
return self.Username