From 47c52fba3239cd238e684729dca8766775c1cc55 Mon Sep 17 00:00:00 2001 From: Max Date: Thu, 31 Mar 2022 22:11:40 +0800 Subject: [PATCH] [add] [add] table API custom guard --- Makefile | 2 +- data/bindata.go | 62 ++++++++++++++++++++-------------------- service/guard.go | 2 ++ table/table.go | 48 +++++++++++++++++++++++++++++++ yao/apis/table.http.json | 2 +- 5 files changed, 83 insertions(+), 33 deletions(-) diff --git a/Makefile b/Makefile index 0d03f4d3..b144596a 100644 --- a/Makefile +++ b/Makefile @@ -193,7 +193,7 @@ release: clean # Building UI git clone https://github.com/YaoApp/xgen.git .tmp/ui sed -ie "s/url('\/icon/url('\/xiang\/icon/g" .tmp/ui/public/icon/md_icon.css - cd .tmp/ui && npm install && npm run build + cd .tmp/ui && yarn install && yarn build # Packing mkdir -p .tmp/data diff --git a/data/bindata.go b/data/bindata.go index 307356b6..6c319133 100644 --- a/data/bindata.go +++ b/data/bindata.go @@ -208,7 +208,7 @@ func uiIndexHtml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "ui/index.html", size: 22, mode: os.FileMode(420), modTime: time.Unix(1646123553, 0)} + info := bindataFileInfo{name: "ui/index.html", size: 22, mode: os.FileMode(420), modTime: time.Unix(1648735794, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -228,7 +228,7 @@ func yaoDs_store() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/.DS_Store", size: 6148, mode: os.FileMode(420), modTime: time.Unix(1646123553, 0)} + info := bindataFileInfo{name: "yao/.DS_Store", size: 6148, mode: os.FileMode(420), modTime: time.Unix(1648735794, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -248,7 +248,7 @@ func yaoApisReadmeMd() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/apis/README.md", size: 13, mode: os.FileMode(420), modTime: time.Unix(1646123553, 0)} + info := bindataFileInfo{name: "yao/apis/README.md", size: 13, mode: os.FileMode(420), modTime: time.Unix(1648735794, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -268,7 +268,7 @@ func yaoApisChartHttpJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/apis/chart.http.json", size: 624, mode: os.FileMode(420), modTime: time.Unix(1646123553, 0)} + info := bindataFileInfo{name: "yao/apis/chart.http.json", size: 624, mode: os.FileMode(420), modTime: time.Unix(1648735794, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -288,7 +288,7 @@ func yaoApisImportHttpJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/apis/import.http.json", size: 1676, mode: os.FileMode(420), modTime: time.Unix(1646123553, 0)} + info := bindataFileInfo{name: "yao/apis/import.http.json", size: 1676, mode: os.FileMode(420), modTime: time.Unix(1648735794, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -308,7 +308,7 @@ func yaoApisPageHttpJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/apis/page.http.json", size: 609, mode: os.FileMode(420), modTime: time.Unix(1646123553, 0)} + info := bindataFileInfo{name: "yao/apis/page.http.json", size: 609, mode: os.FileMode(420), modTime: time.Unix(1648735794, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -328,12 +328,12 @@ func yaoApisStorageHttpJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/apis/storage.http.json", size: 1092, mode: os.FileMode(420), modTime: time.Unix(1646123553, 0)} + info := bindataFileInfo{name: "yao/apis/storage.http.json", size: 1092, mode: os.FileMode(420), modTime: time.Unix(1648735794, 0)} a := &asset{bytes: bytes, info: info} return a, nil } -var _yaoApisTableHttpJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xd4\x56\xcd\x6e\xd3\x40\x10\xbe\xe7\x29\x56\xab\x1e\x53\x3b\x70\xf4\x0d\x89\x1f\xe5\x44\x51\x41\x1c\xaa\x1e\xa6\xde\x21\x99\xd6\x5e\x6f\xf7\x27\xc1\x54\x79\x04\xe0\xc4\x1d\x84\x90\x38\x21\x1e\x80\xd7\x21\xe2\x31\xd0\xae\x4d\x52\x87\xa4\x0d\xb1\x90\xd3\x4b\xa2\x9d\x99\x6f\x34\xdf\xf7\x79\xec\xbd\xea\x31\xc6\x25\xe4\xc8\x13\xc6\xe7\x1f\xbe\xcf\xdf\x7e\xfb\xf5\xe9\xeb\xfc\xe3\x8f\xf9\xbb\x2f\x3f\xdf\x7f\xe6\x7d\x9f\x9f\xa0\x36\x54\x48\x5f\x72\x2f\x1a\x44\x83\x2a\x2a\xd0\xa4\x9a\x94\xad\x33\x7f\x83\x1f\x1c\x0d\xab\xca\x91\x2e\x9c\xf2\x35\xaf\x09\xe4\x28\xb6\x70\x96\x61\x9d\x71\xa0\x85\xcf\x9c\x21\x68\xd4\x87\xe7\x53\x5b\x25\x14\xd8\xb1\xe1\x09\x3b\xe9\x31\xc6\xd8\x55\xf8\xad\xc3\xbe\x3c\x4e\xfc\xcc\xb1\x41\xd0\xe9\x38\x20\x42\x3a\x47\x3b\x2e\x42\xbf\x27\x8f\x9e\x2f\xc3\x4a\x17\x29\x1a\xb3\x98\x20\x0a\x13\x44\xc7\x2b\x68\xf2\x3c\x4e\xf8\x81\x02\x0d\x79\x14\x44\xe9\x33\x9e\x5c\x3a\xd4\xe5\x61\x08\xfa\xf3\x41\x38\x47\x0a\x46\xb8\x72\x34\xf4\x06\xf9\xe9\xa2\x5d\xe1\x2c\x4f\x16\xa3\x33\xc6\x8d\x05\xeb\xfc\x14\xf7\x07\x83\xfe\x32\x6c\x4b\x15\xd4\x07\xa5\x32\x4a\xc1\xeb\x19\x9f\x9b\x42\xf2\xba\x64\x16\xfe\x67\xfd\x1b\x95\x78\x45\x52\xc4\x09\x89\x5d\xb5\x78\x4c\x52\xdc\xa6\x44\x7d\x24\xd1\x15\x49\x83\x19\xa6\x76\x77\xbb\x9b\xe8\x8a\xe4\x72\xc4\x06\xdb\x6b\xe1\xca\xe0\x0b\x2c\xa7\x85\x16\x6b\x32\x1b\x00\x13\xc8\xdc\xba\x78\x46\x39\xd9\x3f\xb4\xbb\x12\x12\x26\xb8\x4e\xc6\xa3\xa7\xc7\x5b\xe8\xd8\x00\x6f\x58\x1a\x05\x65\x56\x40\x67\x4f\xca\xa5\xa3\xf4\xa2\x15\xcb\x67\xbe\xc3\x5d\xa0\x2a\x30\x43\x8b\x9b\x76\x7f\x2b\xae\x0f\x43\x8b\xbd\x5f\x7f\x92\x06\xf5\xda\xf5\xdf\x8a\xe5\x70\x05\xbe\x91\x65\xb0\x33\x4a\x8b\xcc\xe5\xd2\x34\x62\x61\xa7\x4d\xc7\x4e\x4f\xc7\xa8\x77\x7f\xae\x2b\xaf\x5f\x36\x7b\x6c\xf1\xe5\xeb\x96\x33\xc9\x96\x84\x87\xf2\x56\xe3\xab\xd7\x33\x09\x73\xfd\xb3\xae\x29\x07\x5d\x76\xc5\xde\x29\x01\xad\x1d\x7f\x11\x9a\xfc\xbb\xe3\x7b\xf0\x6e\xab\xf9\xb7\x70\xbf\x22\xdf\xd2\xfd\x3d\x50\xc2\xa0\xb5\x24\x47\xbb\xdf\x7d\x56\xe0\x37\xaa\x50\xdf\xb3\xfe\x1b\xd5\x1e\x63\xa7\xbd\x59\xef\x77\x00\x00\x00\xff\xff\x8a\x3e\xea\x17\x7c\x0c\x00\x00") +var _yaoApisTableHttpJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xd4\x56\xcb\x6e\xd3\x40\x14\xdd\xfb\x2b\x46\xa3\x2e\x53\x3b\xb0\xf4\x0e\x89\x87\xb2\xa2\xa8\x20\x16\x55\x17\x17\xcf\x25\xb9\xd4\x1e\x4f\xe7\x91\x62\xaa\x7c\x02\xb0\x62\x0f\x42\x48\xac\x10\x1f\xc0\xef\x10\xf1\x19\x68\xc6\x26\xa9\x43\xd2\x86\x58\xc8\xe9\x26\xd1\x9c\xfb\xf0\x3d\xe7\xf8\xda\xbe\x8c\x18\xe3\x12\x0a\xe4\x29\xe3\xf3\x0f\xdf\xe7\x6f\xbf\xfd\xfa\xf4\x75\xfe\xf1\xc7\xfc\xdd\x97\x9f\xef\x3f\xf3\x81\x8f\x4f\x51\x1b\x2a\xa5\x4f\xb9\x13\x0f\xe3\x61\x8d\x0a\x34\x99\x26\x65\x9b\xc8\xdf\xc5\xf7\x8e\x46\x75\xe6\x58\x97\x4e\xf9\x9c\xd7\x04\x72\x9c\x58\x78\x91\x63\x13\x71\xa0\x85\x8f\x04\xec\xb0\x3e\x86\x88\x02\x3b\x31\x3c\x65\x27\x11\x63\x8c\x5d\x86\xdf\x06\xf6\xf9\x49\xea\x87\x4e\x0c\x82\xce\x26\xa1\x22\x84\x0b\xb4\x93\x32\x34\x7c\xf4\xe0\xe9\x12\x56\xba\xcc\xd0\x98\xc5\x08\x71\xb8\x5c\x7c\xbc\x52\x4d\x9e\xc8\x09\x3f\x50\xa0\xa1\x88\x83\x2a\x03\xc6\xd3\x73\x87\xba\x3a\x0c\xa0\x3f\x1f\x84\x73\xac\x60\x8c\x2b\x47\x43\x6f\x90\x9f\x2e\xda\x95\xce\xf2\x74\x31\x3a\x63\xdc\x58\xb0\xce\x4f\x71\x77\x38\x1c\x2c\x61\x5b\xa9\x20\x3f\x28\x95\x53\x06\x5e\xd0\xe4\x95\x29\x25\x6f\x52\x66\xe1\x7f\x36\xb8\x56\x89\x97\x24\x45\x92\x92\xd8\x55\x8b\x87\x24\xc5\x4d\x4a\x34\x47\x12\x7d\x91\x34\x98\x63\x66\x77\xb7\xbb\x5d\x5d\x93\x5c\x8e\xd8\x62\x7b\x05\xae\x0d\x3e\xc3\xea\xa2\xd4\x62\x4d\x64\x43\xc1\x14\x72\xb7\x0e\xcf\xa9\x20\xfb\x87\x76\x5f\x42\xc2\x14\xd7\xc9\x78\xf4\xf8\x78\x0b\x1d\x5b\xc5\x1b\x96\x46\x41\x95\x97\xd0\xdb\x9d\x72\xee\x28\x3b\xeb\xc4\xf2\x89\xef\x70\x1b\xa8\x0a\xcc\xd1\xe2\xa6\xdd\xdf\x8a\xeb\xfd\xd0\x62\xef\xd7\x9f\xa4\x41\xbd\x76\xfd\xb7\x62\x39\x5a\x29\xdf\xc8\x32\xd8\x19\x67\x65\xee\x0a\x69\x5a\x58\xd8\x69\xd3\xb3\xd3\x17\x13\xd4\xbb\xdf\xd7\xb5\xd7\xcf\xdb\x3d\xb6\x78\xf3\xf5\xcb\x99\x64\x47\xc2\x23\x79\xa3\xf1\xf5\xe3\x99\x84\xb9\xfa\x5a\xd7\x54\x80\xae\xfa\x62\xef\x94\x80\xce\x8e\x3f\x0b\x4d\xfe\xdd\xf1\x3d\x78\xb6\x35\xfc\x3b\xb8\x5f\x93\xef\xe8\xfe\x1e\x28\x61\xd0\x5a\x92\xe3\xdd\xbf\x7d\x56\xca\xaf\x55\xa1\xf9\xce\xfa\x6f\x54\x23\xc6\x4e\xa3\x59\xf4\x3b\x00\x00\xff\xff\x26\x8b\x17\x1d\x7d\x0c\x00\x00") func yaoApisTableHttpJsonBytes() ([]byte, error) { return bindataRead( @@ -348,7 +348,7 @@ func yaoApisTableHttpJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/apis/table.http.json", size: 3196, mode: os.FileMode(420), modTime: time.Unix(1646123553, 0)} + info := bindataFileInfo{name: "yao/apis/table.http.json", size: 3197, mode: os.FileMode(420), modTime: time.Unix(1648735794, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -368,7 +368,7 @@ func yaoApisUserHttpJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/apis/user.http.json", size: 1453, mode: os.FileMode(420), modTime: time.Unix(1646123553, 0)} + info := bindataFileInfo{name: "yao/apis/user.http.json", size: 1453, mode: os.FileMode(420), modTime: time.Unix(1648735794, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -388,7 +388,7 @@ func yaoApisXiangHttpJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/apis/xiang.http.json", size: 1239, mode: os.FileMode(420), modTime: time.Unix(1646123553, 0)} + info := bindataFileInfo{name: "yao/apis/xiang.http.json", size: 1239, mode: os.FileMode(420), modTime: time.Unix(1648735794, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -408,7 +408,7 @@ func yaoDataDs_store() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/.DS_Store", size: 6148, mode: os.FileMode(420), modTime: time.Unix(1646123553, 0)} + info := bindataFileInfo{name: "yao/data/.DS_Store", size: 6148, mode: os.FileMode(420), modTime: time.Unix(1648735794, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -428,7 +428,7 @@ func yaoDataAppJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/app.json", size: 277, mode: os.FileMode(420), modTime: time.Unix(1646123553, 0)} + info := bindataFileInfo{name: "yao/data/app.json", size: 277, mode: os.FileMode(420), modTime: time.Unix(1648735794, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -448,7 +448,7 @@ func yaoDataIconsDs_store() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/icons/.DS_Store", size: 6148, mode: os.FileMode(420), modTime: time.Unix(1646123553, 0)} + info := bindataFileInfo{name: "yao/data/icons/.DS_Store", size: 6148, mode: os.FileMode(420), modTime: time.Unix(1648735794, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -468,7 +468,7 @@ func yaoDataIcons404Png() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/icons/404.png", size: 9342, mode: os.FileMode(420), modTime: time.Unix(1646123553, 0)} + info := bindataFileInfo{name: "yao/data/icons/404.png", size: 9342, mode: os.FileMode(420), modTime: time.Unix(1648735794, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -488,7 +488,7 @@ func yaoDataIconsIconIcns() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/icons/icon.icns", size: 67465, mode: os.FileMode(420), modTime: time.Unix(1646123553, 0)} + info := bindataFileInfo{name: "yao/data/icons/icon.icns", size: 67465, mode: os.FileMode(420), modTime: time.Unix(1648735794, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -508,7 +508,7 @@ func yaoDataIconsIconIco() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/icons/icon.ico", size: 54993, mode: os.FileMode(420), modTime: time.Unix(1646123553, 0)} + info := bindataFileInfo{name: "yao/data/icons/icon.ico", size: 54993, mode: os.FileMode(420), modTime: time.Unix(1648735794, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -528,7 +528,7 @@ func yaoDataIconsIconPng() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/icons/icon.png", size: 34558, mode: os.FileMode(420), modTime: time.Unix(1646123553, 0)} + info := bindataFileInfo{name: "yao/data/icons/icon.png", size: 34558, mode: os.FileMode(420), modTime: time.Unix(1648735794, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -548,7 +548,7 @@ func yaoDataIndexHtml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/data/index.html", size: 282, mode: os.FileMode(420), modTime: time.Unix(1646123553, 0)} + info := bindataFileInfo{name: "yao/data/index.html", size: 282, mode: os.FileMode(420), modTime: time.Unix(1648735794, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -568,7 +568,7 @@ func yaoFlowsReadmeMd() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/flows/README.md", size: 12, mode: os.FileMode(420), modTime: time.Unix(1646123553, 0)} + info := bindataFileInfo{name: "yao/flows/README.md", size: 12, mode: os.FileMode(420), modTime: time.Unix(1648735794, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -588,7 +588,7 @@ func yaoFlowsAdminGuardFlowJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/flows/admin/guard.flow.json", size: 559, mode: os.FileMode(420), modTime: time.Unix(1646123553, 0)} + info := bindataFileInfo{name: "yao/flows/admin/guard.flow.json", size: 559, mode: os.FileMode(420), modTime: time.Unix(1648735794, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -608,7 +608,7 @@ func yaoFlowsMenuFlowJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/flows/menu.flow.json", size: 1045, mode: os.FileMode(420), modTime: time.Unix(1646123553, 0)} + info := bindataFileInfo{name: "yao/flows/menu.flow.json", size: 1045, mode: os.FileMode(420), modTime: time.Unix(1648735794, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -628,7 +628,7 @@ func yaoFlowsUserFindFlowJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/flows/user/find.flow.json", size: 328, mode: os.FileMode(420), modTime: time.Unix(1646123553, 0)} + info := bindataFileInfo{name: "yao/flows/user/find.flow.json", size: 328, mode: os.FileMode(420), modTime: time.Unix(1648735794, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -648,7 +648,7 @@ func yaoLangsEnUsJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/langs/en-US.json", size: 66, mode: os.FileMode(420), modTime: time.Unix(1646123553, 0)} + info := bindataFileInfo{name: "yao/langs/en-US.json", size: 66, mode: os.FileMode(420), modTime: time.Unix(1648735794, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -668,7 +668,7 @@ func yaoModelsReadmeMd() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/models/README.md", size: 15, mode: os.FileMode(420), modTime: time.Unix(1646123553, 0)} + info := bindataFileInfo{name: "yao/models/README.md", size: 15, mode: os.FileMode(420), modTime: time.Unix(1648735794, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -688,7 +688,7 @@ func yaoModelsMenuModJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/models/menu.mod.json", size: 2378, mode: os.FileMode(420), modTime: time.Unix(1646123553, 0)} + info := bindataFileInfo{name: "yao/models/menu.mod.json", size: 2378, mode: os.FileMode(420), modTime: time.Unix(1648735794, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -708,7 +708,7 @@ func yaoModelsUserModJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/models/user.mod.json", size: 8826, mode: os.FileMode(420), modTime: time.Unix(1646123553, 0)} + info := bindataFileInfo{name: "yao/models/user.mod.json", size: 8826, mode: os.FileMode(420), modTime: time.Unix(1648735794, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -728,7 +728,7 @@ func yaoModelsWorkflowModJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/models/workflow.mod.json", size: 3333, mode: os.FileMode(420), modTime: time.Unix(1646123553, 0)} + info := bindataFileInfo{name: "yao/models/workflow.mod.json", size: 3333, mode: os.FileMode(420), modTime: time.Unix(1648735794, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -748,7 +748,7 @@ func yaoTablesReadmeMd() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/tables/README.md", size: 15, mode: os.FileMode(420), modTime: time.Unix(1646123553, 0)} + info := bindataFileInfo{name: "yao/tables/README.md", size: 15, mode: os.FileMode(420), modTime: time.Unix(1648735794, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -768,7 +768,7 @@ func yaoTablesMenuTabJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/tables/menu.tab.json", size: 10471, mode: os.FileMode(420), modTime: time.Unix(1646123553, 0)} + info := bindataFileInfo{name: "yao/tables/menu.tab.json", size: 10471, mode: os.FileMode(420), modTime: time.Unix(1648735794, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -788,7 +788,7 @@ func yaoTablesUserTabJson() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "yao/tables/user.tab.json", size: 2357, mode: os.FileMode(420), modTime: time.Unix(1646123553, 0)} + info := bindataFileInfo{name: "yao/tables/user.tab.json", size: 2357, mode: os.FileMode(420), modTime: time.Unix(1648735794, 0)} a := &asset{bytes: bytes, info: info} return a, nil } diff --git a/service/guard.go b/service/guard.go index ce187a3a..a8f2263a 100644 --- a/service/guard.go +++ b/service/guard.go @@ -5,12 +5,14 @@ import ( "github.com/gin-gonic/gin" "github.com/yaoapp/yao/helper" + "github.com/yaoapp/yao/table" ) // Guards 服务中间件 var Guards = map[string]gin.HandlerFunc{ "bearer-jwt": bearerJWT, // JWT 鉴权 "cross-domain": crossDomain, // 跨域许可 + "table-guard": table.Guard, // Table Guard } // JWT 鉴权 diff --git a/table/table.go b/table/table.go index cb3ec6b6..dd296c71 100644 --- a/table/table.go +++ b/table/table.go @@ -7,6 +7,7 @@ import ( "path/filepath" "strings" + "github.com/gin-gonic/gin" "github.com/yaoapp/gou" "github.com/yaoapp/gou/helper" "github.com/yaoapp/kun/exception" @@ -18,6 +19,52 @@ import ( // Tables 已载入模型 var Tables = map[string]*Table{} +// Guard Table guard +func Guard(c *gin.Context) { + + if !strings.HasPrefix(c.FullPath(), "/api/xiang/table") { + c.Next() + return + } + + routes := strings.Split(c.FullPath(), "/") + path := routes[len(routes)-1] + name, has := c.Params.Get("name") + if !has { + c.Next() + return + } + + table, has := Tables[name] + if !has { + c.Next() + return + } + + api, has := table.APIs[path] + if !has { + c.Next() + return + } + + if api.Guard == "-" { + c.Next() + return + } + + fmt.Println("Table Guard:", name, api.Guard) + + if middleware, has := gou.HTTPGuards[api.Guard]; has { + middleware(c) + return + } + + if api.Guard != "" { + gou.ProcessGuard(api.Guard)(c) + return + } +} + // Load 加载数据表格 func Load(cfg config.Config) error { if share.BUILDIN { @@ -125,6 +172,7 @@ func (table *Table) loadAPIs() { api.Process = table.APIs[name].Process } + api.Guard = "bearer-jwt" if table.APIs[name].Guard != "" { api.Guard = table.APIs[name].Guard } diff --git a/yao/apis/table.http.json b/yao/apis/table.http.json index 8b435035..a22774ee 100644 --- a/yao/apis/table.http.json +++ b/yao/apis/table.http.json @@ -3,7 +3,7 @@ "version": "1.0.0", "description": "数据表格接口API", "group": "xiang/table", - "guard": "bearer-jwt", + "guard": "table-guard", "paths": [ { "path": "/:name/search",