增加菜单项与验证
parent
3b0763eec7
commit
944b273bbb
226
README.md
226
README.md
|
@ -1,5 +1,5 @@
|
||||||
# goweb-gin-demo
|
# goweb-gin-demo
|
||||||
go web脚手架
|
go web脚手架, [数据库及表结构](./resource/sql/weekly_report.sql)
|
||||||
|
|
||||||
# [web框架gin](https://gin-gonic.com/zh-cn/docs/introduction/)
|
# [web框架gin](https://gin-gonic.com/zh-cn/docs/introduction/)
|
||||||
## 特性
|
## 特性
|
||||||
|
@ -75,6 +75,7 @@ func main() {
|
||||||
|
|
||||||
# 通过Swagger测试接口
|
# 通过Swagger测试接口
|
||||||
[官方地址](https://github.com/swaggo) ,其中包含`swag`可执行程序和`gin-swagger`go web模块, [使用手册](https://github.com/swaggo/gin-swagger)
|
[官方地址](https://github.com/swaggo) ,其中包含`swag`可执行程序和`gin-swagger`go web模块, [使用手册](https://github.com/swaggo/gin-swagger)
|
||||||
|
查看地址为: **http://IP:8888/swagger/index.html**
|
||||||
|
|
||||||
```
|
```
|
||||||
// @BasePath /api/v1
|
// @BasePath /api/v1
|
||||||
|
@ -200,6 +201,18 @@ docs/
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
jwt token
|
||||||
|
<br>
|
||||||
|
<div align=center>
|
||||||
|
<img src="./resource/md_res/jwt.png" width="60%" height="60%" title="JWT Token"></img>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
**用户-角色权限-菜单项|API|资源对应关系图**
|
||||||
|
<br>
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
|
||||||
# 获取菜单项
|
# 获取菜单项
|
||||||
api接口`/api/menu/getMenu`
|
api接口`/api/menu/getMenu`
|
||||||
|
@ -235,11 +248,6 @@ x-user-id: 1
|
||||||
+---------------------+---------------------+------------+--------------+----------------+-----------+----------------+
|
+---------------------+---------------------+------------+--------------+----------------+-----------+----------------+
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
返回数据样本
|
返回数据样本
|
||||||
```
|
```
|
||||||
{
|
{
|
||||||
|
@ -248,67 +256,212 @@ x-user-id: 1
|
||||||
"menus":[
|
"menus":[
|
||||||
{
|
{
|
||||||
"ID":1,
|
"ID":1,
|
||||||
"CreatedAt":"2021-10-25T14:53:31Z",
|
"CreatedAt":"2021-11-01T11:14:12Z",
|
||||||
"UpdatedAt":"2021-10-25T14:53:31Z",
|
"UpdatedAt":"2021-11-01T11:14:14Z",
|
||||||
"parentId":"0",
|
"parentId":"0",
|
||||||
"path":"dashboard",
|
"path":"",
|
||||||
"name":"dashboard",
|
"name":"周报",
|
||||||
"hidden":false,
|
"hidden":false,
|
||||||
"component":"view/dashboard/index.vue",
|
"component":"",
|
||||||
"sort":1,
|
"sort":1,
|
||||||
"meta":{
|
"meta":{
|
||||||
"keepAlive":false,
|
"keepAlive":false,
|
||||||
"defaultMenu":false,
|
"defaultMenu":false,
|
||||||
"title":"仪表盘",
|
"title":"周报",
|
||||||
"icon":"setting",
|
"icon":"",
|
||||||
"closeTab":false
|
"closeTab":false
|
||||||
},
|
},
|
||||||
"authoritys":null,
|
"authoritys":null,
|
||||||
"menuId":"1",
|
"menuId":"1",
|
||||||
"children":null,
|
"children":[
|
||||||
|
{
|
||||||
|
"ID":2,
|
||||||
|
"CreatedAt":"2021-11-01T11:16:40Z",
|
||||||
|
"UpdatedAt":"2021-11-01T11:16:43Z",
|
||||||
|
"parentId":"1",
|
||||||
|
"path":"",
|
||||||
|
"name":"查看周报",
|
||||||
|
"hidden":false,
|
||||||
|
"component":"",
|
||||||
|
"sort":1,
|
||||||
|
"meta":{
|
||||||
|
"keepAlive":false,
|
||||||
|
"defaultMenu":false,
|
||||||
|
"title":"查看周报",
|
||||||
|
"icon":"",
|
||||||
|
"closeTab":false
|
||||||
|
},
|
||||||
|
"authoritys":null,
|
||||||
|
"menuId":"2",
|
||||||
|
"children":null,
|
||||||
|
"parameters":[
|
||||||
|
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ID":3,
|
||||||
|
"CreatedAt":"2021-11-01T11:16:40Z",
|
||||||
|
"UpdatedAt":"2021-11-01T11:16:43Z",
|
||||||
|
"parentId":"1",
|
||||||
|
"path":"",
|
||||||
|
"name":"写周报",
|
||||||
|
"hidden":false,
|
||||||
|
"component":"",
|
||||||
|
"sort":2,
|
||||||
|
"meta":{
|
||||||
|
"keepAlive":false,
|
||||||
|
"defaultMenu":false,
|
||||||
|
"title":"写周报",
|
||||||
|
"icon":"",
|
||||||
|
"closeTab":false
|
||||||
|
},
|
||||||
|
"authoritys":null,
|
||||||
|
"menuId":"3",
|
||||||
|
"children":null,
|
||||||
|
"parameters":[
|
||||||
|
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ID":4,
|
||||||
|
"CreatedAt":"2021-11-01T11:16:40Z",
|
||||||
|
"UpdatedAt":"2021-11-01T11:16:43Z",
|
||||||
|
"parentId":"1",
|
||||||
|
"path":"",
|
||||||
|
"name":"统计导出",
|
||||||
|
"hidden":false,
|
||||||
|
"component":"",
|
||||||
|
"sort":3,
|
||||||
|
"meta":{
|
||||||
|
"keepAlive":false,
|
||||||
|
"defaultMenu":false,
|
||||||
|
"title":"统计导出",
|
||||||
|
"icon":"",
|
||||||
|
"closeTab":false
|
||||||
|
},
|
||||||
|
"authoritys":null,
|
||||||
|
"menuId":"4",
|
||||||
|
"children":null,
|
||||||
|
"parameters":[
|
||||||
|
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ID":5,
|
||||||
|
"CreatedAt":"2021-11-01T11:16:40Z",
|
||||||
|
"UpdatedAt":"2021-11-01T11:16:43Z",
|
||||||
|
"parentId":"1",
|
||||||
|
"path":"",
|
||||||
|
"name":"模板编辑",
|
||||||
|
"hidden":false,
|
||||||
|
"component":"",
|
||||||
|
"sort":4,
|
||||||
|
"meta":{
|
||||||
|
"keepAlive":false,
|
||||||
|
"defaultMenu":false,
|
||||||
|
"title":"模板编辑",
|
||||||
|
"icon":"",
|
||||||
|
"closeTab":false
|
||||||
|
},
|
||||||
|
"authoritys":null,
|
||||||
|
"menuId":"5",
|
||||||
|
"children":null,
|
||||||
|
"parameters":[
|
||||||
|
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
"parameters":[
|
"parameters":[
|
||||||
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"ID":3,
|
"ID":6,
|
||||||
"CreatedAt":"2021-10-25T14:53:31Z",
|
"CreatedAt":"2021-11-01T11:16:40Z",
|
||||||
"UpdatedAt":"2021-10-25T14:53:31Z",
|
"UpdatedAt":"2021-11-01T11:16:43Z",
|
||||||
"parentId":"0",
|
"parentId":"0",
|
||||||
"path":"admin",
|
"path":"",
|
||||||
"name":"superAdmin",
|
"name":"设置",
|
||||||
"hidden":false,
|
"hidden":false,
|
||||||
"component":"view/superAdmin/index.vue",
|
"component":"",
|
||||||
"sort":3,
|
"sort":2,
|
||||||
"meta":{
|
"meta":{
|
||||||
"keepAlive":false,
|
"keepAlive":false,
|
||||||
"defaultMenu":false,
|
"defaultMenu":false,
|
||||||
"title":"超级管理员",
|
"title":"设置",
|
||||||
"icon":"user-solid",
|
"icon":"",
|
||||||
"closeTab":false
|
"closeTab":false
|
||||||
},
|
},
|
||||||
"authoritys":null,
|
"authoritys":null,
|
||||||
"menuId":"3",
|
"menuId":"6",
|
||||||
"children":[
|
"children":[
|
||||||
{
|
{
|
||||||
"ID":4,
|
"ID":7,
|
||||||
"CreatedAt":"2021-10-25T14:53:31Z",
|
"CreatedAt":"2021-11-01T11:16:40Z",
|
||||||
"UpdatedAt":"2021-10-25T14:53:31Z",
|
"UpdatedAt":"2021-11-01T11:16:43Z",
|
||||||
"parentId":"3",
|
"parentId":"6",
|
||||||
"path":"authority",
|
"path":"",
|
||||||
"name":"authority",
|
"name":"用户密码",
|
||||||
"hidden":false,
|
"hidden":false,
|
||||||
"component":"view/superAdmin/authority/authority.vue",
|
"component":"",
|
||||||
"sort":1,
|
"sort":1,
|
||||||
"meta":{
|
"meta":{
|
||||||
"keepAlive":false,
|
"keepAlive":false,
|
||||||
"defaultMenu":false,
|
"defaultMenu":false,
|
||||||
"title":"角色管理",
|
"title":"用户密码",
|
||||||
"icon":"s-custom",
|
"icon":"",
|
||||||
"closeTab":false
|
"closeTab":false
|
||||||
},
|
},
|
||||||
"authoritys":null,
|
"authoritys":null,
|
||||||
"menuId":"4",
|
"menuId":"7",
|
||||||
|
"children":null,
|
||||||
|
"parameters":[
|
||||||
|
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ID":8,
|
||||||
|
"CreatedAt":"2021-11-01T11:16:40Z",
|
||||||
|
"UpdatedAt":"2021-11-01T11:16:43Z",
|
||||||
|
"parentId":"6",
|
||||||
|
"path":"",
|
||||||
|
"name":"统计规则",
|
||||||
|
"hidden":false,
|
||||||
|
"component":"",
|
||||||
|
"sort":2,
|
||||||
|
"meta":{
|
||||||
|
"keepAlive":false,
|
||||||
|
"defaultMenu":false,
|
||||||
|
"title":"统计规则",
|
||||||
|
"icon":"",
|
||||||
|
"closeTab":false
|
||||||
|
},
|
||||||
|
"authoritys":null,
|
||||||
|
"menuId":"8",
|
||||||
|
"children":null,
|
||||||
|
"parameters":[
|
||||||
|
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"ID":9,
|
||||||
|
"CreatedAt":"2021-11-01T11:16:40Z",
|
||||||
|
"UpdatedAt":"2021-11-01T11:16:43Z",
|
||||||
|
"parentId":"6",
|
||||||
|
"path":"",
|
||||||
|
"name":"用户管理",
|
||||||
|
"hidden":false,
|
||||||
|
"component":"",
|
||||||
|
"sort":3,
|
||||||
|
"meta":{
|
||||||
|
"keepAlive":false,
|
||||||
|
"defaultMenu":false,
|
||||||
|
"title":"用户管理",
|
||||||
|
"icon":"",
|
||||||
|
"closeTab":false
|
||||||
|
},
|
||||||
|
"authoritys":null,
|
||||||
|
"menuId":"9",
|
||||||
"children":null,
|
"children":null,
|
||||||
"parameters":[
|
"parameters":[
|
||||||
|
|
||||||
|
@ -365,10 +518,7 @@ if ok == true {
|
||||||
results, err := e.BatchEnforce([][]interface{}{{"alice", "data1", "read"}, {"bob", "data2", "write"}, {"jack", "data3", "read"}})
|
results, err := e.BatchEnforce([][]interface{}{{"alice", "data1", "read"}, {"bob", "data2", "write"}, {"jack", "data3", "read"}})
|
||||||
```
|
```
|
||||||
|
|
||||||
|
f
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# 文件上传及下载
|
# 文件上传及下载
|
||||||
|
|
||||||
# 反射reflect
|
# 反射reflect
|
||||||
|
|
|
@ -28,7 +28,7 @@ casbin:
|
||||||
|
|
||||||
# system configuration
|
# system configuration
|
||||||
system:
|
system:
|
||||||
env: 'public' # Change to "develop" to skip authentication for development mode
|
env: 'develop' # Change to "develop" to skip authentication for development mode # public
|
||||||
addr: 8888
|
addr: 8888
|
||||||
db-type: 'mysql'
|
db-type: 'mysql'
|
||||||
oss-type: 'local' # 控制oss选择走本期还是 七牛等其他仓 自行增加其他oss仓可以在 server/utils/upload/upload.go 中 NewOss函数配置
|
oss-type: 'local' # 控制oss选择走本期还是 七牛等其他仓 自行增加其他oss仓可以在 server/utils/upload/upload.go 中 NewOss函数配置
|
||||||
|
@ -41,11 +41,10 @@ captcha:
|
||||||
img-height: 80
|
img-height: 80
|
||||||
|
|
||||||
# mysql connect configuration
|
# mysql connect configuration
|
||||||
# 未初始化之前请勿手动修改数据库信息!!!如果一定要手动初始化请看(https://www.github.com/flipped-aurora/gin-vue-admin/server.com/docs/first)
|
|
||||||
mysql:
|
mysql:
|
||||||
path: ''
|
path: '10.25.17.236:3306'
|
||||||
config: 'parseTime=true'
|
config: 'parseTime=true'
|
||||||
db-name: 'gva'
|
db-name: 'weekly_report'
|
||||||
username: 'root'
|
username: 'root'
|
||||||
password: 'root'
|
password: 'root'
|
||||||
max-idle-conns: 10
|
max-idle-conns: 10
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
log/2021-10-29.log
|
log/2021-11-01.log
|
|
@ -0,0 +1,40 @@
|
||||||
|
[github.com/flipped-aurora/gin-vue-admin/server]2021/11/01 - 11:35:15.728 [34minfo[0m /Users/zero/work/mygithub/goweb-gin-demo/initialize/router.go:43 router register success
|
||||||
|
[github.com/flipped-aurora/gin-vue-admin/server]2021/11/01 - 11:35:15.730 [34minfo[0m /Users/zero/work/mygithub/goweb-gin-demo/core/server.go:31 server run success on {"address": ":8888"}
|
||||||
|
[github.com/flipped-aurora/gin-vue-admin/server]2021/11/01 - 11:37:50.685 [31merror[0m /Users/zero/work/mygithub/goweb-gin-demo/core/server.go:38 accept tcp [::]:8888: use of closed network connection
|
||||||
|
[github.com/flipped-aurora/gin-vue-admin/server]2021/11/01 - 11:37:56.723 [34minfo[0m /Users/zero/work/mygithub/goweb-gin-demo/initialize/router.go:43 router register success
|
||||||
|
[github.com/flipped-aurora/gin-vue-admin/server]2021/11/01 - 11:37:56.729 [34minfo[0m /Users/zero/work/mygithub/goweb-gin-demo/core/server.go:31 server run success on {"address": ":8888"}
|
||||||
|
[github.com/flipped-aurora/gin-vue-admin/server]2021/11/01 - 11:39:24.549 [31merror[0m /Users/zero/work/mygithub/goweb-gin-demo/core/server.go:38 accept tcp [::]:8888: use of closed network connection
|
||||||
|
[github.com/flipped-aurora/gin-vue-admin/server]2021/11/01 - 11:39:27.841 [34minfo[0m /Users/zero/work/mygithub/goweb-gin-demo/initialize/router.go:43 router register success
|
||||||
|
[github.com/flipped-aurora/gin-vue-admin/server]2021/11/01 - 11:39:27.842 [34minfo[0m /Users/zero/work/mygithub/goweb-gin-demo/core/server.go:31 server run success on {"address": ":8888"}
|
||||||
|
[github.com/flipped-aurora/gin-vue-admin/server]2021/11/01 - 11:39:40.386 [31merror[0m /Users/zero/work/mygithub/goweb-gin-demo/core/server.go:38 accept tcp [::]:8888: use of closed network connection
|
||||||
|
[github.com/flipped-aurora/gin-vue-admin/server]2021/11/01 - 11:39:43.200 [34minfo[0m /Users/zero/work/mygithub/goweb-gin-demo/initialize/router.go:43 router register success
|
||||||
|
[github.com/flipped-aurora/gin-vue-admin/server]2021/11/01 - 11:39:43.201 [34minfo[0m /Users/zero/work/mygithub/goweb-gin-demo/core/server.go:31 server run success on {"address": ":8888"}
|
||||||
|
[github.com/flipped-aurora/gin-vue-admin/server]2021/11/01 - 11:43:00.886 [31merror[0m /Users/zero/work/mygithub/goweb-gin-demo/core/server.go:38 accept tcp [::]:8888: use of closed network connection
|
||||||
|
[github.com/flipped-aurora/gin-vue-admin/server]2021/11/01 - 11:43:05.782 [34minfo[0m /Users/zero/work/mygithub/goweb-gin-demo/initialize/router.go:43 router register success
|
||||||
|
[github.com/flipped-aurora/gin-vue-admin/server]2021/11/01 - 11:43:05.783 [34minfo[0m /Users/zero/work/mygithub/goweb-gin-demo/core/server.go:31 server run success on {"address": ":8888"}
|
||||||
|
[github.com/flipped-aurora/gin-vue-admin/server]2021/11/01 - 11:44:39.572 [31merror[0m /Users/zero/work/mygithub/goweb-gin-demo/core/server.go:38 accept tcp [::]:8888: use of closed network connection
|
||||||
|
[github.com/flipped-aurora/gin-vue-admin/server]2021/11/01 - 11:44:43.674 [34minfo[0m /Users/zero/work/mygithub/goweb-gin-demo/initialize/router.go:43 router register success
|
||||||
|
[github.com/flipped-aurora/gin-vue-admin/server]2021/11/01 - 11:44:43.675 [34minfo[0m /Users/zero/work/mygithub/goweb-gin-demo/core/server.go:31 server run success on {"address": ":8888"}
|
||||||
|
[github.com/flipped-aurora/gin-vue-admin/server]2021/11/01 - 11:53:20.469 [31merror[0m /Users/zero/work/mygithub/goweb-gin-demo/core/server.go:38 accept tcp [::]:8888: use of closed network connection
|
||||||
|
[github.com/flipped-aurora/gin-vue-admin/server]2021/11/01 - 11:53:26.535 [34minfo[0m /Users/zero/work/mygithub/goweb-gin-demo/initialize/router.go:43 router register success
|
||||||
|
[github.com/flipped-aurora/gin-vue-admin/server]2021/11/01 - 11:53:26.537 [34minfo[0m /Users/zero/work/mygithub/goweb-gin-demo/core/server.go:31 server run success on {"address": ":8888"}
|
||||||
|
[github.com/flipped-aurora/gin-vue-admin/server]2021/11/01 - 11:57:11.338 [31merror[0m /Users/zero/work/mygithub/goweb-gin-demo/core/server.go:38 accept tcp [::]:8888: use of closed network connection
|
||||||
|
[github.com/flipped-aurora/gin-vue-admin/server]2021/11/01 - 11:57:16.622 [34minfo[0m /Users/zero/work/mygithub/goweb-gin-demo/initialize/router.go:43 router register success
|
||||||
|
[github.com/flipped-aurora/gin-vue-admin/server]2021/11/01 - 11:57:16.631 [34minfo[0m /Users/zero/work/mygithub/goweb-gin-demo/core/server.go:31 server run success on {"address": ":8888"}
|
||||||
|
[github.com/flipped-aurora/gin-vue-admin/server]2021/11/01 - 11:57:56.918 [31merror[0m /Users/zero/work/mygithub/goweb-gin-demo/core/server.go:38 accept tcp [::]:8888: use of closed network connection
|
||||||
|
[github.com/flipped-aurora/gin-vue-admin/server]2021/11/01 - 11:58:10.380 [34minfo[0m /Users/zero/work/mygithub/goweb-gin-demo/initialize/router.go:43 router register success
|
||||||
|
[github.com/flipped-aurora/gin-vue-admin/server]2021/11/01 - 11:58:10.381 [34minfo[0m /Users/zero/work/mygithub/goweb-gin-demo/core/server.go:31 server run success on {"address": ":8888"}
|
||||||
|
[github.com/flipped-aurora/gin-vue-admin/server]2021/11/01 - 12:00:42.239 [34minfo[0m /Users/zero/work/mygithub/goweb-gin-demo/initialize/router.go:43 router register success
|
||||||
|
[github.com/flipped-aurora/gin-vue-admin/server]2021/11/01 - 12:00:42.240 [34minfo[0m /Users/zero/work/mygithub/goweb-gin-demo/core/server.go:31 server run success on {"address": ":8888"}
|
||||||
|
[github.com/flipped-aurora/gin-vue-admin/server]2021/11/01 - 12:18:01.957 [34minfo[0m /Users/zero/work/mygithub/goweb-gin-demo/initialize/router.go:43 router register success
|
||||||
|
[github.com/flipped-aurora/gin-vue-admin/server]2021/11/01 - 12:18:01.961 [34minfo[0m /Users/zero/work/mygithub/goweb-gin-demo/core/server.go:31 server run success on {"address": ":8888"}
|
||||||
|
[github.com/flipped-aurora/gin-vue-admin/server]2021/11/01 - 12:18:12.715 [31merror[0m /Users/zero/work/mygithub/goweb-gin-demo/api/web/menu.go:28 获取失败! {"err": "Error 1146: Table 'weekly_report.authority_menu' doesn't exist"}
|
||||||
|
[github.com/flipped-aurora/gin-vue-admin/server]2021/11/01 - 13:12:08.274 [31merror[0m /Users/zero/work/mygithub/goweb-gin-demo/core/server.go:38 accept tcp [::]:8888: use of closed network connection
|
||||||
|
[github.com/flipped-aurora/gin-vue-admin/server]2021/11/01 - 13:59:12.657 [34minfo[0m /Users/zero/work/mygithub/goweb-gin-demo/initialize/router.go:43 router register success
|
||||||
|
[github.com/flipped-aurora/gin-vue-admin/server]2021/11/01 - 13:59:12.660 [34minfo[0m /Users/zero/work/mygithub/goweb-gin-demo/core/server.go:31 server run success on {"address": ":8888"}
|
||||||
|
[github.com/flipped-aurora/gin-vue-admin/server]2021/11/01 - 18:07:17.857 [34minfo[0m /Users/zero/work/mygithub/goweb-gin-demo/initialize/router.go:43 router register success
|
||||||
|
[github.com/flipped-aurora/gin-vue-admin/server]2021/11/01 - 18:07:17.858 [34minfo[0m /Users/zero/work/mygithub/goweb-gin-demo/core/server.go:31 server run success on {"address": ":8888"}
|
||||||
|
[github.com/flipped-aurora/gin-vue-admin/server]2021/11/01 - 18:12:46.454 [31merror[0m /Users/zero/work/mygithub/goweb-gin-demo/core/server.go:38 accept tcp [::]:8888: use of closed network connection
|
||||||
|
[github.com/flipped-aurora/gin-vue-admin/server]2021/11/01 - 18:12:49.860 [34minfo[0m /Users/zero/work/mygithub/goweb-gin-demo/initialize/router.go:43 router register success
|
||||||
|
[github.com/flipped-aurora/gin-vue-admin/server]2021/11/01 - 18:12:49.861 [34minfo[0m /Users/zero/work/mygithub/goweb-gin-demo/core/server.go:31 server run success on {"address": ":8888"}
|
||||||
|
[github.com/flipped-aurora/gin-vue-admin/server]2021/11/01 - 18:13:19.271 [31merror[0m /Users/zero/work/mygithub/goweb-gin-demo/core/server.go:38 accept tcp [::]:8888: use of closed network connection
|
|
@ -22,7 +22,7 @@ func CasbinHandler() gin.HandlerFunc {
|
||||||
// 获取用户的角色
|
// 获取用户的角色
|
||||||
sub := waitUse.AuthorityId
|
sub := waitUse.AuthorityId
|
||||||
e := casbinService.Casbin()
|
e := casbinService.Casbin()
|
||||||
// 判断策略中是否存在
|
// 判断策略中是否存在, 查表匹配,比如: sub:100 ,obt:"/menu/getMenu", act:"Post"
|
||||||
success, _ := e.Enforce(sub, obj, act)
|
success, _ := e.Enforce(sub, obj, act)
|
||||||
if global.GLOBAL_CONFIG.System.Env == "develop" || success {
|
if global.GLOBAL_CONFIG.System.Env == "develop" || success {
|
||||||
c.Next()
|
c.Next()
|
||||||
|
|
|
@ -66,6 +66,7 @@ func JWTAuth() gin.HandlerFunc {
|
||||||
_ = jwtService.SetRedisJWT(newToken, newClaims.Username)
|
_ = jwtService.SetRedisJWT(newToken, newClaims.Username)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
c.Set("claims", claims)
|
c.Set("claims", claims)
|
||||||
c.Next()
|
c.Next()
|
||||||
}
|
}
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 311 KiB |
Binary file not shown.
After Width: | Height: | Size: 280 KiB |
|
@ -0,0 +1,226 @@
|
||||||
|
/*
|
||||||
|
Navicat Premium Data Transfer
|
||||||
|
|
||||||
|
Source Server : g1_mysql
|
||||||
|
Source Server Type : MySQL
|
||||||
|
Source Server Version : 50736
|
||||||
|
Source Host : g1:3306
|
||||||
|
Source Schema : weekly_report
|
||||||
|
|
||||||
|
Target Server Type : MySQL
|
||||||
|
Target Server Version : 50736
|
||||||
|
File Encoding : 65001
|
||||||
|
|
||||||
|
Date: 01/11/2021 17:25:45
|
||||||
|
*/
|
||||||
|
|
||||||
|
SET NAMES utf8mb4;
|
||||||
|
SET FOREIGN_KEY_CHECKS = 0;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Table structure for casbin_rule
|
||||||
|
-- ----------------------------
|
||||||
|
DROP TABLE IF EXISTS `casbin_rule`;
|
||||||
|
CREATE TABLE `casbin_rule` (
|
||||||
|
`p_type` varchar(100) COLLATE utf8_bin DEFAULT NULL,
|
||||||
|
`v0` varchar(100) COLLATE utf8_bin DEFAULT NULL,
|
||||||
|
`v1` varchar(100) COLLATE utf8_bin DEFAULT NULL,
|
||||||
|
`v2` varchar(100) COLLATE utf8_bin DEFAULT NULL,
|
||||||
|
`v3` varchar(100) COLLATE utf8_bin DEFAULT NULL,
|
||||||
|
`v4` varchar(100) COLLATE utf8_bin DEFAULT NULL,
|
||||||
|
`v5` varchar(100) COLLATE utf8_bin DEFAULT NULL,
|
||||||
|
`ptype` varchar(100) COLLATE utf8_bin DEFAULT NULL,
|
||||||
|
UNIQUE KEY `idx_casbin_rule` (`ptype`,`v0`,`v1`,`v2`,`v3`,`v4`,`v5`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Records of casbin_rule
|
||||||
|
-- ----------------------------
|
||||||
|
BEGIN;
|
||||||
|
INSERT INTO `casbin_rule` VALUES ('p', '100', '/menu/getMenu', 'POST', '', '', '', NULL);
|
||||||
|
INSERT INTO `casbin_rule` VALUES ('p', '100', '/jwt/jsonInBlacklist', 'POST', '', '', '', NULL);
|
||||||
|
INSERT INTO `casbin_rule` VALUES ('p', '100', '/base/login', 'POST', '', '', '', NULL);
|
||||||
|
INSERT INTO `casbin_rule` VALUES ('p', '100', '/user/register', 'POST', '', '', '', NULL);
|
||||||
|
INSERT INTO `casbin_rule` VALUES ('p', '100', '/user/changePassword', 'POST', '', '', '', NULL);
|
||||||
|
INSERT INTO `casbin_rule` VALUES ('p', '100', '/user/setUserAuthority', 'POST', '', '', '', NULL);
|
||||||
|
INSERT INTO `casbin_rule` VALUES ('p', '100', '/user/setUserInfo', 'PUT', '', '', '', NULL);
|
||||||
|
INSERT INTO `casbin_rule` VALUES ('p', '100', '/user/getUserInfo', 'GET', '', '', '', NULL);
|
||||||
|
INSERT INTO `casbin_rule` VALUES ('p', '200', '/menu/getMenu', 'POST', '', '', '', NULL);
|
||||||
|
INSERT INTO `casbin_rule` VALUES ('p', '200', '/jwt/jsonInBlacklist', 'POST', '', '', '', NULL);
|
||||||
|
INSERT INTO `casbin_rule` VALUES ('p', '200', '/base/login', 'POST', '', '', '', NULL);
|
||||||
|
INSERT INTO `casbin_rule` VALUES ('p', '200', '/user/register', 'POST', '', '', '', NULL);
|
||||||
|
INSERT INTO `casbin_rule` VALUES ('p', '200', '/user/changePassword', 'POST', '', '', '', NULL);
|
||||||
|
INSERT INTO `casbin_rule` VALUES ('p', '200', '/user/setUserAuthority', 'POST', '', '', '', NULL);
|
||||||
|
INSERT INTO `casbin_rule` VALUES ('p', '200', '/user/setUserInfo', 'PUT', '', '', '', NULL);
|
||||||
|
INSERT INTO `casbin_rule` VALUES ('p', '200', '/user/getUserInfo', 'GET', '', '', '', NULL);
|
||||||
|
COMMIT;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Table structure for jwt_blacklists
|
||||||
|
-- ----------------------------
|
||||||
|
DROP TABLE IF EXISTS `jwt_blacklists`;
|
||||||
|
CREATE TABLE `jwt_blacklists` (
|
||||||
|
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
|
||||||
|
`created_at` datetime DEFAULT NULL,
|
||||||
|
`updated_at` datetime DEFAULT NULL,
|
||||||
|
`deleted_at` datetime DEFAULT NULL,
|
||||||
|
`jwt` text COLLATE utf8_bin COMMENT 'jwt',
|
||||||
|
PRIMARY KEY (`id`),
|
||||||
|
KEY `idx_jwt_blacklists_deleted_at` (`deleted_at`)
|
||||||
|
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Records of jwt_blacklists
|
||||||
|
-- ----------------------------
|
||||||
|
BEGIN;
|
||||||
|
COMMIT;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Table structure for sys_authorities
|
||||||
|
-- ----------------------------
|
||||||
|
DROP TABLE IF EXISTS `sys_authorities`;
|
||||||
|
CREATE TABLE `sys_authorities` (
|
||||||
|
`created_at` datetime DEFAULT NULL,
|
||||||
|
`updated_at` datetime DEFAULT NULL,
|
||||||
|
`deleted_at` datetime DEFAULT NULL,
|
||||||
|
`authority_id` varchar(90) COLLATE utf8_bin NOT NULL COMMENT '角色ID',
|
||||||
|
`authority_name` varchar(191) COLLATE utf8_bin DEFAULT NULL COMMENT '角色名',
|
||||||
|
`parent_id` varchar(191) COLLATE utf8_bin DEFAULT NULL COMMENT '父角色ID',
|
||||||
|
`default_router` varchar(191) COLLATE utf8_bin DEFAULT 'dashboard' COMMENT '默认菜单',
|
||||||
|
PRIMARY KEY (`authority_id`),
|
||||||
|
UNIQUE KEY `authority_id` (`authority_id`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Records of sys_authorities
|
||||||
|
-- ----------------------------
|
||||||
|
BEGIN;
|
||||||
|
INSERT INTO `sys_authorities` VALUES ('2021-11-01 10:57:52', '2021-11-01 10:57:55', NULL, '100', '管理员', '0', 'dashboard');
|
||||||
|
INSERT INTO `sys_authorities` VALUES ('2021-11-01 11:02:49', '2021-11-01 11:02:51', NULL, '200', '普通用户', '0', 'dashboard');
|
||||||
|
COMMIT;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Table structure for sys_authority_menus
|
||||||
|
-- ----------------------------
|
||||||
|
DROP TABLE IF EXISTS `sys_authority_menus`;
|
||||||
|
CREATE TABLE `sys_authority_menus` (
|
||||||
|
`sys_base_menu_id` bigint(20) unsigned NOT NULL,
|
||||||
|
`sys_authority_authority_id` varchar(90) COLLATE utf8_bin NOT NULL COMMENT '角色ID',
|
||||||
|
PRIMARY KEY (`sys_base_menu_id`,`sys_authority_authority_id`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Records of sys_authority_menus
|
||||||
|
-- ----------------------------
|
||||||
|
BEGIN;
|
||||||
|
INSERT INTO `sys_authority_menus` VALUES (1, '100');
|
||||||
|
INSERT INTO `sys_authority_menus` VALUES (1, '200');
|
||||||
|
INSERT INTO `sys_authority_menus` VALUES (2, '100');
|
||||||
|
INSERT INTO `sys_authority_menus` VALUES (2, '200');
|
||||||
|
INSERT INTO `sys_authority_menus` VALUES (3, '100');
|
||||||
|
INSERT INTO `sys_authority_menus` VALUES (3, '200');
|
||||||
|
INSERT INTO `sys_authority_menus` VALUES (4, '100');
|
||||||
|
INSERT INTO `sys_authority_menus` VALUES (5, '100');
|
||||||
|
INSERT INTO `sys_authority_menus` VALUES (6, '100');
|
||||||
|
INSERT INTO `sys_authority_menus` VALUES (6, '200');
|
||||||
|
INSERT INTO `sys_authority_menus` VALUES (7, '100');
|
||||||
|
INSERT INTO `sys_authority_menus` VALUES (7, '200');
|
||||||
|
INSERT INTO `sys_authority_menus` VALUES (8, '100');
|
||||||
|
INSERT INTO `sys_authority_menus` VALUES (9, '100');
|
||||||
|
COMMIT;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Table structure for sys_base_menus
|
||||||
|
-- ----------------------------
|
||||||
|
DROP TABLE IF EXISTS `sys_base_menus`;
|
||||||
|
CREATE TABLE `sys_base_menus` (
|
||||||
|
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
|
||||||
|
`created_at` datetime DEFAULT NULL,
|
||||||
|
`updated_at` datetime DEFAULT NULL,
|
||||||
|
`deleted_at` datetime DEFAULT NULL,
|
||||||
|
`menu_level` bigint(20) unsigned DEFAULT NULL,
|
||||||
|
`parent_id` varchar(191) COLLATE utf8_bin DEFAULT NULL COMMENT '父菜单ID',
|
||||||
|
`path` varchar(191) COLLATE utf8_bin DEFAULT NULL COMMENT '路由path',
|
||||||
|
`name` varchar(191) COLLATE utf8_bin DEFAULT NULL COMMENT '路由name',
|
||||||
|
`hidden` tinyint(1) DEFAULT NULL COMMENT '是否在列表隐藏',
|
||||||
|
`component` varchar(191) COLLATE utf8_bin DEFAULT NULL COMMENT '对应前端文件路径',
|
||||||
|
`sort` bigint(20) DEFAULT NULL COMMENT '排序标记',
|
||||||
|
`keep_alive` tinyint(1) DEFAULT NULL COMMENT '附加属性',
|
||||||
|
`default_menu` tinyint(1) DEFAULT NULL COMMENT '附加属性',
|
||||||
|
`title` varchar(191) COLLATE utf8_bin DEFAULT NULL COMMENT '附加属性',
|
||||||
|
`icon` varchar(191) COLLATE utf8_bin DEFAULT NULL COMMENT '附加属性',
|
||||||
|
`close_tab` tinyint(1) DEFAULT NULL COMMENT '附加属性',
|
||||||
|
PRIMARY KEY (`id`),
|
||||||
|
KEY `idx_sys_base_menus_deleted_at` (`deleted_at`)
|
||||||
|
) ENGINE=InnoDB AUTO_INCREMENT=28 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Records of sys_base_menus
|
||||||
|
-- ----------------------------
|
||||||
|
BEGIN;
|
||||||
|
INSERT INTO `sys_base_menus` VALUES (1, '2021-11-01 11:14:12', '2021-11-01 11:14:14', NULL, NULL, '0', NULL, '周报', NULL, NULL, 1, NULL, NULL, '周报', NULL, NULL);
|
||||||
|
INSERT INTO `sys_base_menus` VALUES (2, '2021-11-01 11:16:40', '2021-11-01 11:16:43', NULL, NULL, '1', NULL, '查看周报', NULL, NULL, 1, NULL, NULL, '查看周报', NULL, NULL);
|
||||||
|
INSERT INTO `sys_base_menus` VALUES (3, '2021-11-01 11:16:40', '2021-11-01 11:16:43', NULL, NULL, '1', NULL, '写周报', NULL, NULL, 2, NULL, NULL, '写周报', NULL, NULL);
|
||||||
|
INSERT INTO `sys_base_menus` VALUES (4, '2021-11-01 11:16:40', '2021-11-01 11:16:43', NULL, NULL, '1', NULL, '统计导出', NULL, NULL, 3, NULL, NULL, '统计导出', NULL, NULL);
|
||||||
|
INSERT INTO `sys_base_menus` VALUES (5, '2021-11-01 11:16:40', '2021-11-01 11:16:43', NULL, NULL, '1', NULL, '模板编辑', NULL, NULL, 4, NULL, NULL, '模板编辑', NULL, NULL);
|
||||||
|
INSERT INTO `sys_base_menus` VALUES (6, '2021-11-01 11:16:40', '2021-11-01 11:16:43', NULL, NULL, '0', NULL, '设置', NULL, NULL, 2, NULL, NULL, '设置', NULL, NULL);
|
||||||
|
INSERT INTO `sys_base_menus` VALUES (7, '2021-11-01 11:16:40', '2021-11-01 11:16:43', NULL, NULL, '6', NULL, '用户密码', NULL, NULL, 1, NULL, NULL, '用户密码', NULL, NULL);
|
||||||
|
INSERT INTO `sys_base_menus` VALUES (8, '2021-11-01 11:16:40', '2021-11-01 11:16:43', NULL, NULL, '6', NULL, '统计规则', NULL, NULL, 2, NULL, NULL, '统计规则', NULL, NULL);
|
||||||
|
INSERT INTO `sys_base_menus` VALUES (9, '2021-11-01 11:16:40', '2021-11-01 11:16:43', NULL, NULL, '6', NULL, '用户管理', NULL, NULL, 3, NULL, NULL, '用户管理', NULL, NULL);
|
||||||
|
COMMIT;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Table structure for sys_user_authority
|
||||||
|
-- ----------------------------
|
||||||
|
DROP TABLE IF EXISTS `sys_user_authority`;
|
||||||
|
CREATE TABLE `sys_user_authority` (
|
||||||
|
`sys_user_id` bigint(20) unsigned NOT NULL,
|
||||||
|
`sys_authority_authority_id` varchar(90) COLLATE utf8_bin NOT NULL COMMENT '角色ID',
|
||||||
|
PRIMARY KEY (`sys_user_id`,`sys_authority_authority_id`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Records of sys_user_authority
|
||||||
|
-- ----------------------------
|
||||||
|
BEGIN;
|
||||||
|
INSERT INTO `sys_user_authority` VALUES (1, '100');
|
||||||
|
INSERT INTO `sys_user_authority` VALUES (2, '200');
|
||||||
|
COMMIT;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Table structure for sys_users
|
||||||
|
-- ----------------------------
|
||||||
|
DROP TABLE IF EXISTS `sys_users`;
|
||||||
|
CREATE TABLE `sys_users` (
|
||||||
|
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
|
||||||
|
`created_at` datetime DEFAULT NULL,
|
||||||
|
`updated_at` datetime DEFAULT NULL,
|
||||||
|
`deleted_at` datetime DEFAULT NULL,
|
||||||
|
`uuid` varchar(191) COLLATE utf8_bin DEFAULT NULL COMMENT '用户UUID',
|
||||||
|
`username` varchar(191) COLLATE utf8_bin DEFAULT NULL COMMENT '用户登录名',
|
||||||
|
`password` varchar(191) COLLATE utf8_bin DEFAULT NULL COMMENT '用户登录密码',
|
||||||
|
`nick_name` varchar(191) COLLATE utf8_bin DEFAULT '系统用户' COMMENT '用户昵称',
|
||||||
|
`side_mode` varchar(191) COLLATE utf8_bin DEFAULT 'dark' COMMENT '用户侧边主题',
|
||||||
|
`header_img` varchar(191) COLLATE utf8_bin DEFAULT 'https://qmplusimg.henrongyi.top/gva_header.jpg' COMMENT '用户头像',
|
||||||
|
`base_color` varchar(191) COLLATE utf8_bin DEFAULT '#fff' COMMENT '基础颜色',
|
||||||
|
`active_color` varchar(191) COLLATE utf8_bin DEFAULT '#1890ff' COMMENT '活跃颜色',
|
||||||
|
`authority_id` varchar(90) COLLATE utf8_bin DEFAULT '888' COMMENT '用户角色ID',
|
||||||
|
PRIMARY KEY (`id`),
|
||||||
|
KEY `idx_sys_users_deleted_at` (`deleted_at`)
|
||||||
|
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Records of sys_users
|
||||||
|
-- ----------------------------
|
||||||
|
BEGIN;
|
||||||
|
INSERT INTO `sys_users` VALUES (1, '2021-11-01 14:53:31', '2021-11-01 14:53:31', NULL, '8e600b7f-3297-4979-a445-d218205ef9a6', 'admin', 'e10adc3949ba59abbe56e057f20f883e', '超级管理员', 'dark', '', '#fff', '#1890ff', '100');
|
||||||
|
INSERT INTO `sys_users` VALUES (2, '2021-11-01 14:53:31', '2021-11-01 14:53:31', NULL, '9d9ab82d-81a7-433b-9ea1-bde1c4f1b990', 'user', 'e10adc3949ba59abbe56e057f20f883e', '普通用户', 'dark', '', '#fff', '#1890ff', '200');
|
||||||
|
COMMIT;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- View structure for authority_menu
|
||||||
|
-- ----------------------------
|
||||||
|
DROP VIEW IF EXISTS `authority_menu`;
|
||||||
|
CREATE ALGORITHM = UNDEFINED SQL SECURITY DEFINER VIEW `authority_menu` AS select `sys_base_menus`.`id` AS `id`,`sys_base_menus`.`created_at` AS `created_at`,`sys_base_menus`.`updated_at` AS `updated_at`,`sys_base_menus`.`deleted_at` AS `deleted_at`,`sys_base_menus`.`menu_level` AS `menu_level`,`sys_base_menus`.`parent_id` AS `parent_id`,`sys_base_menus`.`path` AS `path`,`sys_base_menus`.`name` AS `name`,`sys_base_menus`.`hidden` AS `hidden`,`sys_base_menus`.`component` AS `component`,`sys_base_menus`.`title` AS `title`,`sys_base_menus`.`icon` AS `icon`,`sys_base_menus`.`sort` AS `sort`,`sys_authority_menus`.`sys_authority_authority_id` AS `authority_id`,`sys_authority_menus`.`sys_base_menu_id` AS `menu_id`,`sys_base_menus`.`keep_alive` AS `keep_alive`,`sys_base_menus`.`close_tab` AS `close_tab`,`sys_base_menus`.`default_menu` AS `default_menu` from (`sys_authority_menus` join `sys_base_menus` on((`sys_authority_menus`.`sys_base_menu_id` = `sys_base_menus`.`id`)));
|
||||||
|
|
||||||
|
SET FOREIGN_KEY_CHECKS = 1;
|
Loading…
Reference in New Issue