权限管理
先创建一个表
1. tablemodel.go
package model
import "time"
// 保存所有表
type TablesModel struct {
Id int64
Name string `xorm:"varchar(64) notnull 'name' comment('表名')"`
Url string `xorm:"varvhar(64) notnull 'url' comment('请求url路径')"`
Method int64 `xorm:"notnull 'method' comment('0:all,1:get,2:post,3:put,4:delete')"`
CreateAt time.Time `xorm:"'create_at' created"`
UpdateAt time.Time `xorm:"'update_at' updated"`
}
func (TablesModel) TableName() string {
return "tables"
}
2. router.go 把所有接口路径添加到表里(后期使用权限表添加时, 检查是否存在接口路径)
func RegisterHandlers(server *rest.Server, serverCtx *svc.ServiceContext) {
// 所有接口路径添加到数据库表里
if 2 == 1{
for _, r := range server.Routes() {
url := r.Path
name := strings.Split(url, "/")[1]
ctx, cannFunc := context.WithTimeout(context.Background(), 5*time.Second)
defer cannFunc()
_, err := serverCtx.UserRpc.TableAdd(ctx, &usercenter.TableAddReq{
Name: name,
Url: url,
Method: 0,
})
if err != nil {
logx.Error(err)
}
}
}