From 6f6178ab0a659b93c4bb3dab1ae32ffb1058965b Mon Sep 17 00:00:00 2001 From: SliverHorn Date: Fri, 21 May 2021 18:48:26 +0800 Subject: [PATCH 1/3] fix: Enforcer => SyncedEnforcer Solve Map Preemption --- server/config.yaml | 192 ++++++++++++++--------------------- server/service/sys_casbin.go | 20 ++-- 2 files changed, 92 insertions(+), 120 deletions(-) diff --git a/server/config.yaml b/server/config.yaml index fb77272f..a45285c7 100644 --- a/server/config.yaml +++ b/server/config.yaml @@ -1,77 +1,12 @@ -# Gin-Vue-Admin Global Configuration - -# jwt configuration -jwt: - signing-key: 'qmPlus' - expires-time: 604800 - buffer-time: 86400 - -# zap logger configuration -zap: - level: 'info' - format: 'console' - prefix: '[GIN-VUE-ADMIN]' - director: 'log' - link-name: 'latest_log' - show-line: true - encode-level: 'LowercaseColorLevelEncoder' - stacktrace-key: 'stacktrace' - log-in-console: true - -# redis configuration -redis: - db: 0 - addr: '127.0.0.1:6379' - password: '' - -# email configuration -email: - to: 'xxx@qq.com' - port: 465 - from: 'xxx@163.com' - host: 'smtp.163.com' - is-ssl: true - secret: 'xxx' - nickname: 'test' - -# casbin configuration -casbin: - model-path: './resource/rbac_model.conf' - -# system configuration -system: - env: 'public' # Change to "develop" to skip authentication for development mode - addr: 8888 - db-type: 'mysql' - oss-type: 'local' # 控制oss选择走本期还是 七牛等其他仓 自行增加其他oss仓可以在 server/utils/upload/upload.go 中 NewOss函数配置 - use-multipoint: false - -# captcha configuration -captcha: - key-long: 6 - img-width: 240 - img-height: 80 - -# mysql connect configuration -mysql: - path: '' - config: '' - db-name: '' - username: '' - password: '' - max-idle-conns: 10 - max-open-conns: 100 - log-mode: false - log-zap: "" - -# local configuration -local: - path: 'uploads/file' - -# autocode configuration +aliyun-oss: + endpoint: yourEndpoint + access-key-id: yourAccessKeyId + access-key-secret: yourAccessKeySecret + bucket-name: yourBucketName + bucket-url: yourBucketUrl autocode: transfer-restart: true - root: "" + root: /Users/sliverhorn/Go/src/github.com/flipped-aurora/gin-vue-admin server: /server server-api: /api/v1 server-initialize: /initialize @@ -81,51 +16,80 @@ autocode: server-service: /service web: /web/src web-api: /api - web-flow: /view web-form: /view web-table: /view - -# qiniu configuration (请自行七牛申请对应的 公钥 私钥 bucket 和 域名地址) + web-flow: /view +captcha: + key-long: 6 + img-width: 240 + img-height: 80 +casbin: + model-path: ./resource/rbac_model.conf +email: + to: xxx@qq.com + port: 465 + from: xxx@163.com + host: smtp.163.com + is-ssl: true + secret: xxx + nickname: test +excel: + dir: ./resource/excel/ +jwt: + signing-key: qmPlus + expires-time: 604800 + buffer-time: 86400 +local: + path: uploads/file +mysql: + path: 127.0.0.1:13307 + config: charset=utf8mb4&parseTime=True&loc=Local + db-name: gva + username: root + password: gdkid,,.. + max-idle-conns: 0 + max-open-conns: 0 + log-mode: false + log-zap: "" qiniu: - zone: 'ZoneHuaDong' - bucket: '' - img-path: '' + zone: ZoneHuaDong + bucket: "" + img-path: "" use-https: false - access-key: '' - secret-key: '' + access-key: "" + secret-key: "" use-cdn-domains: false - - -# aliyun oss configuration -aliyun-oss: - endpoint: 'yourEndpoint' - access-key-id: 'yourAccessKeyId' - access-key-secret: 'yourAccessKeySecret' - bucket-name: 'yourBucketName' - bucket-url: 'yourBucketUrl' - -# tencent cos configuration +redis: + db: 0 + addr: 127.0.0.1:6379 + password: "" +system: + env: public + addr: 8888 + db-type: mysql + oss-type: local + use-multipoint: false tencent-cos: - bucket: 'xxxxx-10005608' - region: 'ap-shanghai' - secret-id: 'xxxxxxxx' - secret-key: 'xxxxxxxx' - base-url: 'https://gin.vue.admin' - path-prefix: 'gin-vue-admin' - -# excel configuration -excel: - dir: './resource/excel/' - - -# timer task db clear table -Timer: - spec: "@daily" # 定时任务详细配置参考 https://pkg.go.dev/github.com/robfig/cron?utm_source=godoc - detail: [ - # tableName: 需要清理的表名 - # compareField: 需要比较时间的字段 - # interval: 时间间隔, 具体配置详看 time.ParseDuration() 中字符串表示 且不能为负数 - # 2160h = 24 * 30 * 3 -> 三个月 - { tableName: "sys_operation_records" , compareField: "created_at", interval: "2160h" }, - #{ tableName: "log2" , compareField: "created_at", interval: "2160h" } - ] + bucket: xxxxx-10005608 + region: ap-shanghai + secret-id: xxxxxxxx + secret-key: xxxxxxxx + base-url: https://gin.vue.admin + path-prefix: gin-vue-admin +timer: + start: false + spec: '@daily' + detail: + - tableName: sys_operation_records + compareField: created_at + interval: 2160h +zap: + level: info + format: console + prefix: '[GIN-VUE-ADMIN]' + director: log + link-name: latest_log + showLine: true + encode-level: LowercaseColorLevelEncoder + stacktrace-key: stacktrace + log-in-console: true diff --git a/server/service/sys_casbin.go b/server/service/sys_casbin.go index 0c0fb340..93c8bff0 100644 --- a/server/service/sys_casbin.go +++ b/server/service/sys_casbin.go @@ -10,6 +10,7 @@ import ( gormadapter "github.com/casbin/gorm-adapter/v3" _ "github.com/go-sql-driver/mysql" "strings" + "sync" ) //@author: [piexlmax](https://github.com/piexlmax) @@ -88,12 +89,19 @@ func ClearCasbin(v int, p ...string) bool { //@description: 持久化到数据库 引入自定义规则 //@return: *casbin.Enforcer -func Casbin() *casbin.Enforcer { - a, _ := gormadapter.NewAdapterByDB(global.GVA_DB) - e, _ := casbin.NewEnforcer(global.GVA_CONFIG.Casbin.ModelPath, a) - e.AddFunction("ParamsMatch", ParamsMatchFunc) - _ = e.LoadPolicy() - return e +var ( + syncedEnforcer *casbin.SyncedEnforcer + once sync.Once +) + +func Casbin() *casbin.SyncedEnforcer { + once.Do(func() { + a, _ := gormadapter.NewAdapterByDB(global.GVA_DB) + syncedEnforcer, _ = casbin.NewSyncedEnforcer(global.GVA_CONFIG.Casbin.ModelPath, a) + syncedEnforcer.AddFunction("ParamsMatch", ParamsMatchFunc) + }) + _ = syncedEnforcer.LoadPolicy() + return syncedEnforcer } //@author: [piexlmax](https://github.com/piexlmax) From 922f05bc1f6bf91e5f1c6d0168d9523a10966331 Mon Sep 17 00:00:00 2001 From: SliverHorn Date: Fri, 21 May 2021 18:49:35 +0800 Subject: [PATCH 2/3] fix: Restore config.yaml File --- server/config.yaml | 192 +++++++++++++++++++++++++++------------------ 1 file changed, 114 insertions(+), 78 deletions(-) diff --git a/server/config.yaml b/server/config.yaml index a45285c7..fb77272f 100644 --- a/server/config.yaml +++ b/server/config.yaml @@ -1,12 +1,77 @@ -aliyun-oss: - endpoint: yourEndpoint - access-key-id: yourAccessKeyId - access-key-secret: yourAccessKeySecret - bucket-name: yourBucketName - bucket-url: yourBucketUrl +# Gin-Vue-Admin Global Configuration + +# jwt configuration +jwt: + signing-key: 'qmPlus' + expires-time: 604800 + buffer-time: 86400 + +# zap logger configuration +zap: + level: 'info' + format: 'console' + prefix: '[GIN-VUE-ADMIN]' + director: 'log' + link-name: 'latest_log' + show-line: true + encode-level: 'LowercaseColorLevelEncoder' + stacktrace-key: 'stacktrace' + log-in-console: true + +# redis configuration +redis: + db: 0 + addr: '127.0.0.1:6379' + password: '' + +# email configuration +email: + to: 'xxx@qq.com' + port: 465 + from: 'xxx@163.com' + host: 'smtp.163.com' + is-ssl: true + secret: 'xxx' + nickname: 'test' + +# casbin configuration +casbin: + model-path: './resource/rbac_model.conf' + +# system configuration +system: + env: 'public' # Change to "develop" to skip authentication for development mode + addr: 8888 + db-type: 'mysql' + oss-type: 'local' # 控制oss选择走本期还是 七牛等其他仓 自行增加其他oss仓可以在 server/utils/upload/upload.go 中 NewOss函数配置 + use-multipoint: false + +# captcha configuration +captcha: + key-long: 6 + img-width: 240 + img-height: 80 + +# mysql connect configuration +mysql: + path: '' + config: '' + db-name: '' + username: '' + password: '' + max-idle-conns: 10 + max-open-conns: 100 + log-mode: false + log-zap: "" + +# local configuration +local: + path: 'uploads/file' + +# autocode configuration autocode: transfer-restart: true - root: /Users/sliverhorn/Go/src/github.com/flipped-aurora/gin-vue-admin + root: "" server: /server server-api: /api/v1 server-initialize: /initialize @@ -16,80 +81,51 @@ autocode: server-service: /service web: /web/src web-api: /api + web-flow: /view web-form: /view web-table: /view - web-flow: /view -captcha: - key-long: 6 - img-width: 240 - img-height: 80 -casbin: - model-path: ./resource/rbac_model.conf -email: - to: xxx@qq.com - port: 465 - from: xxx@163.com - host: smtp.163.com - is-ssl: true - secret: xxx - nickname: test -excel: - dir: ./resource/excel/ -jwt: - signing-key: qmPlus - expires-time: 604800 - buffer-time: 86400 -local: - path: uploads/file -mysql: - path: 127.0.0.1:13307 - config: charset=utf8mb4&parseTime=True&loc=Local - db-name: gva - username: root - password: gdkid,,.. - max-idle-conns: 0 - max-open-conns: 0 - log-mode: false - log-zap: "" + +# qiniu configuration (请自行七牛申请对应的 公钥 私钥 bucket 和 域名地址) qiniu: - zone: ZoneHuaDong - bucket: "" - img-path: "" + zone: 'ZoneHuaDong' + bucket: '' + img-path: '' use-https: false - access-key: "" - secret-key: "" + access-key: '' + secret-key: '' use-cdn-domains: false -redis: - db: 0 - addr: 127.0.0.1:6379 - password: "" -system: - env: public - addr: 8888 - db-type: mysql - oss-type: local - use-multipoint: false + + +# aliyun oss configuration +aliyun-oss: + endpoint: 'yourEndpoint' + access-key-id: 'yourAccessKeyId' + access-key-secret: 'yourAccessKeySecret' + bucket-name: 'yourBucketName' + bucket-url: 'yourBucketUrl' + +# tencent cos configuration tencent-cos: - bucket: xxxxx-10005608 - region: ap-shanghai - secret-id: xxxxxxxx - secret-key: xxxxxxxx - base-url: https://gin.vue.admin - path-prefix: gin-vue-admin -timer: - start: false - spec: '@daily' - detail: - - tableName: sys_operation_records - compareField: created_at - interval: 2160h -zap: - level: info - format: console - prefix: '[GIN-VUE-ADMIN]' - director: log - link-name: latest_log - showLine: true - encode-level: LowercaseColorLevelEncoder - stacktrace-key: stacktrace - log-in-console: true + bucket: 'xxxxx-10005608' + region: 'ap-shanghai' + secret-id: 'xxxxxxxx' + secret-key: 'xxxxxxxx' + base-url: 'https://gin.vue.admin' + path-prefix: 'gin-vue-admin' + +# excel configuration +excel: + dir: './resource/excel/' + + +# timer task db clear table +Timer: + spec: "@daily" # 定时任务详细配置参考 https://pkg.go.dev/github.com/robfig/cron?utm_source=godoc + detail: [ + # tableName: 需要清理的表名 + # compareField: 需要比较时间的字段 + # interval: 时间间隔, 具体配置详看 time.ParseDuration() 中字符串表示 且不能为负数 + # 2160h = 24 * 30 * 3 -> 三个月 + { tableName: "sys_operation_records" , compareField: "created_at", interval: "2160h" }, + #{ tableName: "log2" , compareField: "created_at", interval: "2160h" } + ] From 40b6f04bf668622a065b3ef7feb03744c7d71f97 Mon Sep 17 00:00:00 2001 From: pixel <303176530@qq.com> Date: Fri, 28 May 2021 19:18:48 +0800 Subject: [PATCH 3/3] =?UTF-8?q?2.4.2=E7=89=88=E6=9C=AC=E5=8F=B7=E5=8F=91?= =?UTF-8?q?=E5=B8=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/core/server.go | 2 +- web/src/main.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/server/core/server.go b/server/core/server.go index 573d32f1..5351a2bf 100644 --- a/server/core/server.go +++ b/server/core/server.go @@ -29,7 +29,7 @@ func RunWindowsServer() { fmt.Printf(` 欢迎使用 Gin-Vue-Admin - 当前版本:V2.4.1 + 当前版本:V2.4.2 加群方式:微信号:shouzi_1994 QQ群:622360840 默认自动化文档地址:http://127.0.0.1%s/swagger/index.html 默认前端文件运行地址:http://127.0.0.1:8080 diff --git a/web/src/main.js b/web/src/main.js index d381a97e..e23b11e4 100644 --- a/web/src/main.js +++ b/web/src/main.js @@ -149,7 +149,7 @@ export default new Vue({ console.log(` 欢迎使用 Gin-Vue-Admin - 当前版本:V2.4.1 + 当前版本:V2.4.2 加群方式:微信:shouzi_1994 QQ群:622360840 默认自动化文档地址:http://127.0.0.1:${process.env.VUE_APP_SERVER_PORT}/swagger/index.html 默认前端文件运行地址:http://127.0.0.1:${process.env.VUE_APP_CLI_PORT}