0
0
mirror of https://github.com/go-gitea/gitea.git synced 2026-04-07 02:45:44 +02:00

add GroupTeam and GroupUnit structs and helpers

This commit is contained in:
☙◦ The Tablet ❀ GamerGirlandCo ◦❧ 2024-12-27 21:30:59 -05:00
parent 4328885e9b
commit 5bb8e6e766
No known key found for this signature in database
GPG Key ID: 924A5F6AF051E87C
2 changed files with 67 additions and 0 deletions

View File

@ -0,0 +1,42 @@
package group
import (
"code.gitea.io/gitea/models/db"
"context"
)
// GroupTeam represents a relation for a team's access to a group
type GroupTeam struct {
ID int64 `xorm:"pk autoincr"`
OrgID int64 `xorm:"INDEX"`
TeamID int64 `xorm:"UNIQUE(s)"`
GroupID int64 `xorm:"UNIQUE(s)"`
}
// HasTeamGroup returns true if the given group belongs to team.
func HasTeamGroup(ctx context.Context, orgID, teamID, groupID int64) bool {
has, _ := db.GetEngine(ctx).
Where("org_id=?", orgID).
And("team_id=?", teamID).
And("group_id=?", groupID).
Get(new(GroupTeam))
return has
}
func AddTeamGroup(ctx context.Context, orgID, teamID, groupID int64) error {
_, err := db.GetEngine(ctx).Insert(&GroupTeam{
OrgID: orgID,
GroupID: groupID,
TeamID: teamID,
})
return err
}
func RemoveTeamGroup(ctx context.Context, orgID, teamID, groupID int64) error {
_, err := db.DeleteByBean(ctx, &GroupTeam{
TeamID: teamID,
GroupID: groupID,
OrgID: orgID,
})
return err
}

View File

@ -0,0 +1,25 @@
package group
import (
"code.gitea.io/gitea/models/db"
"code.gitea.io/gitea/models/perm"
"code.gitea.io/gitea/models/unit"
"context"
)
// GroupUnit describes all units of a repository group
type GroupUnit struct {
ID int64 `xorm:"pk autoincr"`
GroupID int64 `xorm:"INDEX"`
TeamID int64 `xorm:"UNIQUE(s)"`
Type unit.Type `xorm:"UNIQUE(s)"`
AccessMode perm.AccessMode
}
func (g *GroupUnit) Unit() unit.Unit {
return unit.Units[g.Type]
}
func getUnitsByGroupID(ctx context.Context, groupID int64) (units []*GroupUnit, err error) {
return units, db.GetEngine(ctx).Where("group_id = ?", groupID).Find(&units)
}