aboutsummaryrefslogtreecommitdiffstats
path: root/routers/private/internal.go
diff options
context:
space:
mode:
authorAntoine GIRARD <sapk@users.noreply.github.com>2018-10-30 07:20:13 +0100
committerLunny Xiao <xiaolunwen@gmail.com>2018-10-30 14:20:13 +0800
commit617a2433a3dd2e32188574ac7b3765bec5082123 (patch)
tree10e669a14d127e68b6a3a7e681da5da6057ac16f /routers/private/internal.go
parentaefeb8c46587819942125a4bbba328d203e3275a (diff)
downloadgitea-617a2433a3dd2e32188574ac7b3765bec5082123.tar.gz
gitea-617a2433a3dd2e32188574ac7b3765bec5082123.zip
Make gitea serv use api/internal (#4886)
* Start to move to internal/private * Add GetPublicKeyByID * Add HasDeployKey * Add private.UpdateDeployKeyUpdated * Add private.GetUserByKeyID * Add private.AccessLevel * Add private.CheckUnitUser * Fix mistakes I made * Some cleaning + moving code to separate files * Fix error handling * Remove useless error handling for setup * lint: fix comment on exported func * fix copyright header * Fix order of args
Diffstat (limited to 'routers/private/internal.go')
-rw-r--r--routers/private/internal.go58
1 files changed, 53 insertions, 5 deletions
diff --git a/routers/private/internal.go b/routers/private/internal.go
index 96021d8feb..23e0122642 100644
--- a/routers/private/internal.go
+++ b/routers/private/internal.go
@@ -23,26 +23,74 @@ func CheckInternalToken(ctx *macaron.Context) {
}
}
-// UpdatePublicKey update publick key updates
-func UpdatePublicKey(ctx *macaron.Context) {
- keyID := ctx.ParamsInt64(":id")
- if err := models.UpdatePublicKeyUpdated(keyID); err != nil {
+//GetRepositoryByOwnerAndName chainload to models.GetRepositoryByOwnerAndName
+func GetRepositoryByOwnerAndName(ctx *macaron.Context) {
+ //TODO use repo.Get(ctx *context.APIContext) ?
+ ownerName := ctx.Params(":owner")
+ repoName := ctx.Params(":repo")
+ repo, err := models.GetRepositoryByOwnerAndName(ownerName, repoName)
+ if err != nil {
ctx.JSON(500, map[string]interface{}{
"err": err.Error(),
})
return
}
+ ctx.JSON(200, repo)
+}
+
+//AccessLevel chainload to models.AccessLevel
+func AccessLevel(ctx *macaron.Context) {
+ repoID := ctx.ParamsInt64(":repoid")
+ userID := ctx.ParamsInt64(":userid")
+ repo, err := models.GetRepositoryByID(repoID)
+ if err != nil {
+ ctx.JSON(500, map[string]interface{}{
+ "err": err.Error(),
+ })
+ return
+ }
+ al, err := models.AccessLevel(userID, repo)
+ if err != nil {
+ ctx.JSON(500, map[string]interface{}{
+ "err": err.Error(),
+ })
+ return
+ }
+ ctx.JSON(200, al)
+}
- ctx.PlainText(200, []byte("success"))
+//CheckUnitUser chainload to models.CheckUnitUser
+func CheckUnitUser(ctx *macaron.Context) {
+ repoID := ctx.ParamsInt64(":repoid")
+ userID := ctx.ParamsInt64(":userid")
+ repo, err := models.GetRepositoryByID(repoID)
+ if err != nil {
+ ctx.JSON(500, map[string]interface{}{
+ "err": err.Error(),
+ })
+ return
+ }
+ if repo.CheckUnitUser(userID, ctx.QueryBool("isAdmin"), models.UnitType(ctx.QueryInt("unitType"))) {
+ ctx.PlainText(200, []byte("success"))
+ return
+ }
+ ctx.PlainText(404, []byte("no access"))
}
// RegisterRoutes registers all internal APIs routes to web application.
// These APIs will be invoked by internal commands for example `gitea serv` and etc.
func RegisterRoutes(m *macaron.Macaron) {
m.Group("/", func() {
+ m.Get("/ssh/:id", GetPublicKeyByID)
+ m.Get("/ssh/:id/user", GetUserByKeyID)
m.Post("/ssh/:id/update", UpdatePublicKey)
+ m.Post("/repositories/:repoid/keys/:keyid/update", UpdateDeployKey)
+ m.Get("/repositories/:repoid/user/:userid/accesslevel", AccessLevel)
+ m.Get("/repositories/:repoid/user/:userid/checkunituser", CheckUnitUser)
+ m.Get("/repositories/:repoid/has-keys/:keyid", HasDeployKey)
m.Post("/push/update", PushUpdate)
m.Get("/protectedbranch/:pbid/:userid", CanUserPush)
+ m.Get("/repo/:owner/:repo", GetRepositoryByOwnerAndName)
m.Get("/branch/:id/*", GetProtectedBranchBy)
m.Get("/repository/:rid", GetRepository)
m.Get("/active-pull-request", GetActivePullRequest)