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:
parent
608fb4326d
commit
a35d412491
@ -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))
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user