diff options
author | Unknown <joe2010xtmf@163.com> | 2014-04-04 18:31:09 -0400 |
---|---|---|
committer | Unknown <joe2010xtmf@163.com> | 2014-04-04 18:31:09 -0400 |
commit | eb803ec5eb3a7e66a107873ce6ee584b8c77b131 (patch) | |
tree | 7980b8e04af31123708cf8baa9304fc7df596b3c /routers | |
parent | ca5dcea7d15d3564425afbcb65dbea6ab859526f (diff) | |
download | gitea-eb803ec5eb3a7e66a107873ce6ee584b8c77b131.tar.gz gitea-eb803ec5eb3a7e66a107873ce6ee584b8c77b131.zip |
Add transfer repository
Diffstat (limited to 'routers')
-rw-r--r-- | routers/install.go | 2 | ||||
-rw-r--r-- | routers/repo/repo.go | 23 |
2 files changed, 24 insertions, 1 deletions
diff --git a/routers/install.go b/routers/install.go index 6bdae2afd5..032af48020 100644 --- a/routers/install.go +++ b/routers/install.go @@ -43,7 +43,7 @@ func GlobalInit() { if base.InstallLock { if err := models.NewEngine(); err != nil { - fmt.Println("%v", err) + fmt.Println(err) os.Exit(2) } diff --git a/routers/repo/repo.go b/routers/repo/repo.go index bc41345a89..6a5a7ae434 100644 --- a/routers/repo/repo.go +++ b/routers/repo/repo.go @@ -314,6 +314,29 @@ func SettingPost(ctx *middleware.Context) { ctx.HTML(200, "repo/setting") } log.Trace("%s Repository updated: %s/%s", ctx.Req.RequestURI, ctx.Repo.Owner.Name, ctx.Repo.Repository.Name) + case "transfer": + if len(ctx.Repo.Repository.Name) == 0 || ctx.Repo.Repository.Name != ctx.Query("repository") { + ctx.RenderWithErr("Please make sure you entered repository name is correct.", "repo/setting", nil) + return + } + + newOwner := ctx.Query("owner") + // Check if new owner exists. + isExist, err := models.IsUserExist(newOwner) + if err != nil { + ctx.Handle(404, "repo.SettingPost(transfer: check existence)", err) + return + } else if !isExist { + ctx.RenderWithErr("Please make sure you entered owner name is correct.", "repo/setting", nil) + return + } else if err = models.TransferOwnership(ctx.User, newOwner, ctx.Repo.Repository); err != nil { + ctx.Handle(404, "repo.SettingPost(transfer repository)", err) + return + } + log.Trace("%s Repository transfered: %s/%s -> %s", ctx.Req.RequestURI, ctx.User.Name, ctx.Repo.Repository.Name, newOwner) + + ctx.Redirect("/") + return case "delete": if len(ctx.Repo.Repository.Name) == 0 || ctx.Repo.Repository.Name != ctx.Query("repository") { ctx.RenderWithErr("Please make sure you entered repository name is correct.", "repo/setting", nil) |