(FIX): Fixed the auth issue, at least on the profile page.

This commit is contained in:
Hayden Hargreaves 2025-07-27 12:47:25 -07:00
parent 0bfb2e6e86
commit a28f8edd54
3 changed files with 12 additions and 6 deletions

View File

@ -150,6 +150,12 @@ func ProfilePage(ctx *gin.Context) {
// Else, get the user data // Else, get the user data
deps := ctx.MustGet("deps").(*domainServer.InjectedDependencies) deps := ctx.MustGet("deps").(*domainServer.InjectedDependencies)
user := deps.UserService.GetAuthenicatedUser(ctx) user := deps.UserService.GetAuthenicatedUser(ctx)
if user == nil {
// User is failing to be found, direct to the login page
ctx.Redirect(http.StatusSeeOther, domainServer.WEB_LOGIN)
return
}
recipes, err := deps.RecipeService.GetUserRecipes(user.Id) recipes, err := deps.RecipeService.GetUserRecipes(user.Id)
if err != nil { if err != nil {
ctx.JSON(http.StatusInternalServerError, gin.H{ ctx.JSON(http.StatusInternalServerError, gin.H{
@ -179,7 +185,7 @@ func ProfilePage(ctx *gin.Context) {
} }
title := "Potion - Profile" title := "Potion - Profile"
page := pages.ProfilePage(user, recipes, favorites, engagements) page := pages.ProfilePage(*user, recipes, favorites, engagements)
ctx.HTML(http.StatusOK, "", layouts.AppLayout(title, page)) ctx.HTML(http.StatusOK, "", layouts.AppLayout(title, page))
} }

View File

@ -25,19 +25,19 @@ func NewUserService(userRepository domain.UserRepository) domain.UserService {
// user is actually logged in, if not, a blank user will be returned. To ensure success, call the // user is actually logged in, if not, a blank user will be returned. To ensure success, call the
// `domain.IsLoggedIn()` function first to ensure the user is logged in. If that passes, this // `domain.IsLoggedIn()` function first to ensure the user is logged in. If that passes, this
// function should yield a result. // function should yield a result.
func (s *UserService) GetAuthenicatedUser(ctx *gin.Context) domain.User { func (s *UserService) GetAuthenicatedUser(ctx *gin.Context) *domain.User {
val, ok := ctx.Get("userId") val, ok := ctx.Get("userId")
if !ok { if !ok {
return domain.User{} return nil
} }
id := val.(int) id := val.(int)
user, err := s.userRepository.GetUser(id) user, err := s.userRepository.GetUser(id)
if err != nil { if err != nil {
return domain.User{} return nil
} }
return *user return user
} }
// GetUser will get a user from the database via its ID. This is not related to the Google ID in // GetUser will get a user from the database via its ID. This is not related to the Google ID in

View File

@ -3,6 +3,6 @@ package domain
import "github.com/gin-gonic/gin" import "github.com/gin-gonic/gin"
type UserService interface { type UserService interface {
GetAuthenicatedUser(ctx *gin.Context) User GetAuthenicatedUser(ctx *gin.Context) *User
GetUser(id int) (*User, error) GetUser(id int) (*User, error)
} }