move invite by mail to services package (#21513)

followup  #20307
close #21511

-> make it easy to also add API equivalent later ...
tokarchuk/v1.18
6543 2 years ago committed by GitHub
parent fe442dba4b
commit bd272e416a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 7
      routers/web/org/teams.go
  2. 23
      services/org/team_invite.go

@ -27,7 +27,6 @@ import (
"code.gitea.io/gitea/modules/web" "code.gitea.io/gitea/modules/web"
"code.gitea.io/gitea/routers/utils" "code.gitea.io/gitea/routers/utils"
"code.gitea.io/gitea/services/forms" "code.gitea.io/gitea/services/forms"
"code.gitea.io/gitea/services/mailer"
org_service "code.gitea.io/gitea/services/org" org_service "code.gitea.io/gitea/services/org"
) )
@ -132,8 +131,7 @@ func TeamsAction(ctx *context.Context) {
if err != nil { if err != nil {
if user_model.IsErrUserNotExist(err) { if user_model.IsErrUserNotExist(err) {
if setting.MailService != nil && user_model.ValidateEmail(uname) == nil { if setting.MailService != nil && user_model.ValidateEmail(uname) == nil {
invite, err := org_model.CreateTeamInvite(ctx, ctx.Doer, ctx.Org.Team, uname) if err := org_service.CreateTeamInvite(ctx, ctx.Doer, ctx.Org.Team, uname); err != nil {
if err != nil {
if org_model.IsErrTeamInviteAlreadyExist(err) { if org_model.IsErrTeamInviteAlreadyExist(err) {
ctx.Flash.Error(ctx.Tr("form.duplicate_invite_to_team")) ctx.Flash.Error(ctx.Tr("form.duplicate_invite_to_team"))
} else if org_model.IsErrUserEmailAlreadyAdded(err) { } else if org_model.IsErrUserEmailAlreadyAdded(err) {
@ -142,9 +140,6 @@ func TeamsAction(ctx *context.Context) {
ctx.ServerError("CreateTeamInvite", err) ctx.ServerError("CreateTeamInvite", err)
return return
} }
} else if err := mailer.MailTeamInvite(ctx, ctx.Doer, ctx.Org.Team, invite); err != nil {
ctx.ServerError("MailTeamInvite", err)
return
} }
} else { } else {
ctx.Flash.Error(ctx.Tr("form.user_not_exist")) ctx.Flash.Error(ctx.Tr("form.user_not_exist"))

@ -0,0 +1,23 @@
// Copyright 2022 The Gitea Authors. All rights reserved.
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.
package org
import (
"context"
org_model "code.gitea.io/gitea/models/organization"
user_model "code.gitea.io/gitea/models/user"
"code.gitea.io/gitea/services/mailer"
)
// CreateTeamInvite make a persistent invite in db and mail it
func CreateTeamInvite(ctx context.Context, inviter *user_model.User, team *org_model.Team, uname string) error {
invite, err := org_model.CreateTeamInvite(ctx, inviter, team, uname)
if err != nil {
return err
}
return mailer.MailTeamInvite(ctx, inviter, team, invite)
}
Loading…
Cancel
Save