fix: use ValidateEmail as binding across web forms
This commit is contained in:
parent
df907ec7f9
commit
471567b3ba
24 changed files with 281 additions and 221 deletions
|
@ -26,6 +26,8 @@ const (
|
|||
ErrUsername = "UsernameError"
|
||||
// ErrInvalidGroupTeamMap is returned when a group team mapping is invalid
|
||||
ErrInvalidGroupTeamMap = "InvalidGroupTeamMap"
|
||||
// ErrEmail is returned when an email address is invalid
|
||||
ErrEmail = "Email"
|
||||
)
|
||||
|
||||
// AddBindingRules adds additional binding rules
|
||||
|
@ -38,6 +40,7 @@ func AddBindingRules() {
|
|||
addGlobOrRegexPatternRule()
|
||||
addUsernamePatternRule()
|
||||
addValidGroupTeamMapRule()
|
||||
addEmailBindingRules()
|
||||
}
|
||||
|
||||
func addGitRefNameBindingRule() {
|
||||
|
@ -185,6 +188,34 @@ func addValidGroupTeamMapRule() {
|
|||
})
|
||||
}
|
||||
|
||||
func addEmailBindingRules() {
|
||||
binding.AddRule(&binding.Rule{
|
||||
IsMatch: func(rule string) bool {
|
||||
return strings.HasPrefix(rule, "EmailWithAllowedDomain")
|
||||
},
|
||||
IsValid: func(errs binding.Errors, name string, val any) (bool, binding.Errors) {
|
||||
if err := ValidateEmail(fmt.Sprintf("%v", val)); err != nil {
|
||||
errs.Add([]string{name}, ErrEmail, err.Error())
|
||||
return false, errs
|
||||
}
|
||||
return true, errs
|
||||
},
|
||||
})
|
||||
|
||||
binding.AddRule(&binding.Rule{
|
||||
IsMatch: func(rule string) bool {
|
||||
return strings.HasPrefix(rule, "EmailForAdmin")
|
||||
},
|
||||
IsValid: func(errs binding.Errors, name string, val any) (bool, binding.Errors) {
|
||||
if err := ValidateEmailForAdmin(fmt.Sprintf("%v", val)); err != nil {
|
||||
errs.Add([]string{name}, ErrEmail, err.Error())
|
||||
return false, errs
|
||||
}
|
||||
return true, errs
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
func portOnly(hostport string) string {
|
||||
colon := strings.IndexByte(hostport, ':')
|
||||
if colon == -1 {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue