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.go24
1 files changed, 13 insertions, 11 deletions
diff --git a/routers/api/v1/api.go b/routers/api/v1/api.go
index a75910b8a2..59625efdf1 100644
--- a/routers/api/v1/api.go
+++ b/routers/api/v1/api.go
@@ -62,16 +62,18 @@ func RepoAssignment() macaron.Handler {
return
}
- mode, err := models.AccessLevel(ctx.User, repo)
- if err != nil {
- ctx.Error(500, "AccessLevel", err)
- return
+ if ctx.IsSigned && ctx.User.IsAdmin {
+ ctx.Repo.AccessMode = models.ACCESS_MODE_OWNER
+ } else {
+ mode, err := models.AccessLevel(ctx.User, repo)
+ if err != nil {
+ ctx.Error(500, "AccessLevel", err)
+ return
+ }
+ ctx.Repo.AccessMode = mode
}
- ctx.Repo.AccessMode = mode
-
- // Check access.
- if ctx.Repo.AccessMode == models.ACCESS_MODE_NONE {
+ if !ctx.Repo.HasAccess() {
ctx.Status(404)
return
}
@@ -193,9 +195,9 @@ func RegisterRoutes(m *macaron.Macaron) {
m.Combo("/:id").Get(repo.GetDeployKey).
Delete(repo.DeleteDeploykey)
})
- m.Group("/issue", func() {
- m.Combo("").Get().Post()
- m.Combo("/:index").Get().Patch()
+ m.Group("/issues", func() {
+ m.Combo("").Get(repo.ListIssues).Post(bind(api.CreateIssueOption{}), repo.CreateIssue)
+ m.Combo("/:index").Get(repo.GetIssue).Patch(bind(api.EditIssueOption{}), repo.EditIssue)
})
}, RepoAssignment())
}, ReqToken())