From c31b3c83591c60fc03dd4aaaf70cf709e73d9af1 Mon Sep 17 00:00:00 2001 From: teaser Date: Sat, 20 Mar 2021 21:42:32 +0800 Subject: [PATCH] =?UTF-8?q?style(be):=E6=8B=86=E5=88=86=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=E7=9B=AE=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/golangci-lint.yml | 2 +- main.go | 12 ++++++++---- {server => pkg}/config/config.go | 0 {server => pkg}/constant/const.go | 0 {server => pkg}/global/global.go | 2 +- {server => pkg}/global/store.go | 2 +- {server => pkg}/service/job.go | 6 +++--- {server => pkg}/service/mail.go | 2 +- {server => pkg}/service/property.go | 0 {server => pkg}/service/session.go | 2 +- {server => pkg}/service/user.go | 2 +- {server/api => pkg/task}/ticker.go | 26 ++++++++++++++++++-------- {server => pkg}/term/next_terminal.go | 0 {server => pkg}/term/next_writer.go | 0 {server => pkg}/term/recording.go | 0 {server => pkg}/term/ssh.go | 0 {server => pkg}/term/test/test_ssh.go | 0 {server => pkg}/totp/totp.go | 0 server/api/account.go | 9 +++++++-- server/api/api.go | 4 ++-- server/api/asset.go | 2 +- server/api/credential.go | 2 +- server/api/login-log.go | 2 +- server/api/middleware.go | 4 ++-- server/api/monitor.go | 3 ++- server/api/overview.go | 2 +- server/api/routes.go | 4 ++-- server/api/security.go | 2 +- server/api/session.go | 4 ++-- server/api/ssh.go | 6 +++--- server/api/tunnel.go | 4 ++-- server/api/user.go | 2 +- server/repository/asset.go | 4 ++-- server/repository/command.go | 2 +- server/repository/credential.go | 2 +- server/repository/session.go | 2 +- 36 files changed, 68 insertions(+), 48 deletions(-) rename {server => pkg}/config/config.go (100%) rename {server => pkg}/constant/const.go (100%) rename {server => pkg}/global/global.go (89%) rename {server => pkg}/global/store.go (97%) rename {server => pkg}/service/job.go (98%) rename {server => pkg}/service/mail.go (97%) rename {server => pkg}/service/property.go (100%) rename {server => pkg}/service/session.go (95%) rename {server => pkg}/service/user.go (98%) rename {server/api => pkg/task}/ticker.go (59%) rename {server => pkg}/term/next_terminal.go (100%) rename {server => pkg}/term/next_writer.go (100%) rename {server => pkg}/term/recording.go (100%) rename {server => pkg}/term/ssh.go (100%) rename {server => pkg}/term/test/test_ssh.go (100%) rename {server => pkg}/totp/totp.go (100%) diff --git a/.github/workflows/golangci-lint.yml b/.github/workflows/golangci-lint.yml index 35969fb..5ca720d 100644 --- a/.github/workflows/golangci-lint.yml +++ b/.github/workflows/golangci-lint.yml @@ -19,4 +19,4 @@ jobs: with: # Optional: version of golangci-lint to use in form of v1.2 or v1.2.3 or `latest` to use the latest version version: v1.29 - args: --timeout=10m + args: --timeout=5m diff --git a/main.go b/main.go index ff73afd..9d89360 100644 --- a/main.go +++ b/main.go @@ -3,9 +3,11 @@ package main import ( "fmt" + "next-terminal/pkg/config" + "next-terminal/pkg/global" + "next-terminal/pkg/task" "next-terminal/server/api" - "next-terminal/server/config" - "next-terminal/server/global" + "next-terminal/server/repository" "github.com/labstack/gommon/log" "github.com/robfig/cron/v3" @@ -42,8 +44,10 @@ func Run() error { if global.Config.ResetPassword != "" { return api.ResetPassword() } - - api.SetupTicker() + sessionRepo := repository.NewSessionRepository(db) + propertyREpo := repository.NewPropertyRepository(db) + ticker := task.NewTicker(sessionRepo, propertyREpo) + ticker.SetupTicker() if global.Config.Server.Cert != "" && global.Config.Server.Key != "" { return e.StartTLS(global.Config.Server.Addr, global.Config.Server.Cert, global.Config.Server.Key) diff --git a/server/config/config.go b/pkg/config/config.go similarity index 100% rename from server/config/config.go rename to pkg/config/config.go diff --git a/server/constant/const.go b/pkg/constant/const.go similarity index 100% rename from server/constant/const.go rename to pkg/constant/const.go diff --git a/server/global/global.go b/pkg/global/global.go similarity index 89% rename from server/global/global.go rename to pkg/global/global.go index 1903e6f..b685078 100644 --- a/server/global/global.go +++ b/pkg/global/global.go @@ -1,7 +1,7 @@ package global import ( - "next-terminal/server/config" + "next-terminal/pkg/config" "github.com/patrickmn/go-cache" "github.com/robfig/cron/v3" diff --git a/server/global/store.go b/pkg/global/store.go similarity index 97% rename from server/global/store.go rename to pkg/global/store.go index 4e8050b..c2f66dc 100644 --- a/server/global/store.go +++ b/pkg/global/store.go @@ -5,7 +5,7 @@ import ( "sync" "next-terminal/pkg/guacd" - "next-terminal/server/term" + "next-terminal/pkg/term" "github.com/gorilla/websocket" ) diff --git a/server/service/job.go b/pkg/service/job.go similarity index 98% rename from server/service/job.go rename to pkg/service/job.go index c8b4876..81c6ea2 100644 --- a/server/service/job.go +++ b/pkg/service/job.go @@ -7,12 +7,12 @@ import ( "strings" "time" + "next-terminal/pkg/constant" + "next-terminal/pkg/global" "next-terminal/pkg/log" - "next-terminal/server/constant" - "next-terminal/server/global" + "next-terminal/pkg/term" "next-terminal/server/model" "next-terminal/server/repository" - "next-terminal/server/term" "next-terminal/server/utils" "github.com/robfig/cron/v3" diff --git a/server/service/mail.go b/pkg/service/mail.go similarity index 97% rename from server/service/mail.go rename to pkg/service/mail.go index cb3aa3c..1c1a7b5 100644 --- a/server/service/mail.go +++ b/pkg/service/mail.go @@ -3,8 +3,8 @@ package service import ( "net/smtp" + "next-terminal/pkg/constant" "next-terminal/pkg/log" - "next-terminal/server/constant" "next-terminal/server/repository" "github.com/jordan-wright/email" diff --git a/server/service/property.go b/pkg/service/property.go similarity index 100% rename from server/service/property.go rename to pkg/service/property.go diff --git a/server/service/session.go b/pkg/service/session.go similarity index 95% rename from server/service/session.go rename to pkg/service/session.go index 672db5a..670e415 100644 --- a/server/service/session.go +++ b/pkg/service/session.go @@ -1,7 +1,7 @@ package service import ( - "next-terminal/server/constant" + "next-terminal/pkg/constant" "next-terminal/server/model" "next-terminal/server/repository" "next-terminal/server/utils" diff --git a/server/service/user.go b/pkg/service/user.go similarity index 98% rename from server/service/user.go rename to pkg/service/user.go index 970a235..84dc418 100644 --- a/server/service/user.go +++ b/pkg/service/user.go @@ -1,8 +1,8 @@ package service import ( + "next-terminal/pkg/constant" "next-terminal/pkg/log" - "next-terminal/server/constant" "next-terminal/server/model" "next-terminal/server/repository" "next-terminal/server/utils" diff --git a/server/api/ticker.go b/pkg/task/ticker.go similarity index 59% rename from server/api/ticker.go rename to pkg/task/ticker.go index d836792..c7dab7c 100644 --- a/server/api/ticker.go +++ b/pkg/task/ticker.go @@ -1,25 +1,35 @@ -package api +package task import ( "strconv" "time" + "next-terminal/pkg/constant" "next-terminal/pkg/log" - "next-terminal/server/constant" + "next-terminal/server/repository" ) -func SetupTicker() { +type Ticker struct { + sessionRepository *repository.SessionRepository + propertyRepository *repository.PropertyRepository +} + +func NewTicker(sessionRepository *repository.SessionRepository, propertyRepository *repository.PropertyRepository) *Ticker { + return &Ticker{sessionRepository: sessionRepository, propertyRepository: propertyRepository} +} + +func (t *Ticker) SetupTicker() { // 每隔一小时删除一次未使用的会话信息 unUsedSessionTicker := time.NewTicker(time.Minute * 60) go func() { for range unUsedSessionTicker.C { - sessions, _ := sessionRepository.FindByStatusIn([]string{constant.NoConnect, constant.Connecting}) + sessions, _ := t.sessionRepository.FindByStatusIn([]string{constant.NoConnect, constant.Connecting}) if len(sessions) > 0 { now := time.Now() for i := range sessions { if now.Sub(sessions[i].ConnectedTime.Time) > time.Hour*1 { - _ = sessionRepository.DeleteById(sessions[i].ID) + _ = t.sessionRepository.DeleteById(sessions[i].ID) s := sessions[i].Username + "@" + sessions[i].IP + ":" + strconv.Itoa(sessions[i].Port) log.Infof("会话「%v」ID「%v」超过1小时未打开,已删除。", s, sessions[i].ID) } @@ -32,7 +42,7 @@ func SetupTicker() { timeoutSessionTicker := time.NewTicker(time.Hour * 24) go func() { for range timeoutSessionTicker.C { - property, err := propertyRepository.FindByName("session-saved-limit") + property, err := t.propertyRepository.FindByName("session-saved-limit") if err != nil { return } @@ -43,7 +53,7 @@ func SetupTicker() { if err != nil { return } - sessions, err := sessionRepository.FindOutTimeSessions(limit) + sessions, err := t.sessionRepository.FindOutTimeSessions(limit) if err != nil { return } @@ -53,7 +63,7 @@ func SetupTicker() { for i := range sessions { sessionIds = append(sessionIds, sessions[i].ID) } - err := sessionRepository.DeleteByIds(sessionIds) + err := t.sessionRepository.DeleteByIds(sessionIds) if err != nil { log.Errorf("删除离线会话失败 %v", err) } diff --git a/server/term/next_terminal.go b/pkg/term/next_terminal.go similarity index 100% rename from server/term/next_terminal.go rename to pkg/term/next_terminal.go diff --git a/server/term/next_writer.go b/pkg/term/next_writer.go similarity index 100% rename from server/term/next_writer.go rename to pkg/term/next_writer.go diff --git a/server/term/recording.go b/pkg/term/recording.go similarity index 100% rename from server/term/recording.go rename to pkg/term/recording.go diff --git a/server/term/ssh.go b/pkg/term/ssh.go similarity index 100% rename from server/term/ssh.go rename to pkg/term/ssh.go diff --git a/server/term/test/test_ssh.go b/pkg/term/test/test_ssh.go similarity index 100% rename from server/term/test/test_ssh.go rename to pkg/term/test/test_ssh.go diff --git a/server/totp/totp.go b/pkg/totp/totp.go similarity index 100% rename from server/totp/totp.go rename to pkg/totp/totp.go diff --git a/server/api/account.go b/server/api/account.go index 237faa6..edc8b7d 100644 --- a/server/api/account.go +++ b/server/api/account.go @@ -4,9 +4,9 @@ import ( "strings" "time" - "next-terminal/server/global" + "next-terminal/pkg/global" + "next-terminal/pkg/totp" "next-terminal/server/model" - "next-terminal/server/totp" "next-terminal/server/utils" "github.com/labstack/echo/v4" @@ -40,6 +40,11 @@ type Authorization struct { User model.User } +// +//type UserServer struct { +// repository.UserRepository +//} + func LoginEndpoint(c echo.Context) error { var loginAccount LoginAccount if err := c.Bind(&loginAccount); err != nil { diff --git a/server/api/api.go b/server/api/api.go index 074a2f3..358a906 100644 --- a/server/api/api.go +++ b/server/api/api.go @@ -1,8 +1,8 @@ package api import ( - "next-terminal/server/constant" - "next-terminal/server/global" + "next-terminal/pkg/constant" + "next-terminal/pkg/global" "next-terminal/server/model" "github.com/labstack/echo/v4" diff --git a/server/api/asset.go b/server/api/asset.go index a8d75d3..2e4e470 100644 --- a/server/api/asset.go +++ b/server/api/asset.go @@ -8,7 +8,7 @@ import ( "strconv" "strings" - "next-terminal/server/constant" + "next-terminal/pkg/constant" "next-terminal/server/model" "next-terminal/server/utils" diff --git a/server/api/credential.go b/server/api/credential.go index 8fa8677..25caf1a 100644 --- a/server/api/credential.go +++ b/server/api/credential.go @@ -5,7 +5,7 @@ import ( "strconv" "strings" - "next-terminal/server/constant" + "next-terminal/pkg/constant" "next-terminal/server/model" "next-terminal/server/utils" diff --git a/server/api/login-log.go b/server/api/login-log.go index 2b221f6..822f701 100644 --- a/server/api/login-log.go +++ b/server/api/login-log.go @@ -4,8 +4,8 @@ import ( "strconv" "strings" + "next-terminal/pkg/global" "next-terminal/pkg/log" - "next-terminal/server/global" "github.com/labstack/echo/v4" ) diff --git a/server/api/middleware.go b/server/api/middleware.go index f9a55f8..431f170 100644 --- a/server/api/middleware.go +++ b/server/api/middleware.go @@ -7,8 +7,8 @@ import ( "strings" "time" - "next-terminal/server/constant" - "next-terminal/server/global" + "next-terminal/pkg/constant" + "next-terminal/pkg/global" "next-terminal/server/utils" "github.com/labstack/echo/v4" diff --git a/server/api/monitor.go b/server/api/monitor.go index 2b2445d..8a068ee 100644 --- a/server/api/monitor.go +++ b/server/api/monitor.go @@ -4,13 +4,14 @@ import ( "github.com/labstack/echo/v4" ) -// +// todo 监控 func MonitorEndpoint(c echo.Context) (err error) { //ws, err := UpGrader.Upgrade(c.Response().Writer, c.Request(), nil) //if err != nil { // log.Errorf("升级为WebSocket协议失败:%v", err.Error()) // return err //} + return } diff --git a/server/api/overview.go b/server/api/overview.go index aa21611..ed4fb76 100644 --- a/server/api/overview.go +++ b/server/api/overview.go @@ -1,7 +1,7 @@ package api import ( - "next-terminal/server/constant" + "next-terminal/pkg/constant" "next-terminal/server/repository" "github.com/labstack/echo/v4" diff --git a/server/api/routes.go b/server/api/routes.go index 5e035e2..094d332 100644 --- a/server/api/routes.go +++ b/server/api/routes.go @@ -7,11 +7,11 @@ import ( "strings" "time" + "next-terminal/pkg/global" "next-terminal/pkg/log" - "next-terminal/server/global" + "next-terminal/pkg/service" "next-terminal/server/model" "next-terminal/server/repository" - "next-terminal/server/service" "next-terminal/server/utils" "github.com/labstack/echo/v4" diff --git a/server/api/security.go b/server/api/security.go index a879713..1e09269 100644 --- a/server/api/security.go +++ b/server/api/security.go @@ -4,7 +4,7 @@ import ( "strconv" "strings" - "next-terminal/server/global" + "next-terminal/pkg/global" "next-terminal/server/model" "next-terminal/server/utils" diff --git a/server/api/session.go b/server/api/session.go index 08adfa2..9a91d83 100644 --- a/server/api/session.go +++ b/server/api/session.go @@ -13,9 +13,9 @@ import ( "strings" "sync" + "next-terminal/pkg/constant" + "next-terminal/pkg/global" "next-terminal/pkg/log" - "next-terminal/server/constant" - "next-terminal/server/global" "next-terminal/server/model" "next-terminal/server/utils" diff --git a/server/api/ssh.go b/server/api/ssh.go index 40957f7..a76be4b 100644 --- a/server/api/ssh.go +++ b/server/api/ssh.go @@ -7,12 +7,12 @@ import ( "strconv" "time" + "next-terminal/pkg/constant" + "next-terminal/pkg/global" "next-terminal/pkg/guacd" "next-terminal/pkg/log" - "next-terminal/server/constant" - "next-terminal/server/global" + "next-terminal/pkg/term" "next-terminal/server/model" - "next-terminal/server/term" "next-terminal/server/utils" "github.com/gorilla/websocket" diff --git a/server/api/tunnel.go b/server/api/tunnel.go index 68199e8..a1330cc 100644 --- a/server/api/tunnel.go +++ b/server/api/tunnel.go @@ -5,10 +5,10 @@ import ( "path" "strconv" + "next-terminal/pkg/constant" + "next-terminal/pkg/global" "next-terminal/pkg/guacd" "next-terminal/pkg/log" - "next-terminal/server/constant" - "next-terminal/server/global" "next-terminal/server/model" "github.com/gorilla/websocket" diff --git a/server/api/user.go b/server/api/user.go index 2fb2edb..e564dd1 100644 --- a/server/api/user.go +++ b/server/api/user.go @@ -4,8 +4,8 @@ import ( "strconv" "strings" + "next-terminal/pkg/global" "next-terminal/pkg/log" - "next-terminal/server/global" "next-terminal/server/model" "next-terminal/server/utils" diff --git a/server/repository/asset.go b/server/repository/asset.go index 8ae00d8..12d0baf 100644 --- a/server/repository/asset.go +++ b/server/repository/asset.go @@ -4,8 +4,8 @@ import ( "fmt" "strings" - "next-terminal/server/constant" - "next-terminal/server/global" + "next-terminal/pkg/constant" + "next-terminal/pkg/global" "next-terminal/server/model" "next-terminal/server/utils" diff --git a/server/repository/command.go b/server/repository/command.go index eb34a42..f1f2c78 100644 --- a/server/repository/command.go +++ b/server/repository/command.go @@ -1,7 +1,7 @@ package repository import ( - "next-terminal/server/constant" + "next-terminal/pkg/constant" "next-terminal/server/model" "gorm.io/gorm" diff --git a/server/repository/credential.go b/server/repository/credential.go index 9975465..c3ad800 100644 --- a/server/repository/credential.go +++ b/server/repository/credential.go @@ -1,7 +1,7 @@ package repository import ( - "next-terminal/server/constant" + "next-terminal/pkg/constant" "next-terminal/server/model" "gorm.io/gorm" diff --git a/server/repository/session.go b/server/repository/session.go index b9b4dce..1384306 100644 --- a/server/repository/session.go +++ b/server/repository/session.go @@ -5,7 +5,7 @@ import ( "path" "time" - "next-terminal/server/constant" + "next-terminal/pkg/constant" "next-terminal/server/model" "gorm.io/gorm"