From 1b7dd820b31ae6259c4a0192af5a22e5ceafee9b Mon Sep 17 00:00:00 2001 From: dushixiang <798148596@qq.com> Date: Fri, 12 Feb 2021 16:50:38 +0800 Subject: [PATCH] =?UTF-8?q?-=20=E5=A2=9E=E5=8A=A0https=E5=8F=82=E6=95=B0?= =?UTF-8?q?=20-=20=E4=BF=AE=E5=A4=8Dbug=20"=E3=80=8C=E8=B5=84=E4=BA=A7?= =?UTF-8?q?=E3=80=8D=E6=97=A0=E6=B3=95=E9=80=9A=E8=BF=87=E3=80=8C=E8=B5=84?= =?UTF-8?q?=E4=BA=A7=E6=A0=87=E7=AD=BE=E3=80=8D=E8=BF=87=E6=BB=A4"=20close?= =?UTF-8?q?=20#33=20-=20=E4=BF=AE=E5=A4=8Dbug=20"=E5=88=87=E6=8F=9B?= =?UTF-8?q?=E6=8E=88=E6=AC=8A=E4=BD=BF=E7=94=A8=E8=80=85=E7=99=BB=E9=8C=84?= =?UTF-8?q?=E5=BE=8C=EF=BC=8C=E9=80=B2=E5=85=A5=E8=B3=87=E7=94=A2=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E5=BE=8C=E6=9C=83=E6=9C=89=E9=8C=AF=E8=AA=A4"=20close?= =?UTF-8?q?=20#53?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config.yml | 2 +- main.go | 12 ++++++++++-- pkg/config/config.go | 6 ++++++ pkg/model/asset.go | 9 +++++++-- pkg/model/user-group.go | 3 ++- web/src/components/asset/Asset.js | 13 +++++++++++-- 6 files changed, 37 insertions(+), 8 deletions(-) diff --git a/config.yml b/config.yml index 62aa885..1f2bbb9 100644 --- a/config.yml +++ b/config.yml @@ -1,4 +1,4 @@ -db: mysql +db: sqlite mysql: hostname: 172.16.101.32 port: 3306 diff --git a/main.go b/main.go index 9ab7820..0ecf63f 100644 --- a/main.go +++ b/main.go @@ -10,6 +10,7 @@ import ( "gorm.io/driver/mysql" "gorm.io/driver/sqlite" "gorm.io/gorm" + "gorm.io/gorm/logger" "io" "next-terminal/pkg/api" "next-terminal/pkg/config" @@ -73,7 +74,9 @@ func Run() error { //Logger: logger.Default.LogMode(logger.Info), }) } else { - global.DB, err = gorm.Open(sqlite.Open(global.Config.Sqlite.File), &gorm.Config{}) + global.DB, err = gorm.Open(sqlite.Open(global.Config.Sqlite.File), &gorm.Config{ + Logger: logger.Default.LogMode(logger.Info), + }) } if err != nil { @@ -206,5 +209,10 @@ func Run() error { go handle.RunTicker() go handle.RunDataFix() - return e.Start(global.Config.Server.Addr) + if global.Config.Server.Cert != "" && global.Config.Server.Key != "" { + return e.StartTLS(global.Config.Server.Addr, global.Config.Server.Cert, global.Config.Server.Key) + } else { + return e.Start(global.Config.Server.Addr) + } + } diff --git a/pkg/config/config.go b/pkg/config/config.go index 3dd17d4..23d21a8 100644 --- a/pkg/config/config.go +++ b/pkg/config/config.go @@ -28,6 +28,8 @@ type Sqlite struct { type Server struct { Addr string + Cert string + Key string } func SetupConfig() (*Config, error) { @@ -49,6 +51,8 @@ func SetupConfig() (*Config, error) { pflag.String("mysql.database", "next_terminal", "mysql database") pflag.String("server.addr", "", "server listen addr") + pflag.String("server.cert", "", "tls cert file") + pflag.String("server.key", "", "tls key file") pflag.Parse() _ = viper.BindPFlags(pflag.CommandLine) @@ -68,6 +72,8 @@ func SetupConfig() (*Config, error) { }, Server: &Server{ Addr: viper.GetString("server.addr"), + Cert: viper.GetString("server.cert"), + Key: viper.GetString("server.key"), }, } diff --git a/pkg/model/asset.go b/pkg/model/asset.go index 6d2d67e..98e60dc 100644 --- a/pkg/model/asset.go +++ b/pkg/model/asset.go @@ -111,8 +111,13 @@ func FindPageAsset(pageIndex, pageSize int, name, protocol, tags string, account if len(tags) > 0 { tagArr := strings.Split(tags, ",") for i := range tagArr { - db = db.Where("find_in_set(?, assets.tags)", tagArr[i]) - dbCounter = dbCounter.Where("find_in_set(?, assets.tags)", tagArr[i]) + if global.Config.DB == "sqlite" { + db = db.Where("(',' || assets.tags || ',') LIKE ?", "%,"+tagArr[i]+",%") + dbCounter = dbCounter.Where("(',' || assets.tags || ',') LIKE ?", "%,"+tagArr[i]+",%") + } else { + db = db.Where("find_in_set(?, assets.tags)", tagArr[i]) + dbCounter = dbCounter.Where("find_in_set(?, assets.tags)", tagArr[i]) + } } } diff --git a/pkg/model/user-group.go b/pkg/model/user-group.go index 67ad44f..c5e6e03 100644 --- a/pkg/model/user-group.go +++ b/pkg/model/user-group.go @@ -87,7 +87,8 @@ func FindUserGroupById(id string) (o UserGroup, err error) { } func FindUserGroupIdsByUserId(userId string) (o []string, err error) { - err = global.DB.Table("user_groups").Select("user_groups.id").Joins("right join user_group_members on user_groups.id = user_group_members.user_group_id").Where("user_group_members.user_id = ?", userId).Find(&o).Error + // 先查询用户所在的用户 + err = global.DB.Table("user_group_members").Select("user_group_id").Where("user_id = ?", userId).Find(&o).Error return } diff --git a/web/src/components/asset/Asset.js b/web/src/components/asset/Asset.js index 0735a20..b67f4f6 100644 --- a/web/src/components/asset/Asset.js +++ b/web/src/components/asset/Asset.js @@ -67,7 +67,8 @@ class Asset extends Component { queryParams: { pageIndex: 1, pageSize: 10, - protocol: '' + protocol: '', + tags: '' }, loading: false, modalVisible: false, @@ -75,6 +76,7 @@ class Asset extends Component { modalConfirmLoading: false, credentials: [], tags: [], + selectedTags: [], model: {}, selectedRowKeys: [], delBtnLoading: false, @@ -171,6 +173,9 @@ class Asset extends Component { }; handleTagsChange = tags => { + this.setState({ + selectedTags: tags + }) let query = { ...this.state.queryParams, 'pageIndex': 1, @@ -604,6 +609,7 @@ class Asset extends Component {