MCPcopy Create free account
hub / github.com/foxcpp/maddy / CheckDomainAuth

Function CheckDomainAuth

internal/auth/auth.go:23–53  ·  view source on GitHub ↗
(username string, perDomain bool, allowedDomains []string)

Source from the content-addressed store, hash-verified

21import "strings"
22
23func CheckDomainAuth(username string, perDomain bool, allowedDomains []string) (loginName string, allowed bool) {
24 var accountName, domain string
25 if perDomain {
26 parts := strings.Split(username, "@")
27 if len(parts) != 2 {
28 return "", false
29 }
30 domain = parts[1]
31 accountName = username
32 } else {
33 parts := strings.Split(username, "@")
34 accountName = parts[0]
35 if len(parts) == 2 {
36 domain = parts[1]
37 }
38 }
39
40 allowed = domain == ""
41 if allowedDomains != nil && domain != "" {
42 for _, allowedDomain := range allowedDomains {
43 if strings.EqualFold(domain, allowedDomain) {
44 allowed = true
45 }
46 }
47 if !allowed {
48 return "", false
49 }
50 }
51
52 return accountName, allowed
53}

Callers 2

AuthPlainMethod · 0.92
TestCheckDomainAuthFunction · 0.85

Calls

no outgoing calls

Tested by 1

TestCheckDomainAuthFunction · 0.68