Add organization to all authorized endpoints

We use it in filtering quite a bit.
This commit is contained in:
Eli Ribble 2026-03-06 22:03:24 +00:00
parent e1bcbf79b1
commit 502a4d15df
No known key found for this signature in database
6 changed files with 23 additions and 43 deletions

View file

@ -24,7 +24,7 @@ import (
"github.com/rs/zerolog/log"
)
func apiAudioPost(w http.ResponseWriter, r *http.Request, u *models.User) {
func apiAudioPost(w http.ResponseWriter, r *http.Request, org *models.Organization, u *models.User) {
id := chi.URLParam(r, "uuid")
noteUUID, err := uuid.Parse(id)
if err != nil {
@ -61,7 +61,7 @@ func apiAudioPost(w http.ResponseWriter, r *http.Request, u *models.User) {
w.WriteHeader(http.StatusAccepted)
}
func apiAudioContentPost(w http.ResponseWriter, r *http.Request, u *models.User) {
func apiAudioContentPost(w http.ResponseWriter, r *http.Request, org *models.Organization, u *models.User) {
u_str := chi.URLParam(r, "uuid")
audioUUID, err := uuid.Parse(u_str)
if err != nil {
@ -78,7 +78,7 @@ func apiAudioContentPost(w http.ResponseWriter, r *http.Request, u *models.User)
w.WriteHeader(http.StatusOK)
}
func handleClientIos(w http.ResponseWriter, r *http.Request, u *models.User) {
func handleClientIos(w http.ResponseWriter, r *http.Request, org *models.Organization, u *models.User) {
var sinceStr string
err := r.ParseForm()
if err != nil {
@ -121,7 +121,7 @@ func handleClientIos(w http.ResponseWriter, r *http.Request, u *models.User) {
}
}
func apiImagePost(w http.ResponseWriter, r *http.Request, u *models.User) {
func apiImagePost(w http.ResponseWriter, r *http.Request, org *models.Organization, u *models.User) {
id := chi.URLParam(r, "uuid")
noteUUID, err := uuid.Parse(id)
if err != nil {
@ -156,7 +156,7 @@ func apiImagePost(w http.ResponseWriter, r *http.Request, u *models.User) {
w.WriteHeader(http.StatusAccepted)
}
func apiImageContentPost(w http.ResponseWriter, r *http.Request, u *models.User) {
func apiImageContentPost(w http.ResponseWriter, r *http.Request, org *models.Organization, u *models.User) {
u_str := chi.URLParam(r, "uuid")
imageUUID, err := uuid.Parse(u_str)
if err != nil {
@ -173,7 +173,7 @@ func apiImageContentPost(w http.ResponseWriter, r *http.Request, u *models.User)
fmt.Fprintf(w, "PNG uploaded successfully")
}
func apiMosquitoSource(w http.ResponseWriter, r *http.Request, u *models.User) {
func apiMosquitoSource(w http.ResponseWriter, r *http.Request, org *models.Organization, u *models.User) {
bounds, err := parseBounds(r)
if err != nil {
render.Render(w, r, errRender(err))
@ -198,7 +198,7 @@ func apiMosquitoSource(w http.ResponseWriter, r *http.Request, u *models.User) {
}
}
func apiTrapData(w http.ResponseWriter, r *http.Request, u *models.User) {
func apiTrapData(w http.ResponseWriter, r *http.Request, org *models.Organization, u *models.User) {
bounds, err := parseBounds(r)
if err != nil {
render.Render(w, r, errRender(err))
@ -223,7 +223,7 @@ func apiTrapData(w http.ResponseWriter, r *http.Request, u *models.User) {
}
}
func apiServiceRequest(w http.ResponseWriter, r *http.Request, u *models.User) {
func apiServiceRequest(w http.ResponseWriter, r *http.Request, org *models.Organization, u *models.User) {
bounds, err := parseBounds(r)
if err != nil {
render.Render(w, r, errRender(err))

View file

@ -37,7 +37,7 @@ type ErrorAPI struct {
}
func authenticatedHandlerJSON[T any](f handlerFunctionGet[T]) http.Handler {
return auth.NewEnsureAuth(func(w http.ResponseWriter, r *http.Request, u *models.User) {
return auth.NewEnsureAuth(func(w http.ResponseWriter, r *http.Request, org *models.Organization, u *models.User) {
ctx := r.Context()
org, err := u.Organization().One(ctx, db.PGInstance.BobDB)
if err != nil {
@ -82,7 +82,7 @@ func authenticatedHandlerJSON[T any](f handlerFunctionGet[T]) http.Handler {
type handlerFunctionPost[ReqType any, ResponseType any] func(context.Context, *http.Request, *models.Organization, *models.User, ReqType) (ResponseType, *nhttp.ErrorWithStatus)
func authenticatedHandlerJSONPost[ReqType any, ResponseType any](f handlerFunctionPost[ReqType, ResponseType]) http.Handler {
return auth.NewEnsureAuth(func(w http.ResponseWriter, r *http.Request, u *models.User) {
return auth.NewEnsureAuth(func(w http.ResponseWriter, r *http.Request, org *models.Organization, u *models.User) {
w.Header().Set("Content-Type", "application/json")
var req ReqType
body, err := io.ReadAll(r.Body)
@ -96,11 +96,6 @@ func authenticatedHandlerJSONPost[ReqType any, ResponseType any](f handlerFuncti
return
}
ctx := r.Context()
org, err := u.Organization().One(ctx, db.PGInstance.BobDB)
if err != nil {
respondError(w, http.StatusInternalServerError, "Failed to get org: %w", err)
return
}
response, e := f(ctx, r, org, u, req)
if e != nil {
http.Error(w, e.Error(), e.Status)