moved middleware auth to auth package
This commit is contained in:
@@ -4,17 +4,20 @@ import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"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"
|
||||
|
||||
"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 {
|
||||
log *logging.Logger
|
||||
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")
|
||||
}
|
||||
|
||||
userID := middleware.GetIdentity(ctx).User.UserID
|
||||
userID := auth.GetIdentity(ctx).User.UserID
|
||||
|
||||
acct, err := s.accts.CreateAccount(ctx, userID, email)
|
||||
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) {
|
||||
r := c.Request
|
||||
ctx := r.Context()
|
||||
acctID := middleware.GetIdentity(ctx).Account.AccountID
|
||||
acctID := auth.GetIdentity(ctx).Account.AccountID
|
||||
|
||||
if _, err := s.accts.CreateSyncGroupListingDraft(ctx, acctID); err != nil {
|
||||
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) {
|
||||
r := c.Request
|
||||
ctx := r.Context()
|
||||
acctID := middleware.GetIdentity(ctx).Account.AccountID
|
||||
acctID := auth.GetIdentity(ctx).Account.AccountID
|
||||
|
||||
orderIndex, err := getOrderIndexForSyncGroupListingDraftFromPath(c)
|
||||
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) {
|
||||
r := c.Request
|
||||
ctx := r.Context()
|
||||
acctID := middleware.GetIdentity(ctx).Account.AccountID
|
||||
acctID := auth.GetIdentity(ctx).Account.AccountID
|
||||
|
||||
orderIndex, err := getOrderIndexForSyncGroupListingDraftFromPath(c)
|
||||
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) {
|
||||
r := c.Request
|
||||
ctx := r.Context()
|
||||
acctID := middleware.GetIdentity(ctx).Account.AccountID
|
||||
acctID := auth.GetIdentity(ctx).Account.AccountID
|
||||
|
||||
orderIndex, err := getOrderIndexForSyncGroupListingDraftFromPath(c)
|
||||
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) {
|
||||
r := c.Request
|
||||
ctx := r.Context()
|
||||
acctID := middleware.GetIdentity(ctx).Account.AccountID
|
||||
acctID := auth.GetIdentity(ctx).Account.AccountID
|
||||
|
||||
grp, err := s.accts.SaveNewSyncGroup(ctx, acctID)
|
||||
if err != nil {
|
||||
|
||||
@@ -12,14 +12,14 @@ import (
|
||||
sse_api "ruben/inventory2/internal/server/api/sse"
|
||||
"ruben/inventory2/internal/server/api/webhooks"
|
||||
etsy_webhooks "ruben/inventory2/internal/server/api/webhooks/etsy"
|
||||
"ruben/inventory2/internal/server/middleware"
|
||||
"ruben/inventory2/internal/server/auth"
|
||||
"ruben/inventory2/internal/server/sse"
|
||||
)
|
||||
|
||||
func Routes(
|
||||
r *gin.RouterGroup,
|
||||
logger *logging.Logger,
|
||||
auth *middleware.Auth,
|
||||
auth *auth.Auth,
|
||||
sq *sse.Queue,
|
||||
accts *accounts.Store,
|
||||
unp *sse.UpdateNotificationPublisher,
|
||||
|
||||
@@ -2,13 +2,14 @@ package sse
|
||||
|
||||
import (
|
||||
"context"
|
||||
"ruben/inventory2/internal/logging"
|
||||
"ruben/inventory2/internal/server/middleware"
|
||||
"ruben/inventory2/internal/server/response"
|
||||
"ruben/inventory2/internal/server/sse"
|
||||
"sync"
|
||||
|
||||
"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 (
|
||||
@@ -40,7 +41,7 @@ func Routes(
|
||||
}
|
||||
|
||||
func (r *sseRouter) serveEvents(c *gin.Context) (response.Response, error) {
|
||||
acct := middleware.GetIdentity(c).Account
|
||||
acct := auth.GetIdentity(c).Account
|
||||
acctID := acct.AccountID
|
||||
userID := acct.UserID
|
||||
email := acct.Email
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package middleware
|
||||
package auth
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
@@ -14,7 +14,7 @@ import (
|
||||
"ruben/inventory2/internal/domains/raw_events"
|
||||
"ruben/inventory2/internal/logging"
|
||||
"ruben/inventory2/internal/server/api"
|
||||
"ruben/inventory2/internal/server/middleware"
|
||||
"ruben/inventory2/internal/server/auth"
|
||||
"ruben/inventory2/internal/server/response"
|
||||
"ruben/inventory2/internal/server/sse"
|
||||
"ruben/inventory2/internal/server/ui"
|
||||
@@ -31,11 +31,11 @@ func NewRouter(
|
||||
rawEvents *raw_events.Store,
|
||||
accts *accounts.Store,
|
||||
etsy *etsy_platform.Platform,
|
||||
auth *authentication.Authenticator,
|
||||
authr *authentication.Authenticator,
|
||||
) *Router {
|
||||
authM := middleware.NewAuth(
|
||||
authM := auth.NewAuth(
|
||||
logger.WithGroup("auth-middleware"),
|
||||
auth,
|
||||
authr,
|
||||
accts,
|
||||
)
|
||||
|
||||
@@ -82,7 +82,7 @@ func NewRouter(
|
||||
unp := sq.NewUpdateNotificationPublisher(
|
||||
logger.WithGroup("update.notification.publisher"),
|
||||
func(c *gin.Context) int64 {
|
||||
return middleware.GetIdentity(c).Account.AccountID
|
||||
return auth.GetIdentity(c).Account.AccountID
|
||||
},
|
||||
).Trim("/api")
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ import (
|
||||
etsy_platform "ruben/inventory2/internal/domains/platforms/etsy"
|
||||
"ruben/inventory2/internal/domains/raw_events"
|
||||
"ruben/inventory2/internal/logging"
|
||||
"ruben/inventory2/internal/server/middleware"
|
||||
"ruben/inventory2/internal/server/auth"
|
||||
"ruben/inventory2/internal/server/response"
|
||||
|
||||
"github.com/angelbeltran/templater"
|
||||
@@ -124,7 +124,7 @@ func (s *webpageRouter) serveTemplate(c *gin.Context) (response.Response, error)
|
||||
|
||||
// auth tooling
|
||||
"Identity",
|
||||
middleware.GetIdentity(ctx),
|
||||
auth.GetIdentity(ctx),
|
||||
"Auth",
|
||||
newTemplateAuthenticator(r),
|
||||
}
|
||||
@@ -218,7 +218,7 @@ func authorizeByMatchingAccountID(r *http.Request, acctIDPathPosition int) error
|
||||
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 {
|
||||
return response.Unauthorized().
|
||||
Msgf("user does not have access to account %d", acctID)
|
||||
|
||||
Reference in New Issue
Block a user