mirror of
https://github.com/astaxie/beego.git
synced 2024-11-05 01:00:55 +00:00
32 lines
493 B
Go
32 lines
493 B
Go
|
package beego
|
||
|
|
||
|
import (
|
||
|
"regexp"
|
||
|
)
|
||
|
|
||
|
type FilterRouter struct {
|
||
|
pattern string
|
||
|
regex *regexp.Regexp
|
||
|
filterFunc FilterFunc
|
||
|
hasregex bool
|
||
|
}
|
||
|
|
||
|
func (mr *FilterRouter) ValidRouter(router string) bool {
|
||
|
if mr.pattern == "" {
|
||
|
return true
|
||
|
}
|
||
|
if router == mr.pattern {
|
||
|
return true
|
||
|
}
|
||
|
if mr.hasregex {
|
||
|
if mr.regex.MatchString(router) {
|
||
|
return true
|
||
|
}
|
||
|
matches := mr.regex.FindStringSubmatch(router)
|
||
|
if len(matches[0]) == len(router) {
|
||
|
return true
|
||
|
}
|
||
|
}
|
||
|
return false
|
||
|
}
|