diff options
-rw-r--r-- | .gitignore | 2 | ||||
-rw-r--r-- | routers/repo/repo.go | 12 | ||||
-rw-r--r-- | routers/user/user.go | 9 | ||||
-rw-r--r-- | templates/base/navbar.tmpl | 1 | ||||
-rw-r--r-- | web.go | 5 |
5 files changed, 20 insertions, 9 deletions
@@ -3,4 +3,4 @@ gogs *.exe~ .DS_Store *.db -xorm.log +*.log
\ No newline at end of file diff --git a/routers/repo/repo.go b/routers/repo/repo.go index 8b9c9cef..a9e48021 100644 --- a/routers/repo/repo.go +++ b/routers/repo/repo.go @@ -44,8 +44,8 @@ func Create(req *http.Request, r render.Render) { } if err != nil { - r.HTML(403, "status/403", map[string]interface{}{ - "Title": fmt.Sprintf("%v", err), + r.HTML(200, "base/error", map[string]interface{}{ + "Error": fmt.Sprintf("%v", err), }) } } @@ -60,7 +60,9 @@ func Delete(req *http.Request, r render.Render) { u := &models.User{} err := models.DeleteRepository(u, "") - r.HTML(403, "status/403", map[string]interface{}{ - "Title": fmt.Sprintf("%v", err), - }) + if err != nil { + r.HTML(200, "base/error", map[string]interface{}{ + "Error": fmt.Sprintf("%v", err), + }) + } } diff --git a/routers/user/user.go b/routers/user/user.go index cf131408..d2da19d5 100644 --- a/routers/user/user.go +++ b/routers/user/user.go @@ -9,6 +9,7 @@ import ( "net/http" "github.com/martini-contrib/render" + "github.com/martini-contrib/sessions" "github.com/gogits/validation" @@ -23,7 +24,7 @@ func Profile(r render.Render) { return } -func SignIn(req *http.Request, r render.Render) { +func SignIn(req *http.Request, r render.Render, session sessions.Session) { if req.Method == "GET" { r.HTML(200, "user/signin", map[string]interface{}{ "Title": "Log In", @@ -31,14 +32,16 @@ func SignIn(req *http.Request, r render.Render) { return } - // todo sign in - _, err := models.LoginUserPlain(req.FormValue("account"), req.FormValue("passwd")) + // TODO: LDAP sign in + user, err := models.LoginUserPlain(req.FormValue("account"), req.FormValue("passwd")) if err != nil { r.HTML(200, "base/error", map[string]interface{}{ "Error": fmt.Sprintf("%v", err), }) return } + session.Set("userId", user.Id) + session.Set("userName", user.Name) r.Redirect("/") } diff --git a/templates/base/navbar.tmpl b/templates/base/navbar.tmpl index ae908738..56d4a579 100644 --- a/templates/base/navbar.tmpl +++ b/templates/base/navbar.tmpl @@ -5,6 +5,7 @@ <a class="gogs-nav-item" href="#">Dashboard</a> <a class="gogs-nav-item" href="#">Explore</a> <a class="gogs-nav-item" href="#">Help</a> + <a class="gogs-nav-item navbar-right navbar-btn btn btn-danger" href="/repo/create">Create a repository</a> <a class="gogs-nav-item navbar-right navbar-btn btn btn-danger" href="/login/">Sign in</a> <!--<a class="gogs-nav-item navbar-right" href="#">Profile</a>--> </nav> @@ -12,6 +12,7 @@ import ( "github.com/codegangsta/cli" "github.com/codegangsta/martini" "github.com/martini-contrib/render" + "github.com/martini-contrib/sessions" "github.com/gogits/gogs/routers" "github.com/gogits/gogs/routers/repo" @@ -46,6 +47,10 @@ func runWeb(*cli.Context) { // Middleware. m.Use(render.Renderer(render.Options{Funcs: []template.FuncMap{AppHelpers}})) + // TODO: should use other store because cookie store is not secure. + store := sessions.NewCookieStore([]byte("secret123")) + m.Use(sessions.Sessions("my_session", store)) + // Routers. m.Get("/", routers.Dashboard) m.Any("/login", user.SignIn) |