MM-22067: Check guest email allowance separately (#13776)
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
99a82ef07e
Коммит
9de8283077
@@ -269,6 +269,67 @@ func TestAddUserToTeamByToken(t *testing.T) {
|
||||
assert.NotNil(t, err)
|
||||
})
|
||||
|
||||
t.Run("invalid add a guest user with a non-granted email domain", func(t *testing.T) {
|
||||
restrictedDomain := *th.App.Config().GuestAccountsSettings.RestrictCreationToDomains
|
||||
defer func() {
|
||||
th.App.UpdateConfig(func(cfg *model.Config) { cfg.GuestAccountsSettings.RestrictCreationToDomains = &restrictedDomain })
|
||||
}()
|
||||
th.App.UpdateConfig(func(cfg *model.Config) { *cfg.GuestAccountsSettings.RestrictCreationToDomains = "restricted.com" })
|
||||
token := model.NewToken(
|
||||
TOKEN_TYPE_GUEST_INVITATION,
|
||||
model.MapToJson(map[string]string{"teamId": th.BasicTeam.Id, "channels": th.BasicChannel.Id}),
|
||||
)
|
||||
require.Nil(t, th.App.Srv.Store.Token().Save(token))
|
||||
_, err := th.App.AddUserToTeamByToken(rguest.Id, token.Token)
|
||||
require.NotNil(t, err)
|
||||
assert.Equal(t, "api.team.join_user_to_team.allowed_domains.app_error", err.Id)
|
||||
})
|
||||
|
||||
t.Run("add a guest user with a granted email domain", func(t *testing.T) {
|
||||
restrictedDomain := *th.App.Config().GuestAccountsSettings.RestrictCreationToDomains
|
||||
defer func() {
|
||||
th.App.UpdateConfig(func(cfg *model.Config) { cfg.GuestAccountsSettings.RestrictCreationToDomains = &restrictedDomain })
|
||||
}()
|
||||
th.App.UpdateConfig(func(cfg *model.Config) { *cfg.GuestAccountsSettings.RestrictCreationToDomains = "restricted.com" })
|
||||
token := model.NewToken(
|
||||
TOKEN_TYPE_GUEST_INVITATION,
|
||||
model.MapToJson(map[string]string{"teamId": th.BasicTeam.Id, "channels": th.BasicChannel.Id}),
|
||||
)
|
||||
guestEmail := rguest.Email
|
||||
rguest.Email = "test@restricted.com"
|
||||
_, err := th.App.Srv.Store.User().Update(rguest, false)
|
||||
require.Nil(t, err)
|
||||
require.Nil(t, th.App.Srv.Store.Token().Save(token))
|
||||
_, err = th.App.AddUserToTeamByToken(rguest.Id, token.Token)
|
||||
require.Nil(t, err)
|
||||
rguest.Email = guestEmail
|
||||
_, err = th.App.Srv.Store.User().Update(rguest, false)
|
||||
require.Nil(t, err)
|
||||
})
|
||||
|
||||
t.Run("add a guest user even though there are team and system domain restrictions", func(t *testing.T) {
|
||||
th.BasicTeam.AllowedDomains = "restricted-team.com"
|
||||
_, err := th.Server.Store.Team().Update(th.BasicTeam)
|
||||
require.Nil(t, err)
|
||||
restrictedDomain := *th.App.Config().TeamSettings.RestrictCreationToDomains
|
||||
defer func() {
|
||||
th.App.UpdateConfig(func(cfg *model.Config) { cfg.TeamSettings.RestrictCreationToDomains = &restrictedDomain })
|
||||
}()
|
||||
th.App.UpdateConfig(func(cfg *model.Config) { *cfg.TeamSettings.RestrictCreationToDomains = "restricted.com" })
|
||||
token := model.NewToken(
|
||||
TOKEN_TYPE_GUEST_INVITATION,
|
||||
model.MapToJson(map[string]string{"teamId": th.BasicTeam.Id, "channels": th.BasicChannel.Id}),
|
||||
)
|
||||
_, err = th.App.Srv.Store.User().Update(rguest, false)
|
||||
require.Nil(t, err)
|
||||
require.Nil(t, th.App.Srv.Store.Token().Save(token))
|
||||
_, err = th.App.AddUserToTeamByToken(rguest.Id, token.Token)
|
||||
require.Nil(t, err)
|
||||
th.BasicTeam.AllowedDomains = ""
|
||||
_, err = th.Server.Store.Team().Update(th.BasicTeam)
|
||||
require.Nil(t, err)
|
||||
})
|
||||
|
||||
t.Run("valid request from guest invite", func(t *testing.T) {
|
||||
token := model.NewToken(
|
||||
TOKEN_TYPE_GUEST_INVITATION,
|
||||
|
||||
Ссылка в новой задаче
Block a user