moved middleware auth to auth package

This commit is contained in:
2026-01-24 14:10:34 -07:00
parent a6267ac189
commit 8438c26d88
6 changed files with 32 additions and 28 deletions
+15 -12
View File
@@ -4,17 +4,20 @@ import (
"errors" "errors"
"fmt" "fmt"
"net/http" "net/http"
"ruben/inventory2/internal/consts"
"ruben/inventory2/internal/domains/accounts"
"ruben/inventory2/internal/logging"
"ruben/inventory2/internal/server/middleware"
"ruben/inventory2/internal/server/response"
"ruben/inventory2/internal/server/sse"
"strconv" "strconv"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"ruben/inventory2/internal/consts"
"ruben/inventory2/internal/domains/accounts"
"ruben/inventory2/internal/logging"
"ruben/inventory2/internal/server/auth"
"ruben/inventory2/internal/server/response"
"ruben/inventory2/internal/server/sse"
) )
// TODO: use the auth middleware better?
type accountSubrouter struct { type accountSubrouter struct {
log *logging.Logger log *logging.Logger
accts *accounts.Store accts *accounts.Store
@@ -50,7 +53,7 @@ func (s *accountSubrouter) createAccount(c *gin.Context) (response.Response, err
return nil, response.BadRequest().Msg("no email provided") return nil, response.BadRequest().Msg("no email provided")
} }
userID := middleware.GetIdentity(ctx).User.UserID userID := auth.GetIdentity(ctx).User.UserID
acct, err := s.accts.CreateAccount(ctx, userID, email) acct, err := s.accts.CreateAccount(ctx, userID, email)
if err != nil { if err != nil {
@@ -68,7 +71,7 @@ func (s *accountSubrouter) createAccount(c *gin.Context) (response.Response, err
func (s *accountSubrouter) createSyncGroupListingDraft(c *gin.Context) (response.Response, error) { func (s *accountSubrouter) createSyncGroupListingDraft(c *gin.Context) (response.Response, error) {
r := c.Request r := c.Request
ctx := r.Context() ctx := r.Context()
acctID := middleware.GetIdentity(ctx).Account.AccountID acctID := auth.GetIdentity(ctx).Account.AccountID
if _, err := s.accts.CreateSyncGroupListingDraft(ctx, acctID); err != nil { if _, err := s.accts.CreateSyncGroupListingDraft(ctx, acctID); err != nil {
return nil, response.Errorf("failed to create new listing draft: %w", err) return nil, response.Errorf("failed to create new listing draft: %w", err)
@@ -86,7 +89,7 @@ func (s *accountSubrouter) createSyncGroupListingDraft(c *gin.Context) (response
func (s *accountSubrouter) setShopInSyncGroupListingDraft(c *gin.Context) (response.Response, error) { func (s *accountSubrouter) setShopInSyncGroupListingDraft(c *gin.Context) (response.Response, error) {
r := c.Request r := c.Request
ctx := r.Context() ctx := r.Context()
acctID := middleware.GetIdentity(ctx).Account.AccountID acctID := auth.GetIdentity(ctx).Account.AccountID
orderIndex, err := getOrderIndexForSyncGroupListingDraftFromPath(c) orderIndex, err := getOrderIndexForSyncGroupListingDraftFromPath(c)
if err != nil { if err != nil {
@@ -120,7 +123,7 @@ func (s *accountSubrouter) setShopInSyncGroupListingDraft(c *gin.Context) (respo
func (s *accountSubrouter) setListingInSyncGroupListingDraft(c *gin.Context) (response.Response, error) { func (s *accountSubrouter) setListingInSyncGroupListingDraft(c *gin.Context) (response.Response, error) {
r := c.Request r := c.Request
ctx := r.Context() ctx := r.Context()
acctID := middleware.GetIdentity(ctx).Account.AccountID acctID := auth.GetIdentity(ctx).Account.AccountID
orderIndex, err := getOrderIndexForSyncGroupListingDraftFromPath(c) orderIndex, err := getOrderIndexForSyncGroupListingDraftFromPath(c)
if err != nil { if err != nil {
@@ -147,7 +150,7 @@ func (s *accountSubrouter) setListingInSyncGroupListingDraft(c *gin.Context) (re
func (s *accountSubrouter) deleteSyncGroupListingDraft(c *gin.Context) (response.Response, error) { func (s *accountSubrouter) deleteSyncGroupListingDraft(c *gin.Context) (response.Response, error) {
r := c.Request r := c.Request
ctx := r.Context() ctx := r.Context()
acctID := middleware.GetIdentity(ctx).Account.AccountID acctID := auth.GetIdentity(ctx).Account.AccountID
orderIndex, err := getOrderIndexForSyncGroupListingDraftFromPath(c) orderIndex, err := getOrderIndexForSyncGroupListingDraftFromPath(c)
if err != nil { if err != nil {
@@ -168,7 +171,7 @@ func (s *accountSubrouter) deleteSyncGroupListingDraft(c *gin.Context) (response
func (s *accountSubrouter) saveNewSyncGroup(c *gin.Context) (response.Response, error) { func (s *accountSubrouter) saveNewSyncGroup(c *gin.Context) (response.Response, error) {
r := c.Request r := c.Request
ctx := r.Context() ctx := r.Context()
acctID := middleware.GetIdentity(ctx).Account.AccountID acctID := auth.GetIdentity(ctx).Account.AccountID
grp, err := s.accts.SaveNewSyncGroup(ctx, acctID) grp, err := s.accts.SaveNewSyncGroup(ctx, acctID)
if err != nil { if err != nil {
+2 -2
View File
@@ -12,14 +12,14 @@ import (
sse_api "ruben/inventory2/internal/server/api/sse" sse_api "ruben/inventory2/internal/server/api/sse"
"ruben/inventory2/internal/server/api/webhooks" "ruben/inventory2/internal/server/api/webhooks"
etsy_webhooks "ruben/inventory2/internal/server/api/webhooks/etsy" etsy_webhooks "ruben/inventory2/internal/server/api/webhooks/etsy"
"ruben/inventory2/internal/server/middleware" "ruben/inventory2/internal/server/auth"
"ruben/inventory2/internal/server/sse" "ruben/inventory2/internal/server/sse"
) )
func Routes( func Routes(
r *gin.RouterGroup, r *gin.RouterGroup,
logger *logging.Logger, logger *logging.Logger,
auth *middleware.Auth, auth *auth.Auth,
sq *sse.Queue, sq *sse.Queue,
accts *accounts.Store, accts *accounts.Store,
unp *sse.UpdateNotificationPublisher, unp *sse.UpdateNotificationPublisher,
+6 -5
View File
@@ -2,13 +2,14 @@ package sse
import ( import (
"context" "context"
"ruben/inventory2/internal/logging"
"ruben/inventory2/internal/server/middleware"
"ruben/inventory2/internal/server/response"
"ruben/inventory2/internal/server/sse"
"sync" "sync"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"ruben/inventory2/internal/logging"
"ruben/inventory2/internal/server/auth"
"ruben/inventory2/internal/server/response"
"ruben/inventory2/internal/server/sse"
) )
const ( const (
@@ -40,7 +41,7 @@ func Routes(
} }
func (r *sseRouter) serveEvents(c *gin.Context) (response.Response, error) { func (r *sseRouter) serveEvents(c *gin.Context) (response.Response, error) {
acct := middleware.GetIdentity(c).Account acct := auth.GetIdentity(c).Account
acctID := acct.AccountID acctID := acct.AccountID
userID := acct.UserID userID := acct.UserID
email := acct.Email email := acct.Email
@@ -1,4 +1,4 @@
package middleware package auth
import ( import (
"bytes" "bytes"
+5 -5
View File
@@ -14,7 +14,7 @@ import (
"ruben/inventory2/internal/domains/raw_events" "ruben/inventory2/internal/domains/raw_events"
"ruben/inventory2/internal/logging" "ruben/inventory2/internal/logging"
"ruben/inventory2/internal/server/api" "ruben/inventory2/internal/server/api"
"ruben/inventory2/internal/server/middleware" "ruben/inventory2/internal/server/auth"
"ruben/inventory2/internal/server/response" "ruben/inventory2/internal/server/response"
"ruben/inventory2/internal/server/sse" "ruben/inventory2/internal/server/sse"
"ruben/inventory2/internal/server/ui" "ruben/inventory2/internal/server/ui"
@@ -31,11 +31,11 @@ func NewRouter(
rawEvents *raw_events.Store, rawEvents *raw_events.Store,
accts *accounts.Store, accts *accounts.Store,
etsy *etsy_platform.Platform, etsy *etsy_platform.Platform,
auth *authentication.Authenticator, authr *authentication.Authenticator,
) *Router { ) *Router {
authM := middleware.NewAuth( authM := auth.NewAuth(
logger.WithGroup("auth-middleware"), logger.WithGroup("auth-middleware"),
auth, authr,
accts, accts,
) )
@@ -82,7 +82,7 @@ func NewRouter(
unp := sq.NewUpdateNotificationPublisher( unp := sq.NewUpdateNotificationPublisher(
logger.WithGroup("update.notification.publisher"), logger.WithGroup("update.notification.publisher"),
func(c *gin.Context) int64 { func(c *gin.Context) int64 {
return middleware.GetIdentity(c).Account.AccountID return auth.GetIdentity(c).Account.AccountID
}, },
).Trim("/api") ).Trim("/api")
+3 -3
View File
@@ -14,7 +14,7 @@ import (
etsy_platform "ruben/inventory2/internal/domains/platforms/etsy" etsy_platform "ruben/inventory2/internal/domains/platforms/etsy"
"ruben/inventory2/internal/domains/raw_events" "ruben/inventory2/internal/domains/raw_events"
"ruben/inventory2/internal/logging" "ruben/inventory2/internal/logging"
"ruben/inventory2/internal/server/middleware" "ruben/inventory2/internal/server/auth"
"ruben/inventory2/internal/server/response" "ruben/inventory2/internal/server/response"
"github.com/angelbeltran/templater" "github.com/angelbeltran/templater"
@@ -124,7 +124,7 @@ func (s *webpageRouter) serveTemplate(c *gin.Context) (response.Response, error)
// auth tooling // auth tooling
"Identity", "Identity",
middleware.GetIdentity(ctx), auth.GetIdentity(ctx),
"Auth", "Auth",
newTemplateAuthenticator(r), newTemplateAuthenticator(r),
} }
@@ -218,7 +218,7 @@ func authorizeByMatchingAccountID(r *http.Request, acctIDPathPosition int) error
Msgf("account does not exist: %s", part) Msgf("account does not exist: %s", part)
} }
id := middleware.GetIdentity(r.Context()) id := auth.GetIdentity(r.Context())
if id.Account == nil || id.Account.AccountID != acctID { if id.Account == nil || id.Account.AccountID != acctID {
return response.Unauthorized(). return response.Unauthorized().
Msgf("user does not have access to account %d", acctID) Msgf("user does not have access to account %d", acctID)