summaryrefslogtreecommitdiffstats
path: root/routers/api/v1/api.go
diff options
context:
space:
mode:
Diffstat (limited to 'routers/api/v1/api.go')
-rw-r--r--routers/api/v1/api.go40
1 files changed, 26 insertions, 14 deletions
diff --git a/routers/api/v1/api.go b/routers/api/v1/api.go
index 55622da1d8..67912e15d7 100644
--- a/routers/api/v1/api.go
+++ b/routers/api/v1/api.go
@@ -132,7 +132,11 @@ func reqOrgMembership() macaron.Handler {
}
if !models.IsOrganizationMember(orgID, ctx.User.ID) {
- ctx.Error(403, "", "Must be an organization member")
+ if ctx.Org.Organization != nil {
+ ctx.Error(403, "", "Must be an organization member")
+ } else {
+ ctx.Status(404)
+ }
return
}
}
@@ -151,7 +155,11 @@ func reqOrgOwnership() macaron.Handler {
}
if !models.IsOrganizationOwner(orgID, ctx.User.ID) {
- ctx.Error(403, "", "Must be an organization member")
+ if ctx.Org.Organization != nil {
+ ctx.Error(403, "", "Must be an organization owner")
+ } else {
+ ctx.Status(404)
+ }
return
}
}
@@ -394,18 +402,20 @@ func RegisterRoutes(m *macaron.Macaron) {
m.Get("/user/orgs", reqToken(), org.ListMyOrgs)
m.Get("/users/:username/orgs", org.ListUserOrgs)
m.Group("/orgs/:orgname", func() {
- m.Combo("").Get(org.Get).Patch(bind(api.EditOrgOption{}), org.Edit)
+ m.Combo("").Get(org.Get).
+ Patch(reqOrgOwnership(), bind(api.EditOrgOption{}), org.Edit)
m.Group("/members", func() {
m.Get("", org.ListMembers)
- m.Combo("/:username").Get(org.IsMember).Delete(org.DeleteMember)
+ m.Combo("/:username").Get(org.IsMember).
+ Delete(reqOrgOwnership(), org.DeleteMember)
})
m.Group("/public_members", func() {
m.Get("", org.ListPublicMembers)
m.Combo("/:username").Get(org.IsPublicMember).
- Put(org.PublicizeMember).
- Delete(org.ConcealMember)
+ Put(reqOrgMembership(), org.PublicizeMember).
+ Delete(reqOrgMembership(), org.ConcealMember)
})
- m.Combo("/teams").Get(org.ListTeams).
+ m.Combo("/teams", reqOrgMembership()).Get(org.ListTeams).
Post(bind(api.CreateTeamOption{}), org.CreateTeam)
m.Group("/hooks", func() {
m.Combo("").Get(org.ListHooks).
@@ -417,19 +427,21 @@ func RegisterRoutes(m *macaron.Macaron) {
}, orgAssignment(true))
m.Group("/teams/:teamid", func() {
m.Combo("").Get(org.GetTeam).
- Patch(bind(api.EditTeamOption{}), org.EditTeam).
- Delete(org.DeleteTeam)
+ Patch(reqOrgOwnership(), bind(api.EditTeamOption{}), org.EditTeam).
+ Delete(reqOrgOwnership(), org.DeleteTeam)
m.Group("/members", func() {
m.Get("", org.GetTeamMembers)
- m.Combo("/:username").Put(org.AddTeamMember).
- Delete(org.RemoveTeamMember)
+ m.Combo("/:username").
+ Put(reqOrgOwnership(), org.AddTeamMember).
+ Delete(reqOrgOwnership(), org.RemoveTeamMember)
})
m.Group("/repos", func() {
m.Get("", org.GetTeamRepos)
- m.Combo("/:reponame").Put(admin.AddTeamRepository).
- Delete(admin.RemoveTeamRepository)
+ m.Combo(":orgname/:reponame").
+ Put(org.AddTeamRepository).
+ Delete(org.RemoveTeamRepository)
})
- }, orgAssignment(false, true))
+ }, reqOrgMembership(), orgAssignment(false, true))
m.Any("/*", func(ctx *context.Context) {
ctx.Error(404)