From 8b086e71a9cf27d85127d601fd1a50532fbc98f8 Mon Sep 17 00:00:00 2001 From: Gusted Date: Sat, 26 Feb 2022 14:16:28 +0100 Subject: [PATCH 1/2] Allow adminstrator teams members to see other teams (#18918) --- modules/context/org.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/modules/context/org.go b/modules/context/org.go index 585a5fd762c6..6678558a6c92 100644 --- a/modules/context/org.go +++ b/modules/context/org.go @@ -129,7 +129,11 @@ func HandleOrgAssignment(ctx *Context, args ...bool) { // Team. if ctx.Org.IsMember { - if ctx.Org.IsOwner { + maxPerm, err := org.GetOrgUserMaxAuthorizeLevel(ctx.User.ID) + if err != nil { + ctx.ServerError("GetOrgUserMaxAuthorizeLevel", err) + } + if ctx.Org.IsOwner || maxPerm >= perm.AccessModeAdmin { ctx.Org.Teams, err = org.LoadTeams() if err != nil { ctx.ServerError("LoadTeams", err) From 4b5a8ca0564885c4e580524252da5e0ee1ad2663 Mon Sep 17 00:00:00 2001 From: Gusted Date: Sat, 26 Feb 2022 21:54:42 +0100 Subject: [PATCH 2/2] Update backport --- modules/context/org.go | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/modules/context/org.go b/modules/context/org.go index 6678558a6c92..824f22b2f330 100644 --- a/modules/context/org.go +++ b/modules/context/org.go @@ -129,11 +129,23 @@ func HandleOrgAssignment(ctx *Context, args ...bool) { // Team. if ctx.Org.IsMember { - maxPerm, err := org.GetOrgUserMaxAuthorizeLevel(ctx.User.ID) - if err != nil { - ctx.ServerError("GetOrgUserMaxAuthorizeLevel", err) + shouldSeeAllTeams := false + if ctx.Org.IsOwner { + shouldSeeAllTeams = true + } else { + teams, err := org.GetUserTeams(ctx.User.ID) + if err != nil { + ctx.ServerError("GetUserTeams", err) + return + } + for _, team := range teams { + if team.IncludesAllRepositories && team.AccessMode >= perm.AccessModeAdmin { + shouldSeeAllTeams = true + break + } + } } - if ctx.Org.IsOwner || maxPerm >= perm.AccessModeAdmin { + if shouldSeeAllTeams { ctx.Org.Teams, err = org.LoadTeams() if err != nil { ctx.ServerError("LoadTeams", err)