Fetch the repository succeeded.
package policy
import (
"net/http"
"gitee.com/pangxianfei/multiapp/tmaic"
"github.com/gin-gonic/gin"
)
type UserNotPermitError struct{}
func (e UserNotPermitError) Error() string {
return "user has no permission"
}
func Middleware(policy Policier, action Action, c Context, params []gin.Param) {
// get route url param
routeParamMap := make(map[string]string)
for _, param := range params {
routeParamMap[param.Key] = param.Value
}
// get user
if err := c.ScanUser(); err != nil {
c.JSON(http.StatusUnprocessableEntity, tmaic.V{
"code": http.StatusUnprocessableEntity,
"message": err,
"data": nil,
})
c.Abort()
return
}
// validate policy
if !policyValidate(c.User(), policy, action, routeParamMap) {
forbid(c)
c.Abort()
return
}
c.Next()
}
func forbid(c Context) {
c.JSON(http.StatusForbidden, tmaic.V{
"code": http.StatusForbidden,
"message": UserNotPermitError{}.Error(),
"data": nil,
})
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。