0
0
mirror of https://github.com/go-gitea/gitea.git synced 2026-04-05 18:35:09 +02:00

add UserOrgTeamPermCond function

this returns group ids where a user has permissions greater than or equal to `level`
This commit is contained in:
☙◦ The Tablet ❀ GamerGirlandCo ◦❧ 2025-01-09 16:50:19 -05:00
parent 608fb4326d
commit a35d412491
No known key found for this signature in database
GPG Key ID: 924A5F6AF051E87C

View File

@ -1,11 +1,12 @@
package group
import (
"context"
"code.gitea.io/gitea/models/perm"
"code.gitea.io/gitea/models/unit"
user_model "code.gitea.io/gitea/models/user"
"code.gitea.io/gitea/modules/structs"
"context"
"xorm.io/builder"
)
@ -31,6 +32,13 @@ func userOrgTeamGroupBuilder(userID int64) *builder.Builder {
Where(builder.Eq{"`team_user`.uid": userID})
}
func UserOrgTeamPermCond(idStr string, userID int64, level perm.AccessMode) builder.Cond {
selCond := userOrgTeamGroupBuilder(userID)
selCond = selCond.InnerJoin("team", "`team`.id = `group_team`.team_id").
And(builder.Or(builder.Gte{"`team`.authorize": level}, builder.Gte{"`group_team`.access_mode": level}))
return builder.In(idStr, selCond)
}
// UserOrgTeamGroupCond returns a condition to select ids of groups that a user's team can access
func UserOrgTeamGroupCond(idStr string, userID int64) builder.Cond {
return builder.In(idStr, userOrgTeamGroupBuilder(userID))