yao/widgets/action/guard.go
2023-02-01 17:25:11 +08:00

30 lines
578 B
Go

package action
import (
"strings"
"github.com/gin-gonic/gin"
"github.com/yaoapp/gou/api"
"github.com/yaoapp/kun/log"
)
// UseGuard using the guard in action
func (p *Process) UseGuard(c *gin.Context, id string) error {
guards := strings.Split(p.Guard, ",")
for _, guard := range guards {
guard = strings.TrimSpace(guard)
log.Trace("Widget: %s Guard: %s", id, guard)
if guard == "-" {
return nil
}
if guard != "" {
if middleware, has := api.HTTPGuards[guard]; has {
middleware(c)
continue
}
api.ProcessGuard(guard)(c)
}
}
return nil
}