|  | @@ -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
 |