package permission

import (
	"context"
	"net/http"

	logic "gateway/internal/logic/permission"
)

// actorContext threads (tenant_id, uid) onto the request context. Bearer
// JWT middleware writes Actor first; dev mode falls back to headers so
// `make run-local` works without auth.
func actorContext(ctx context.Context, r *http.Request) context.Context {
	if _, err := logic.ActorFromContext(ctx); err == nil {
		return ctx
	}
	return logic.WithActor(ctx, r.Header.Get("X-Tenant-ID"), r.Header.Get("X-UID"))
}
