mirror of https://github.com/go-gitea/gitea
Support wildcard in email domain allow/block list (#24831)
Replace #20257 (which is stale and incomplete) Close #20255 Major changes: * Deprecate the "WHITELIST", use "ALLOWLIST" * Add wildcard support for EMAIL_DOMAIN_ALLOWLIST/EMAIL_DOMAIN_BLOCKLIST * Update example config file and document * Improve testspull/22669/head
parent
19993d8814
commit
2cb66fff60
@ -0,0 +1,46 @@ |
||||
// Copyright 2023 The Gitea Authors. All rights reserved.
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
package setting |
||||
|
||||
import ( |
||||
"testing" |
||||
|
||||
"github.com/gobwas/glob" |
||||
"github.com/stretchr/testify/assert" |
||||
) |
||||
|
||||
func TestLoadServices(t *testing.T) { |
||||
oldService := Service |
||||
defer func() { |
||||
Service = oldService |
||||
}() |
||||
|
||||
cfg, err := NewConfigProviderFromData(` |
||||
[service] |
||||
EMAIL_DOMAIN_WHITELIST = d1, *.w |
||||
EMAIL_DOMAIN_ALLOWLIST = d2, *.a |
||||
EMAIL_DOMAIN_BLOCKLIST = d3, *.b |
||||
`) |
||||
assert.NoError(t, err) |
||||
loadServiceFrom(cfg) |
||||
|
||||
match := func(globs []glob.Glob, s string) bool { |
||||
for _, g := range globs { |
||||
if g.Match(s) { |
||||
return true |
||||
} |
||||
} |
||||
return false |
||||
} |
||||
|
||||
assert.True(t, match(Service.EmailDomainAllowList, "d1")) |
||||
assert.True(t, match(Service.EmailDomainAllowList, "foo.w")) |
||||
assert.True(t, match(Service.EmailDomainAllowList, "d2")) |
||||
assert.True(t, match(Service.EmailDomainAllowList, "foo.a")) |
||||
assert.False(t, match(Service.EmailDomainAllowList, "d3")) |
||||
|
||||
assert.True(t, match(Service.EmailDomainBlockList, "d3")) |
||||
assert.True(t, match(Service.EmailDomainBlockList, "foo.b")) |
||||
assert.False(t, match(Service.EmailDomainBlockList, "d1")) |
||||
} |
Loading…
Reference in new issue