0
0
mirror of https://github.com/go-gitea/gitea.git synced 2026-04-18 19:13:39 +02:00
gitea/models/organization/team_group.go
☙◦ The Tablet ❀ GamerGirlandCo ◦❧ fc646e84cd
format files
2026-04-02 20:00:51 -04:00

35 lines
1.2 KiB
Go

package organization
import (
"context"
"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"
)
func GetTeamsWithAccessToGroup(ctx context.Context, orgID, groupID int64, mode perm.AccessMode) ([]*Team, error) {
teams := make([]*Team, 0)
inCond := group_model.ParentGroupCond(ctx, "group_team.group_id", groupID)
return teams, db.GetEngine(ctx).Distinct("team.*").Where("group_team.access_mode >= ?", mode).
Join("INNER", "group_team", "group_team.team_id = team.id and group_team.org_id = ?", orgID).
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(ctx, "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)
}