Skip to content
Merged
17 changes: 17 additions & 0 deletions routers/web/repo/setting.go
Original file line number Diff line number Diff line change
Expand Up @@ -911,6 +911,23 @@ func CollaborationPost(ctx *context.Context) {
return
}

// find the owner team of the organization the repo belongs too and
// check if the user we're trying to add is an owner.
if ctx.Repo.Repository.Owner.IsOrganization() {
teams, err := organization.GetRepoTeams(ctx, ctx.Repo.Repository)
if err != nil {
ctx.ServerError("GetRepoTeams", err)
return
}

for _, team := range teams {
if team.IsOwnerTeam() && team.IsMember(u.ID) {
ctx.Redirect(setting.AppSubURL + ctx.Req.URL.EscapedPath())
return
}
}
}

if err = models.AddCollaborator(ctx.Repo.Repository, u); err != nil {
ctx.ServerError("AddCollaborator", err)
return
Expand Down