Files
go_process_manager/route/middle/permission.go
liuzhihang1 831ea9889f 初次提交
2024-06-26 20:45:23 +08:00

45 lines
948 B
Go

package middle
import (
"msm/consts/ctxflag"
"msm/consts/permission"
"msm/consts/role"
"msm/dao"
"reflect"
"strconv"
"github.com/gin-gonic/gin"
)
func RolePermission(needPermission role.Role) func(ctx *gin.Context) {
return func(ctx *gin.Context) {
if r := ctx.GetInt(ctxflag.ROLE); r > int(needPermission) {
rErr(ctx, -1, "角色权限不足", nil)
ctx.Abort()
return
}
ctx.Next()
}
}
func OprPermission(op permission.OprPermission) func(ctx *gin.Context) {
return func(ctx *gin.Context) {
uuid, err := strconv.Atoi(ctx.Query("uuid"))
if err != nil {
rErr(ctx, -1, "参数有误", nil)
ctx.Abort()
return
}
if ctx.GetInt(ctxflag.ROLE) < int(role.USER) {
ctx.Next()
return
}
if !reflect.ValueOf(dao.PermissionDao.GetPermission(ctx.GetString(ctxflag.USER_NAME), uuid)).FieldByName(string(op)).Bool() {
rErr(ctx, -1, "操作权限不足", nil)
ctx.Abort()
return
}
ctx.Next()
}
}