mirror of
https://github.com/go-gitea/gitea.git
synced 2026-05-16 14:47:48 +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