From 90223dcfc4c767c0d68acecf455cdaa5a5d141ee Mon Sep 17 00:00:00 2001 From: Unknown Date: Thu, 6 Mar 2014 13:18:19 -0500 Subject: [PATCH] Bug fix --- routers/user/user.go | 28 +++++++++++++++++++++++----- templates/base/navbar.tmpl | 4 ++-- templates/user/profile.tmpl | 4 ++-- templates/user/signup.tmpl | 2 +- web.go | 1 + 5 files changed, 29 insertions(+), 10 deletions(-) diff --git a/routers/user/user.go b/routers/user/user.go index 2e6cb3d59..90494b283 100644 --- a/routers/user/user.go +++ b/routers/user/user.go @@ -24,20 +24,26 @@ func Dashboard(r render.Render, data base.TmplData, session sessions.Session) { r.Redirect("/") return } + data["IsSigned"] = true data["SignedUserId"] = SignedInId(session) data["SignedUserName"] = SignedInName(session) data["PageIsUserDashboard"] = true + data["Avatar"] = SignedInUser(session).Avatar data["Title"] = "Dashboard" r.HTML(200, "user/dashboard", data) } -func Profile(r render.Render) { - r.HTML(200, "user/profile", map[string]interface{}{ - "Title": "Username", - }) - return +func Profile(r render.Render, data base.TmplData, session sessions.Session) { + data["Title"] = "Profile" + + data["IsSigned"] = IsSignedIn(session) + // TODO: Need to check view self or others. + user := SignedInUser(session) + data["Avatar"] = user.Avatar + data["Username"] = user.Name + r.HTML(200, "user/profile", data) } func IsSignedIn(session sessions.Session) bool { @@ -74,6 +80,7 @@ func SignedInUser(session sessions.Session) *models.User { user, err := models.GetUserById(id) if err != nil { + log.Error("user.SignedInUser: %v", err) return nil } return user @@ -120,6 +127,17 @@ func SignIn(form auth.LogInForm, data base.TmplData, req *http.Request, r render r.Redirect("/") } +func SignOut(r render.Render, session sessions.Session) { + if !IsSignedIn(session) { + r.Redirect("/") + return + } + + session.Delete("userId") + session.Delete("userName") + r.Redirect("/") +} + func SignUp(form auth.RegisterForm, data base.TmplData, req *http.Request, r render.Render) { data["Title"] = "Sign Up" data["PageIsSignUp"] = true diff --git a/templates/base/navbar.tmpl b/templates/base/navbar.tmpl index a52ce6c03..323759ba1 100644 --- a/templates/base/navbar.tmpl +++ b/templates/base/navbar.tmpl @@ -5,9 +5,9 @@ Dashboard Explore Help{{if .IsSigned}} - + - user-avatar + user-avatar diff --git a/templates/user/profile.tmpl b/templates/user/profile.tmpl index e7056aa86..09fe4ae5b 100644 --- a/templates/user/profile.tmpl +++ b/templates/user/profile.tmpl @@ -4,9 +4,9 @@
- user-avatar + user-avatar - Username + {{.Username}}
    diff --git a/templates/user/signup.tmpl b/templates/user/signup.tmpl index 03e5bd344..cfbf27fd9 100644 --- a/templates/user/signup.tmpl +++ b/templates/user/signup.tmpl @@ -28,7 +28,7 @@
    - +
    diff --git a/web.go b/web.go index 6f8b902a6..47b9b14de 100644 --- a/web.go +++ b/web.go @@ -59,6 +59,7 @@ func runWeb(*cli.Context) { // Routers. m.Get("/", routers.Home) m.Any("/user/login", binding.BindIgnErr(auth.LogInForm{}), user.SignIn) + m.Any("/user/logout", user.SignOut) m.Any("/user/sign_up", binding.BindIgnErr(auth.RegisterForm{}), user.SignUp) m.Get("/user/profile", user.Profile) // should be /username