package models import "time" // User TokenVersion 用于服务端会话吊销:改密/管理员重置密码时递增, // 旧 token(access 与 refresh)随版本不匹配立即失效(借鉴 opsx-web-lite)。 type User struct { ID uint `json:"id"` Username string `json:"username"` Password string `json:"password"` Nickname string `json:"nickname"` Role string `json:"role"` AuthSource string `json:"authSource"` // local | ldap TokenVersion int `json:"tokenVersion"` CreatedAt time.Time `json:"createdAt"` UpdatedAt time.Time `json:"updatedAt"` } func (u *User) Sanitized() map[string]interface{} { return map[string]interface{}{ "id": u.ID, "username": u.Username, "nickname": u.Nickname, "role": u.Role, "authSource": u.AuthSource, "createdAt": u.CreatedAt, "updatedAt": u.UpdatedAt, } }