Skip to content

Commit f62f68c

Browse files
authored
Move team related functions to service layer (#32537)
There are still some functions under `models` after last big refactor about `models`. This change will move all team related functions to service layer with no code change.
1 parent 5a50b27 commit f62f68c

26 files changed

+452
-483
lines changed

models/organization/team_test.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -197,3 +197,8 @@ func TestUsersInTeamsCount(t *testing.T) {
197197
test([]int64{1, 2, 3, 4, 5}, []int64{2, 5}, 2) // userid 2,4
198198
test([]int64{1, 2, 3, 4, 5}, []int64{2, 3, 5}, 3) // userid 2,4,5
199199
}
200+
201+
func TestIsUsableTeamName(t *testing.T) {
202+
assert.NoError(t, organization.IsUsableTeamName("usable"))
203+
assert.True(t, db.IsErrNameReserved(organization.IsUsableTeamName("new")))
204+
}

routers/api/v1/org/member.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,14 @@ import (
77
"net/http"
88
"net/url"
99

10-
"code.gitea.io/gitea/models"
1110
"code.gitea.io/gitea/models/organization"
1211
"code.gitea.io/gitea/modules/setting"
1312
api "code.gitea.io/gitea/modules/structs"
1413
"code.gitea.io/gitea/routers/api/v1/user"
1514
"code.gitea.io/gitea/routers/api/v1/utils"
1615
"code.gitea.io/gitea/services/context"
1716
"code.gitea.io/gitea/services/convert"
17+
org_service "code.gitea.io/gitea/services/org"
1818
)
1919

2020
// listMembers list an organization's members
@@ -322,7 +322,7 @@ func DeleteMember(ctx *context.APIContext) {
322322
if ctx.Written() {
323323
return
324324
}
325-
if err := models.RemoveOrgUser(ctx, ctx.Org.Organization, member); err != nil {
325+
if err := org_service.RemoveOrgUser(ctx, ctx.Org.Organization, member); err != nil {
326326
ctx.Error(http.StatusInternalServerError, "RemoveOrgUser", err)
327327
}
328328
ctx.Status(http.StatusNoContent)

routers/api/v1/org/team.go

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import (
88
"errors"
99
"net/http"
1010

11-
"code.gitea.io/gitea/models"
1211
activities_model "code.gitea.io/gitea/models/activities"
1312
"code.gitea.io/gitea/models/organization"
1413
"code.gitea.io/gitea/models/perm"
@@ -240,7 +239,7 @@ func CreateTeam(ctx *context.APIContext) {
240239
attachAdminTeamUnits(team)
241240
}
242241

243-
if err := models.NewTeam(ctx, team); err != nil {
242+
if err := org_service.NewTeam(ctx, team); err != nil {
244243
if organization.IsErrTeamAlreadyExist(err) {
245244
ctx.Error(http.StatusUnprocessableEntity, "", err)
246245
} else {
@@ -331,7 +330,7 @@ func EditTeam(ctx *context.APIContext) {
331330
attachAdminTeamUnits(team)
332331
}
333332

334-
if err := models.UpdateTeam(ctx, team, isAuthChanged, isIncludeAllChanged); err != nil {
333+
if err := org_service.UpdateTeam(ctx, team, isAuthChanged, isIncludeAllChanged); err != nil {
335334
ctx.Error(http.StatusInternalServerError, "EditTeam", err)
336335
return
337336
}
@@ -362,7 +361,7 @@ func DeleteTeam(ctx *context.APIContext) {
362361
// "404":
363362
// "$ref": "#/responses/notFound"
364363

365-
if err := models.DeleteTeam(ctx, ctx.Org.Team); err != nil {
364+
if err := org_service.DeleteTeam(ctx, ctx.Org.Team); err != nil {
366365
ctx.Error(http.StatusInternalServerError, "DeleteTeam", err)
367366
return
368367
}
@@ -496,7 +495,7 @@ func AddTeamMember(ctx *context.APIContext) {
496495
if ctx.Written() {
497496
return
498497
}
499-
if err := models.AddTeamMember(ctx, ctx.Org.Team, u); err != nil {
498+
if err := org_service.AddTeamMember(ctx, ctx.Org.Team, u); err != nil {
500499
if errors.Is(err, user_model.ErrBlockedUser) {
501500
ctx.Error(http.StatusForbidden, "AddTeamMember", err)
502501
} else {
@@ -537,7 +536,7 @@ func RemoveTeamMember(ctx *context.APIContext) {
537536
return
538537
}
539538

540-
if err := models.RemoveTeamMember(ctx, ctx.Org.Team, u); err != nil {
539+
if err := org_service.RemoveTeamMember(ctx, ctx.Org.Team, u); err != nil {
541540
ctx.Error(http.StatusInternalServerError, "RemoveTeamMember", err)
542541
return
543542
}
@@ -700,7 +699,7 @@ func AddTeamRepository(ctx *context.APIContext) {
700699
ctx.Error(http.StatusForbidden, "", "Must have admin-level access to the repository")
701700
return
702701
}
703-
if err := org_service.TeamAddRepository(ctx, ctx.Org.Team, repo); err != nil {
702+
if err := repo_service.TeamAddRepository(ctx, ctx.Org.Team, repo); err != nil {
704703
ctx.Error(http.StatusInternalServerError, "TeamAddRepository", err)
705704
return
706705
}

routers/api/v1/repo/teams.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ import (
1010
"code.gitea.io/gitea/models/organization"
1111
"code.gitea.io/gitea/services/context"
1212
"code.gitea.io/gitea/services/convert"
13-
org_service "code.gitea.io/gitea/services/org"
1413
repo_service "code.gitea.io/gitea/services/repository"
1514
)
1615

@@ -205,7 +204,7 @@ func changeRepoTeam(ctx *context.APIContext, add bool) {
205204
ctx.Error(http.StatusUnprocessableEntity, "alreadyAdded", fmt.Errorf("team '%s' is already added to repo", team.Name))
206205
return
207206
}
208-
err = org_service.TeamAddRepository(ctx, team, ctx.Repo.Repository)
207+
err = repo_service.TeamAddRepository(ctx, team, ctx.Repo.Repository)
209208
} else {
210209
if !repoHasTeam {
211210
ctx.Error(http.StatusUnprocessableEntity, "notAdded", fmt.Errorf("team '%s' was not added to repo", team.Name))

routers/web/org/members.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,14 @@ package org
77
import (
88
"net/http"
99

10-
"code.gitea.io/gitea/models"
1110
"code.gitea.io/gitea/models/organization"
1211
user_model "code.gitea.io/gitea/models/user"
1312
"code.gitea.io/gitea/modules/base"
1413
"code.gitea.io/gitea/modules/log"
1514
"code.gitea.io/gitea/modules/setting"
1615
shared_user "code.gitea.io/gitea/routers/web/shared/user"
1716
"code.gitea.io/gitea/services/context"
17+
org_service "code.gitea.io/gitea/services/org"
1818
)
1919

2020
const (
@@ -108,14 +108,14 @@ func MembersAction(ctx *context.Context) {
108108
ctx.Error(http.StatusNotFound)
109109
return
110110
}
111-
err = models.RemoveOrgUser(ctx, org, member)
111+
err = org_service.RemoveOrgUser(ctx, org, member)
112112
if organization.IsErrLastOrgOwner(err) {
113113
ctx.Flash.Error(ctx.Tr("form.last_org_owner"))
114114
ctx.JSONRedirect(ctx.Org.OrgLink + "/members")
115115
return
116116
}
117117
case "leave":
118-
err = models.RemoveOrgUser(ctx, org, ctx.Doer)
118+
err = org_service.RemoveOrgUser(ctx, org, ctx.Doer)
119119
if err == nil {
120120
ctx.Flash.Success(ctx.Tr("form.organization_leave_success", org.DisplayName()))
121121
ctx.JSON(http.StatusOK, map[string]any{

routers/web/org/teams.go

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ import (
1313
"strconv"
1414
"strings"
1515

16-
"code.gitea.io/gitea/models"
1716
"code.gitea.io/gitea/models/db"
1817
org_model "code.gitea.io/gitea/models/organization"
1918
"code.gitea.io/gitea/models/perm"
@@ -78,9 +77,9 @@ func TeamsAction(ctx *context.Context) {
7877
ctx.Error(http.StatusNotFound)
7978
return
8079
}
81-
err = models.AddTeamMember(ctx, ctx.Org.Team, ctx.Doer)
80+
err = org_service.AddTeamMember(ctx, ctx.Org.Team, ctx.Doer)
8281
case "leave":
83-
err = models.RemoveTeamMember(ctx, ctx.Org.Team, ctx.Doer)
82+
err = org_service.RemoveTeamMember(ctx, ctx.Org.Team, ctx.Doer)
8483
if err != nil {
8584
if org_model.IsErrLastOrgOwner(err) {
8685
ctx.Flash.Error(ctx.Tr("form.last_org_owner"))
@@ -107,7 +106,7 @@ func TeamsAction(ctx *context.Context) {
107106
return
108107
}
109108

110-
err = models.RemoveTeamMember(ctx, ctx.Org.Team, user)
109+
err = org_service.RemoveTeamMember(ctx, ctx.Org.Team, user)
111110
if err != nil {
112111
if org_model.IsErrLastOrgOwner(err) {
113112
ctx.Flash.Error(ctx.Tr("form.last_org_owner"))
@@ -162,7 +161,7 @@ func TeamsAction(ctx *context.Context) {
162161
if ctx.Org.Team.IsMember(ctx, u.ID) {
163162
ctx.Flash.Error(ctx.Tr("org.teams.add_duplicate_users"))
164163
} else {
165-
err = models.AddTeamMember(ctx, ctx.Org.Team, u)
164+
err = org_service.AddTeamMember(ctx, ctx.Org.Team, u)
166165
}
167166

168167
page = "team"
@@ -249,13 +248,13 @@ func TeamsRepoAction(ctx *context.Context) {
249248
ctx.ServerError("GetRepositoryByName", err)
250249
return
251250
}
252-
err = org_service.TeamAddRepository(ctx, ctx.Org.Team, repo)
251+
err = repo_service.TeamAddRepository(ctx, ctx.Org.Team, repo)
253252
case "remove":
254253
err = repo_service.RemoveRepositoryFromTeam(ctx, ctx.Org.Team, ctx.FormInt64("repoid"))
255254
case "addall":
256-
err = models.AddAllRepositories(ctx, ctx.Org.Team)
255+
err = repo_service.AddAllRepositoriesToTeam(ctx, ctx.Org.Team)
257256
case "removeall":
258-
err = models.RemoveAllRepositories(ctx, ctx.Org.Team)
257+
err = repo_service.RemoveAllRepositoriesFromTeam(ctx, ctx.Org.Team)
259258
}
260259

261260
if err != nil {
@@ -358,7 +357,7 @@ func NewTeamPost(ctx *context.Context) {
358357
return
359358
}
360359

361-
if err := models.NewTeam(ctx, t); err != nil {
360+
if err := org_service.NewTeam(ctx, t); err != nil {
362361
ctx.Data["Err_TeamName"] = true
363362
switch {
364363
case org_model.IsErrTeamAlreadyExist(err):
@@ -536,7 +535,7 @@ func EditTeamPost(ctx *context.Context) {
536535
return
537536
}
538537

539-
if err := models.UpdateTeam(ctx, t, isAuthChanged, isIncludeAllChanged); err != nil {
538+
if err := org_service.UpdateTeam(ctx, t, isAuthChanged, isIncludeAllChanged); err != nil {
540539
ctx.Data["Err_TeamName"] = true
541540
switch {
542541
case org_model.IsErrTeamAlreadyExist(err):
@@ -551,7 +550,7 @@ func EditTeamPost(ctx *context.Context) {
551550

552551
// DeleteTeam response for the delete team request
553552
func DeleteTeam(ctx *context.Context) {
554-
if err := models.DeleteTeam(ctx, ctx.Org.Team); err != nil {
553+
if err := org_service.DeleteTeam(ctx, ctx.Org.Team); err != nil {
555554
ctx.Flash.Error("DeleteTeam: " + err.Error())
556555
} else {
557556
ctx.Flash.Success(ctx.Tr("org.teams.delete_team_success"))
@@ -593,7 +592,7 @@ func TeamInvitePost(ctx *context.Context) {
593592
return
594593
}
595594

596-
if err := models.AddTeamMember(ctx, team, ctx.Doer); err != nil {
595+
if err := org_service.AddTeamMember(ctx, team, ctx.Doer); err != nil {
597596
ctx.ServerError("AddTeamMember", err)
598597
return
599598
}

routers/web/repo/setting/collaboration.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ import (
1717
"code.gitea.io/gitea/modules/setting"
1818
"code.gitea.io/gitea/services/context"
1919
"code.gitea.io/gitea/services/mailer"
20-
org_service "code.gitea.io/gitea/services/org"
2120
repo_service "code.gitea.io/gitea/services/repository"
2221
)
2322

@@ -185,7 +184,7 @@ func AddTeamPost(ctx *context.Context) {
185184
return
186185
}
187186

188-
if err = org_service.TeamAddRepository(ctx, team, ctx.Repo.Repository); err != nil {
187+
if err = repo_service.TeamAddRepository(ctx, team, ctx.Repo.Repository); err != nil {
189188
ctx.ServerError("TeamAddRepository", err)
190189
return
191190
}

services/auth/source/source_group_sync.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@ import (
77
"context"
88
"fmt"
99

10-
"code.gitea.io/gitea/models"
1110
"code.gitea.io/gitea/models/organization"
1211
user_model "code.gitea.io/gitea/models/user"
1312
"code.gitea.io/gitea/modules/container"
1413
"code.gitea.io/gitea/modules/log"
14+
org_service "code.gitea.io/gitea/services/org"
1515
)
1616

1717
type syncType int
@@ -100,12 +100,12 @@ func syncGroupsToTeamsCached(ctx context.Context, user *user_model.User, orgTeam
100100
}
101101

102102
if action == syncAdd && !isMember {
103-
if err := models.AddTeamMember(ctx, team, user); err != nil {
103+
if err := org_service.AddTeamMember(ctx, team, user); err != nil {
104104
log.Error("group sync: Could not add user to team: %v", err)
105105
return err
106106
}
107107
} else if action == syncRemove && isMember {
108-
if err := models.RemoveTeamMember(ctx, team, user); err != nil {
108+
if err := org_service.RemoveTeamMember(ctx, team, user); err != nil {
109109
log.Error("group sync: Could not remove user from team: %v", err)
110110
return err
111111
}

services/doctor/fix8312.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@ package doctor
66
import (
77
"context"
88

9-
"code.gitea.io/gitea/models"
109
"code.gitea.io/gitea/models/db"
1110
org_model "code.gitea.io/gitea/models/organization"
1211
"code.gitea.io/gitea/models/perm"
1312
"code.gitea.io/gitea/modules/log"
13+
org_service "code.gitea.io/gitea/services/org"
1414

1515
"xorm.io/builder"
1616
)
@@ -29,7 +29,7 @@ func fixOwnerTeamCreateOrgRepo(ctx context.Context, logger log.Logger, autofix b
2929
return nil
3030
}
3131

32-
return models.UpdateTeam(ctx, team, false, false)
32+
return org_service.UpdateTeam(ctx, team, false, false)
3333
},
3434
)
3535
if err != nil {

services/org/repo.go

Lines changed: 0 additions & 27 deletions
This file was deleted.

0 commit comments

Comments
 (0)