diff options
Diffstat (limited to 'app')
-rw-r--r-- | app/team.go | 33 |
1 files changed, 26 insertions, 7 deletions
diff --git a/app/team.go b/app/team.go index 94523f8b5..be15b8a39 100644 --- a/app/team.go +++ b/app/team.go @@ -55,13 +55,8 @@ func CreateTeamWithUser(team *model.Team, userId string) (*model.Team, *model.Ap return rteam, nil } -func isTeamEmailAllowed(user *model.User) bool { - email := strings.ToLower(user.Email) - - if len(user.AuthService) > 0 && len(*user.AuthData) > 0 { - return true - } - +func isTeamEmailAddressAllowed(email string) bool { + email = strings.ToLower(email) // commas and @ signs are optional // can be in the form of "@corp.mattermost.com, mattermost.com mattermost.org" -> corp.mattermost.com mattermost.com mattermost.org domains := strings.Fields(strings.TrimSpace(strings.ToLower(strings.Replace(strings.Replace(utils.Cfg.TeamSettings.RestrictCreationToDomains, "@", " ", -1), ",", " ", -1)))) @@ -81,6 +76,16 @@ func isTeamEmailAllowed(user *model.User) bool { return true } +func isTeamEmailAllowed(user *model.User) bool { + email := strings.ToLower(user.Email) + + if len(user.AuthService) > 0 && len(*user.AuthData) > 0 { + return true + } + + return isTeamEmailAddressAllowed(email) +} + func UpdateTeam(team *model.Team) (*model.Team, *model.AppError) { var oldTeam *model.Team var err *model.AppError @@ -621,6 +626,20 @@ func InviteNewUsersToTeam(emailList []string, teamId, senderId string) *model.Ap return err } + var invalidEmailList []string + + for _, email := range emailList { + if ! isTeamEmailAddressAllowed(email) { + invalidEmailList = append(invalidEmailList, email) + } + } + + if len(invalidEmailList) > 0 { + s := strings.Join(invalidEmailList, ", ") + err := model.NewAppError("InviteNewUsersToTeam", "api.team.invite_members.invalid_email.app_error", map[string]interface{}{"Addresses": s}, "", http.StatusBadRequest) + return err + } + tchan := Srv.Store.Team().Get(teamId) uchan := Srv.Store.User().Get(senderId) |