authz.go 713 B

12345678910111213141516171819202122232425262728
  1. package apitest
  2. import (
  3. "context"
  4. "net/http"
  5. "testing"
  6. "github.com/porter-dev/porter/api/server/authz"
  7. "github.com/porter-dev/porter/api/server/authz/policy"
  8. "github.com/porter-dev/porter/api/types"
  9. "github.com/porter-dev/porter/internal/models"
  10. )
  11. func WithProject(t *testing.T, req *http.Request, proj *models.Project) *http.Request {
  12. ctx := req.Context()
  13. ctx = context.WithValue(ctx, types.ProjectScope, proj)
  14. req = req.WithContext(ctx)
  15. return req
  16. }
  17. func WithRequestScopes(t *testing.T, req *http.Request, reqScopes map[types.PermissionScope]*policy.RequestAction) *http.Request {
  18. ctx := req.Context()
  19. ctx = authz.NewRequestScopeCtx(ctx, reqScopes)
  20. req = req.WithContext(ctx)
  21. return req
  22. }