aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore2
-rw-r--r--routers/repo/repo.go12
-rw-r--r--routers/user/user.go9
-rw-r--r--templates/base/navbar.tmpl1
-rw-r--r--web.go5
5 files changed, 20 insertions, 9 deletions
diff --git a/.gitignore b/.gitignore
index 7e9b941a..b0f80a57 100644
--- a/.gitignore
+++ b/.gitignore
@@ -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>
diff --git a/web.go b/web.go
index 77226f57..4fca90a2 100644
--- a/web.go
+++ b/web.go
@@ -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)