diff --git a/server/config.yaml b/server/config.yaml index fb77272fdd80ceb2c7752648b9b944d13a3f1a96..a45285c7cde50425a657993261a5e258fbae1406 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 0c0fb340d18f474e22a404a9433061c4578821a9..93c8bff0f93ca96ab5aa1c05604f288881079287 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)