session_helpers.go 1020 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. package authn
  2. import (
  3. "net/http"
  4. "github.com/porter-dev/porter/api/server/shared"
  5. "github.com/porter-dev/porter/internal/models"
  6. )
  7. func SaveUserAuthenticated(
  8. w http.ResponseWriter,
  9. r *http.Request,
  10. config *shared.Config,
  11. user *models.User,
  12. ) error {
  13. session, err := config.Store.Get(r, config.ServerConf.CookieName)
  14. if err != nil {
  15. return err
  16. }
  17. var redirect string
  18. if valR := session.Values["redirect"]; valR != nil {
  19. redirect = session.Values["redirect"].(string)
  20. }
  21. session.Values["authenticated"] = true
  22. session.Values["user_id"] = user.ID
  23. session.Values["email"] = user.Email
  24. session.Values["redirect"] = redirect
  25. return session.Save(r, w)
  26. }
  27. func SaveUserUnauthenticated(
  28. w http.ResponseWriter,
  29. r *http.Request,
  30. config *shared.Config,
  31. ) error {
  32. session, err := config.Store.Get(r, config.ServerConf.CookieName)
  33. if err != nil {
  34. return err
  35. }
  36. session.Values["authenticated"] = false
  37. session.Values["user_id"] = nil
  38. session.Values["email"] = nil
  39. return session.Save(r, w)
  40. }