diff --git a/common/constants.go b/common/constants.go index d92ffffd..1e0c5605 100644 --- a/common/constants.go +++ b/common/constants.go @@ -35,6 +35,7 @@ var PasswordRegisterEnabled = true var EmailVerificationEnabled = false var GitHubOAuthEnabled = false var WeChatAuthEnabled = false +var LarkAuthEnabled = false var TurnstileCheckEnabled = false var RegisterEnabled = true diff --git a/controller/lark.go b/controller/lark.go index d735d1d8..328a5b83 100644 --- a/controller/lark.go +++ b/controller/lark.go @@ -147,6 +147,13 @@ func getLarkUserInfoByCode(code string) (*LarkUser, error) { } func LarkOAuth(c *gin.Context) { + if !common.LarkAuthEnabled { + c.JSON(http.StatusOK, gin.H{ + "message": "管理员未开启通过飞书登录以及注册", + "success": false, + }) + return + } session := sessions.Default(c) state := c.Query("state") if state == "" || session.Get("oauth_state") == nil || state != session.Get("oauth_state").(string) { @@ -220,6 +227,13 @@ func LarkOAuth(c *gin.Context) { } func LarkBind(c *gin.Context) { + if !common.LarkAuthEnabled { + c.JSON(http.StatusOK, gin.H{ + "message": "管理员未开启通过飞书登录以及注册", + "success": false, + }) + return + } code := c.Query("code") larkUser, err := getLarkUserInfoByCode(code) if err != nil { diff --git a/controller/misc.go b/controller/misc.go index c30bcb9c..e2c37e50 100644 --- a/controller/misc.go +++ b/controller/misc.go @@ -28,6 +28,7 @@ func GetStatus(c *gin.Context) { "email_verification": common.EmailVerificationEnabled, "github_oauth": common.GitHubOAuthEnabled, "github_client_id": common.GitHubClientId, + "lark_login": common.LarkAuthEnabled, "lark_client_id": common.LarkClientId, "system_name": common.SystemName, "logo": common.Logo, diff --git a/model/option.go b/model/option.go index 9d9fcf26..1af71811 100644 --- a/model/option.go +++ b/model/option.go @@ -32,6 +32,7 @@ func InitOptionMap() { common.OptionMap["EmailVerificationEnabled"] = strconv.FormatBool(common.EmailVerificationEnabled) common.OptionMap["GitHubOAuthEnabled"] = strconv.FormatBool(common.GitHubOAuthEnabled) common.OptionMap["WeChatAuthEnabled"] = strconv.FormatBool(common.WeChatAuthEnabled) + common.OptionMap["LarkAuthEnabled"] = strconv.FormatBool(common.LarkAuthEnabled) common.OptionMap["TurnstileCheckEnabled"] = strconv.FormatBool(common.TurnstileCheckEnabled) common.OptionMap["RegisterEnabled"] = strconv.FormatBool(common.RegisterEnabled) common.OptionMap["AutomaticDisableChannelEnabled"] = strconv.FormatBool(common.AutomaticDisableChannelEnabled) @@ -136,6 +137,7 @@ var optionBoolMap = map[string]*bool{ "EmailVerificationEnabled": &common.EmailVerificationEnabled, "GitHubOAuthEnabled": &common.GitHubOAuthEnabled, "WeChatAuthEnabled": &common.WeChatAuthEnabled, + "LarkAuthEnabled": &common.LarkAuthEnabled, "TurnstileCheckEnabled": &common.TurnstileCheckEnabled, "RegisterEnabled": &common.RegisterEnabled, "EmailDomainRestrictionEnabled": &common.EmailDomainRestrictionEnabled, diff --git a/web/src/config.js b/web/src/config.js index a77c0abf..9a252fbf 100644 --- a/web/src/config.js +++ b/web/src/config.js @@ -22,7 +22,10 @@ const config = { turnstile_site_key: '', version: '', wechat_login: false, - wechat_qrcode: '' + wechat_qrcode: '', + lark_login: false, + lark_client_id: '', + telegram_bot: '' } }; diff --git a/web/src/views/Authentication/AuthForms/AuthLogin.js b/web/src/views/Authentication/AuthForms/AuthLogin.js index d22dd6ff..2a660d79 100644 --- a/web/src/views/Authentication/AuthForms/AuthLogin.js +++ b/web/src/views/Authentication/AuthForms/AuthLogin.js @@ -118,7 +118,7 @@ const LoginForm = ({ ...others }) => { )} - {siteInfo.lark_client_id && ( + {siteInfo.lark_login && (