summaryrefslogtreecommitdiffstats
path: root/routers/repo
diff options
context:
space:
mode:
authorLunny Xiao <xiaolunwen@gmail.com>2014-04-05 15:30:49 +0800
committerLunny Xiao <xiaolunwen@gmail.com>2014-04-05 15:30:49 +0800
commita92826a8feee904440d86fd851ac4ecce35520fd (patch)
treee813b36b2b6db0807e02abd61a4f220a971cc84e /routers/repo
parent493b0c5ac212a28f46938cf8dfb2efb79f658548 (diff)
parente41ab839c7dbbdffc60a4e02775f24add9d126d9 (diff)
downloadgitea-a92826a8feee904440d86fd851ac4ecce35520fd.tar.gz
gitea-a92826a8feee904440d86fd851ac4ecce35520fd.zip
Merge branch 'dev' of github.com:gogits/gogs into dev
Conflicts: routers/repo/repo.go
Diffstat (limited to 'routers/repo')
-rw-r--r--routers/repo/repo.go28
1 files changed, 26 insertions, 2 deletions
diff --git a/routers/repo/repo.go b/routers/repo/repo.go
index cb7febd210..b6a5d1780c 100644
--- a/routers/repo/repo.go
+++ b/routers/repo/repo.go
@@ -338,10 +338,11 @@ func Http(ctx *middleware.Context, params martini.Params) {
}
}
+ dir := models.RepoPath(username, reponame)
+
prefix := path.Join("/", username, params["reponame"])
server := webdav.NewServer(
- models.RepoPath(username, reponame),
- prefix, true)
+ dir, prefix, true)
server.ServeHTTP(ctx.ResponseWriter, ctx.Req)
}
@@ -406,6 +407,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)