增加ai配置和ai广场功能

This commit is contained in:
hero920103 committed 2026-11-09 16:44:11 +08:00
1 parent 244b4bd9fd
commit d9a50e23dd
27 files changed
+3808 -57

No files matched your search

+44
View File
@@ -108,6 +108,34 @@ func (c *AuthLoginController) LoginPage() {
c.Data["LoginLogo"] = strings.TrimSpace(brand["login_logo"])
c.Data["LoginBg"] = strings.TrimSpace(brand["login_bg"])
// 登录方式开关(平台设置 → 登录方式):值 "0" 关闭,未配置默认开启。
// 三种方式全部关闭时禁止登录;只开一种时不显示 tab 直接展示对应面板。
loginEnabled := func(tag string) bool {
return strings.TrimSpace(brand[tag]) != "0"
}
pwdOn, smsOn, qrOn := loginEnabled("login_pwd_enabled"), loginEnabled("login_sms_enabled"), loginEnabled("login_qr_enabled")
c.Data["LoginPwdOn"] = pwdOn
c.Data["LoginSmsOn"] = smsOn
c.Data["LoginQrOn"] = qrOn
c.Data["LoginDisabled"] = !(pwdOn || smsOn || qrOn)
defaultTab := "account"
if !pwdOn {
if smsOn {
defaultTab = "sms"
} else {
defaultTab = "qr"
}
}
c.Data["LoginDefaultTab"] = defaultTab
methodCount := 0
for _, on := range []bool{pwdOn, smsOn, qrOn} {
if on {
methodCount++
}
}
// 只开启一种登录方式时不需要 tab 切换栏
c.Data["LoginShowTabs"] = methodCount > 1
c.TplName = "auth/login.tpl"
}
@@ -146,6 +174,22 @@ func (c *AuthLoginController) LoginSubmit() {
return
}
// 平台设置的登录方式开关兜底:账号密码被关或全部登录方式被关时直接拒绝
// (前端已隐藏入口,这里防止绕过页面直接调接口)
loginTags := models.GetPlatformSiteTagMap()
pwdOff := strings.TrimSpace(loginTags["login_pwd_enabled"]) == "0"
allOff := pwdOff &&
strings.TrimSpace(loginTags["login_sms_enabled"]) == "0" &&
strings.TrimSpace(loginTags["login_qr_enabled"]) == "0"
if allOff {
c.serveJSON(map[string]interface{}{"code": 403, "msg": "登录功能已关闭,请联系管理员"})
return
}
if pwdOff {
c.serveJSON(map[string]interface{}{"code": 403, "msg": "账号密码登录已关闭,请使用其他登录方式"})
return
}
// 开启人机验证时:先极验通过,再走账号密码校验
// 小程序端(yz-miniapp)无法集成极验 SDK 且运行于微信沙箱内,跳过人机验证
if strings.TrimSpace(req.ClientID) != "yz-miniapp" {