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:
parent
4328885e9b
commit
5bb8e6e766
42
models/group/group_team.go
Normal file
42
models/group/group_team.go
Normal 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
|
||||
}
|
||||
25
models/group/group_unit.go
Normal file
25
models/group/group_unit.go
Normal 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)
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user