Allow access requests before NDA signing
ENG-646: requesting private resources must not hit the NDA gate; keep requireCompletedNDA on protected exports only. Signed-off-by: Émile Ré <emile@probo.com>
This commit is contained in:
@@ -976,10 +976,6 @@ func (r *mutationResolver) RequestDocumentAccess(ctx context.Context, input type
|
||||
return nil, gqlutils.Unauthenticatedf(ctx, "authentication is required to request access")
|
||||
}
|
||||
|
||||
if err := r.requireCompletedNDA(ctx); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if _, err := visitorService.RequestPortalAccess(
|
||||
ctx, scope,
|
||||
&visitor.PortalAccessRequest{
|
||||
@@ -1029,10 +1025,6 @@ func (r *mutationResolver) RequestReportAccess(ctx context.Context, input types.
|
||||
return nil, gqlutils.Unauthenticatedf(ctx, "authentication is required to request access")
|
||||
}
|
||||
|
||||
if err := r.requireCompletedNDA(ctx); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if _, err := visitorService.RequestPortalAccess(
|
||||
ctx, scope,
|
||||
&visitor.PortalAccessRequest{
|
||||
@@ -1082,10 +1074,6 @@ func (r *mutationResolver) RequestCompliancePortalFileAccess(ctx context.Context
|
||||
return nil, gqlutils.Unauthenticatedf(ctx, "authentication is required to request access")
|
||||
}
|
||||
|
||||
if err := r.requireCompletedNDA(ctx); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if _, err := visitorService.RequestPortalAccess(
|
||||
ctx, scope,
|
||||
&visitor.PortalAccessRequest{
|
||||
@@ -1117,10 +1105,6 @@ func (r *mutationResolver) RequestAccesses(ctx context.Context, input types.Requ
|
||||
return nil, gqlutils.Unauthenticatedf(ctx, "authentication is required to request access")
|
||||
}
|
||||
|
||||
if err := r.requireCompletedNDA(ctx); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if len(input.DocumentIds) == 0 && len(input.ReportIds) == 0 && len(input.CompliancePortalFileIds) == 0 {
|
||||
return nil, gqlutils.Invalidf(ctx, "at least one document, report, or file id is required")
|
||||
}
|
||||
|
||||
@@ -32,7 +32,8 @@ import (
|
||||
|
||||
// requireCompletedNDA enforces portal NDA completion for the signed-in identity.
|
||||
// No-ops when there is no viewer or the portal membership has no NDA signature.
|
||||
// Callers own authentication and PUBLIC-resource skips.
|
||||
// Call from protected (non-PUBLIC) export resolvers after authentication.
|
||||
// Access-request mutations must not call this — requesting is allowed before signing.
|
||||
func (r *Resolver) requireCompletedNDA(ctx context.Context) error {
|
||||
identity := authn.IdentityFromContext(ctx)
|
||||
if identity == nil {
|
||||
|
||||
Reference in New Issue
Block a user