aboutsummaryrefslogtreecommitdiff
path: root/routers/user
diff options
context:
space:
mode:
authorUnknown <joe2010xtmf@163.com>2014-03-07 16:05:18 -0500
committerUnknown <joe2010xtmf@163.com>2014-03-07 16:05:18 -0500
commitba5c7ea7719abbef792e8b9897dcfadf4d54bbab (patch)
treee1986ff36562366278fd134e7ce1793193828dcb /routers/user
parent8e821c75d7432ffe7eb7d72ba479f6f68e620ad1 (diff)
Add SignInRequire and SignOutRequire middleware
Diffstat (limited to 'routers/user')
-rw-r--r--routers/user/ssh.go15
-rw-r--r--routers/user/user.go69
2 files changed, 11 insertions, 73 deletions
diff --git a/routers/user/ssh.go b/routers/user/ssh.go
index 9e9cf009..c928407d 100644
--- a/routers/user/ssh.go
+++ b/routers/user/ssh.go
@@ -9,21 +9,22 @@ import (
"net/http"
"github.com/martini-contrib/render"
+ "github.com/martini-contrib/sessions"
"github.com/gogits/gogs/models"
- "github.com/martini-contrib/sessions"
+ "github.com/gogits/gogs/modules/auth"
)
func AddPublicKey(req *http.Request, r render.Render, session sessions.Session) {
if req.Method == "GET" {
r.HTML(200, "user/publickey_add", map[string]interface{}{
"Title": "Add Public Key",
- "IsSigned": IsSignedIn(session),
+ "IsSigned": auth.IsSignedIn(session),
})
return
}
- k := &models.PublicKey{OwnerId: SignedInId(session),
+ k := &models.PublicKey{OwnerId: auth.SignedInId(session),
Name: req.FormValue("keyname"),
Content: req.FormValue("key_content"),
}
@@ -31,7 +32,7 @@ func AddPublicKey(req *http.Request, r render.Render, session sessions.Session)
if err != nil {
r.HTML(403, "status/403", map[string]interface{}{
"Title": fmt.Sprintf("%v", err),
- "IsSigned": IsSignedIn(session),
+ "IsSigned": auth.IsSignedIn(session),
})
} else {
r.HTML(200, "user/publickey_added", map[string]interface{}{})
@@ -39,11 +40,11 @@ func AddPublicKey(req *http.Request, r render.Render, session sessions.Session)
}
func ListPublicKey(req *http.Request, r render.Render, session sessions.Session) {
- keys, err := models.ListPublicKey(SignedInId(session))
+ keys, err := models.ListPublicKey(auth.SignedInId(session))
if err != nil {
r.HTML(200, "base/error", map[string]interface{}{
"Error": fmt.Sprintf("%v", err),
- "IsSigned": IsSignedIn(session),
+ "IsSigned": auth.IsSignedIn(session),
})
return
}
@@ -51,6 +52,6 @@ func ListPublicKey(req *http.Request, r render.Render, session sessions.Session)
r.HTML(200, "user/publickey_list", map[string]interface{}{
"Title": "repositories",
"Keys": keys,
- "IsSigned": IsSignedIn(session),
+ "IsSigned": auth.IsSignedIn(session),
})
}
diff --git a/routers/user/user.go b/routers/user/user.go
index 90494b28..fae376dd 100644
--- a/routers/user/user.go
+++ b/routers/user/user.go
@@ -8,7 +8,6 @@ import (
"fmt"
"net/http"
- //"github.com/martini-contrib/binding"
"github.com/martini-contrib/render"
"github.com/martini-contrib/sessions"
@@ -19,80 +18,23 @@ import (
)
func Dashboard(r render.Render, data base.TmplData, session sessions.Session) {
- if !IsSignedIn(session) {
- // todo : direct to logout
- 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"
+ data["PageIsUserDashboard"] = true
r.HTML(200, "user/dashboard", data)
}
func Profile(r render.Render, data base.TmplData, session sessions.Session) {
data["Title"] = "Profile"
- data["IsSigned"] = IsSignedIn(session)
+ data["IsSigned"] = auth.IsSignedIn(session)
// TODO: Need to check view self or others.
- user := SignedInUser(session)
+ user := auth.SignedInUser(session)
data["Avatar"] = user.Avatar
data["Username"] = user.Name
r.HTML(200, "user/profile", data)
}
-func IsSignedIn(session sessions.Session) bool {
- return SignedInId(session) > 0
-}
-
-func SignedInId(session sessions.Session) int64 {
- userId := session.Get("userId")
- if userId == nil {
- return 0
- }
- if s, ok := userId.(int64); ok {
- return s
- }
- return 0
-}
-
-func SignedInName(session sessions.Session) string {
- userName := session.Get("userName")
- if userName == nil {
- return ""
- }
- if s, ok := userName.(string); ok {
- return s
- }
- return ""
-}
-
-func SignedInUser(session sessions.Session) *models.User {
- id := SignedInId(session)
- if id <= 0 {
- return nil
- }
-
- user, err := models.GetUserById(id)
- if err != nil {
- log.Error("user.SignedInUser: %v", err)
- return nil
- }
- return user
-}
-
func SignIn(form auth.LogInForm, data base.TmplData, req *http.Request, r render.Render, session sessions.Session) {
- // if logged, do not show login page
- if IsSignedIn(session) {
- r.Redirect("/")
- return
- }
-
data["Title"] = "Log In"
if req.Method == "GET" {
@@ -128,11 +70,6 @@ func SignIn(form auth.LogInForm, data base.TmplData, req *http.Request, r render
}
func SignOut(r render.Render, session sessions.Session) {
- if !IsSignedIn(session) {
- r.Redirect("/")
- return
- }
-
session.Delete("userId")
session.Delete("userName")
r.Redirect("/")