From 143db0baae8d44ba1cf929539c4ee88142796114 Mon Sep 17 00:00:00 2001 From: v-me-50 Date: Mon, 16 Jun 2025 17:02:47 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=92=E4=BB=B6=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/app/api/access.go | 36 +++++++++++++++++++++++++- backend/internal/cert/apply/account.go | 5 ++++ backend/internal/setting/setting.go | 8 +++++- backend/migrations/init.go | 2 ++ backend/route/route.go | 4 +++ 5 files changed, 53 insertions(+), 2 deletions(-) diff --git a/backend/app/api/access.go b/backend/app/api/access.go index 57df618..78ffe0c 100644 --- a/backend/app/api/access.go +++ b/backend/app/api/access.go @@ -4,6 +4,7 @@ import ( "ALLinSSL/backend/app/dto/response" "ALLinSSL/backend/internal/access" "ALLinSSL/backend/internal/cert/deploy" + "ALLinSSL/backend/internal/cert/deploy/plugin" "ALLinSSL/backend/public" "github.com/gin-gonic/gin" "strings" @@ -353,7 +354,7 @@ func GetSiteList(c *gin.Context) { public.FailMsg(c, err.Error()) return } - + var siteList []response.AccessSiteList switch form.Type { case "btpanel-site": @@ -371,3 +372,36 @@ func GetSiteList(c *gin.Context) { public.SuccessData(c, siteList, len(siteList)) } + +func GetPluginActions(c *gin.Context) { + var form struct { + Name string `form:"name"` + } + err := c.Bind(&form) + if err != nil { + public.FailMsg(c, err.Error()) + return + } + form.Name = strings.TrimSpace(form.Name) + if form.Name == "" { + public.FailMsg(c, "插件名称不能为空") + return + } + data, err := plugin.GetActions(form.Name) + if err != nil { + public.FailMsg(c, err.Error()) + return + } + public.SuccessData(c, data, len(data)) + return +} + +func GetPlugins(c *gin.Context) { + data, err := plugin.GetPlugins() + if err != nil { + public.FailMsg(c, err.Error()) + return + } + public.SuccessData(c, data, len(data)) + return +} diff --git a/backend/internal/cert/apply/account.go b/backend/internal/cert/apply/account.go index 9b46e9b..e67537c 100644 --- a/backend/internal/cert/apply/account.go +++ b/backend/internal/cert/apply/account.go @@ -128,6 +128,11 @@ func AddAccount(email, ca, Kid, HmacEncoded, CADirURL string) error { return fmt.Errorf("failed to get sqlite: %w", err) } now := time.Now().Format("2006-01-02 15:04:05") + if (ca == "sslcom" || ca == "google") && (Kid == "" || HmacEncoded == "") { + return fmt.Errorf("Kid and HmacEncoded are required for %s CA", ca) + } else if ca == "custom" && CADirURL == "" { + return fmt.Errorf("CADirURL is required for custom CA") + } account := map[string]interface{}{ "email": email, "type": ca, diff --git a/backend/internal/setting/setting.go b/backend/internal/setting/setting.go index 9ef6054..3b28471 100644 --- a/backend/internal/setting/setting.go +++ b/backend/internal/setting/setting.go @@ -192,7 +192,13 @@ func GetVersion() (map[string]string, error) { update := "0" newVersionObj, err := http.Get("https://download.allinssl.com/version.json") if err != nil { - return nil, fmt.Errorf("failed to fetch version: %v", err) + return map[string]string{ + "version": version, + "new_version": version, + "update": update, + "log": "", + "date": "", + }, err } defer newVersionObj.Body.Close() diff --git a/backend/migrations/init.go b/backend/migrations/init.go index 4dd4cea..988738b 100644 --- a/backend/migrations/init.go +++ b/backend/migrations/init.go @@ -156,6 +156,8 @@ func init() { InsertIfNotExists(db, "access_type", map[string]any{"name": "baidu", "type": "dns"}, []string{"name", "type"}, []any{"baidu", "dns"}) InsertIfNotExists(db, "access_type", map[string]any{"name": "btwaf", "type": "host"}, []string{"name", "type"}, []any{"btwaf", "host"}) + InsertIfNotExists(db, "access_type", map[string]any{"name": "doge", "type": "host"}, []string{"name", "type"}, []any{"doge", "host"}) + InsertIfNotExists(db, "access_type", map[string]any{"name": "plugin", "type": "host"}, []string{"name", "type"}, []any{"plugin", "host"}) // 雷池 InsertIfNotExists(db, "access_type", map[string]any{"name": "safeline", "type": "host"}, []string{"name", "type"}, []any{"safeline", "host"}) diff --git a/backend/route/route.go b/backend/route/route.go index 7b35397..bdfff48 100644 --- a/backend/route/route.go +++ b/backend/route/route.go @@ -51,6 +51,10 @@ func Register(r *gin.Engine) { access.POST("/del_eab", api.DelEAB) access.POST("/upd_eab", api.UpdEAB) access.POST("/get_all_eab", api.GetAllEAB) + + // 插件先放这里 + access.POST("/get_plugin_actions", api.GetPluginActions) + access.POST("/get_plugins", api.GetPlugins) } // acme账户 acmeAccount := v1.Group("/acme_account")