- 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) "
50 lines
2.2 KiB
Python
50 lines
2.2 KiB
Python
"""模块: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
|