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 && (