summaryrefslogtreecommitdiffstats
path: root/routers
diff options
context:
space:
mode:
authorUnknown <joe2010xtmf@163.com>2014-04-04 18:31:09 -0400
committerUnknown <joe2010xtmf@163.com>2014-04-04 18:31:09 -0400
commiteb803ec5eb3a7e66a107873ce6ee584b8c77b131 (patch)
tree7980b8e04af31123708cf8baa9304fc7df596b3c /routers
parentca5dcea7d15d3564425afbcb65dbea6ab859526f (diff)
downloadgitea-eb803ec5eb3a7e66a107873ce6ee584b8c77b131.tar.gz
gitea-eb803ec5eb3a7e66a107873ce6ee584b8c77b131.zip
Add transfer repository
Diffstat (limited to 'routers')
-rw-r--r--routers/install.go2
-rw-r--r--routers/repo/repo.go23
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)