Browse Source

add SignedInId & SignedInUser funcs

Lunny Xiao 11 years ago
parent
commit
e878bfb80f
1 changed files with 23 additions and 6 deletions
  1. 23 6
      routers/user/user.go

+ 23 - 6
routers/user/user.go

@@ -26,14 +26,18 @@ func Profile(r render.Render) {
 }
 
 func IsSignedIn(session sessions.Session) bool {
-	id := session.Get("userId")
-	if id == nil {
-		return false
+	return SignedInId(session) > 0
+}
+
+func SignedInId(session sessions.Session) int64 {
+	userId := session.Get("userId")
+	if userId == nil {
+		return 0
 	}
-	if s, ok := id.(int64); ok && s > 0 {
-		return true
+	if s, ok := userId.(int64); ok {
+		return s
 	}
-	return false
+	return 0
 }
 
 func SignedInName(session sessions.Session) string {
@@ -47,6 +51,19 @@ func SignedInName(session sessions.Session) string {
 	return ""
 }
 
+func SignedInUser(session sessions.Session) *models.User {
+	id := SignedInId(session)
+	if id <= 0 {
+		return nil
+	}
+
+	user, err := models.GetUserById(id)
+	if err != nil {
+		return nil
+	}
+	return user
+}
+
 func SignIn(req *http.Request, r render.Render, session sessions.Session) {
 	var (
 		errString string