From 4690164a3fd4cfab0a58b5b2175439b4e9bf8257 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=98=99=E2=97=A6=20The=20Tablet=20=E2=9D=80=20GamerGirla?= =?UTF-8?q?ndCo=20=E2=97=A6=E2=9D=A7?= Date: Thu, 9 Jan 2025 18:39:47 -0500 Subject: [PATCH] add file with functions relating to organization teams and repo groups --- models/organization/team_group.go | 33 +++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 models/organization/team_group.go diff --git a/models/organization/team_group.go b/models/organization/team_group.go new file mode 100644 index 0000000000..95b1d6d983 --- /dev/null +++ b/models/organization/team_group.go @@ -0,0 +1,33 @@ +package organization + +import ( + "code.gitea.io/gitea/models/db" + group_model "code.gitea.io/gitea/models/group" + "code.gitea.io/gitea/models/perm" + "code.gitea.io/gitea/models/unit" + "context" +) + +func GetTeamsWithAccessToGroup(ctx context.Context, orgID, groupID int64, mode perm.AccessMode) ([]*Team, error) { + teams := make([]*Team, 0) + inCond := group_model.ParentGroupCond("group_team.group_id", groupID) + return teams, db.GetEngine(ctx).Where("group_team.access_mode >= ?", mode). + Join("INNER", "group_team", "group_team.team_id = team.id"). + And("group_team.org_id = ?", orgID). + And(inCond). + OrderBy("name"). + Find(&teams) +} + +func GetTeamsWithAccessToGroupUnit(ctx context.Context, orgID, groupID int64, mode perm.AccessMode, unitType unit.Type) ([]*Team, error) { + teams := make([]*Team, 0) + inCond := group_model.ParentGroupCond("group_team.group_id", groupID) + return teams, db.GetEngine(ctx).Where("group_team.access_mode >= ?", mode). + Join("INNER", "group_team", "group_team.team_id = team.id"). + Join("INNER", "group_unit", "group_unit.team_id = team.id"). + And("group_team.org_id = ?", orgID). + And(inCond). + And("group_unit.type = ?", unitType). + OrderBy("name"). + Find(&teams) +}