增加ai配置和ai广场功能
This commit is contained in:
1 parent
244b4bd9fd
commit
d9a50e23dd
27 files changed
+3808
-57
No files matched your search
@@ -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" {
|
||||
|
||||
Reference in new issue
Block a user