diff options
author | Lunny Xiao <xiaolunwen@gmail.com> | 2014-02-25 15:11:54 +0800 |
---|---|---|
committer | Lunny Xiao <xiaolunwen@gmail.com> | 2014-02-25 15:11:54 +0800 |
commit | f7826d4ed780c29058a0825a9d821523980777de (patch) | |
tree | 161b43aca41ebbb12039f47967fb275eb6102491 /routers | |
parent | 3b8657d9177ad2f3dca5ecf0e1f8f62c20e776f7 (diff) | |
download | gitea-f7826d4ed780c29058a0825a9d821523980777de.tar.gz gitea-f7826d4ed780c29058a0825a9d821523980777de.zip |
create repository from web
Diffstat (limited to 'routers')
-rw-r--r-- | routers/repo/repo.go | 32 |
1 files changed, 27 insertions, 5 deletions
diff --git a/routers/repo/repo.go b/routers/repo/repo.go index cf79d539b6..11e9e2fb65 100644 --- a/routers/repo/repo.go +++ b/routers/repo/repo.go @@ -7,6 +7,7 @@ package repo import ( "fmt" "net/http" + "strconv" "github.com/martini-contrib/render" @@ -21,11 +22,32 @@ func Create(req *http.Request, r render.Render) { return } - u := &models.User{} - _, err := models.CreateRepository(u, "") - r.HTML(403, "status/403", map[string]interface{}{ - "Title": fmt.Sprintf("%v", err), - }) + // TODO: access check + fmt.Println(req.FormValue("userId"), req.FormValue("name")) + + id, err := strconv.ParseInt(req.FormValue("userId"), 10, 64) + if err == nil { + var user *models.User + user, err = models.GetUserById(id) + if user == nil { + err = models.ErrUserNotExist + } + if err == nil { + _, err = models.CreateRepository(user, req.FormValue("name")) + } + if err == nil { + r.HTML(200, "repo/created", map[string]interface{}{ + "RepoName": user.Name + "/" + req.FormValue("name"), + }) + return + } + } + + if err != nil { + r.HTML(403, "status/403", map[string]interface{}{ + "Title": fmt.Sprintf("%v", err), + }) + } } func Delete(req *http.Request, r render.Render) { |