diff options
Diffstat (limited to 'pkg/app/handler/auth/user.go')
-rw-r--r-- | pkg/app/handler/auth/user.go | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/pkg/app/handler/auth/user.go b/pkg/app/handler/auth/user.go new file mode 100644 index 0000000..9761d80 --- /dev/null +++ b/pkg/app/handler/auth/user.go @@ -0,0 +1,35 @@ +package auth + +import ( + "go-gentoo/pkg/config" + "go-gentoo/pkg/models" + "net/http" +) + +func IsValidUser(w http.ResponseWriter, r *http.Request) bool { + session, err := CookieStore.Get(r, config.SessionStoreKey()) + + if err != nil { + return false + } + + if token, ok := session.Values["idToken"].(string); ok { + _, err = Verifier.Verify(Ctx, token) + return err == nil + } + + return false +} + +func GetUser(w http.ResponseWriter, r *http.Request) *models.User { + session, err := CookieStore.Get(r, config.SessionStoreKey()) + if err != nil { + return nil + } + user := session.Values["user"].(*models.User) + err = user.ComputeProjects() + if err != nil { + return nil + } + return user +} |