diff --git a/apps/trust/src/components/AuditRow.tsx b/apps/trust/src/components/AuditRow.tsx index 251f8539c..bd7a13a16 100644 --- a/apps/trust/src/components/AuditRow.tsx +++ b/apps/trust/src/components/AuditRow.tsx @@ -129,7 +129,27 @@ export function AuditRow(props: { audit: AuditRowFragment$key }) { {audit.framework.name} - {!viewer && ( + {audit.report && audit.report.isUserAuthorized ? ( + + ) : viewer ? ( + + ) : ( - ) : ( - - ))} ); } diff --git a/apps/trust/src/components/DocumentRow.tsx b/apps/trust/src/components/DocumentRow.tsx index bb16e8030..f302c1fb3 100644 --- a/apps/trust/src/components/DocumentRow.tsx +++ b/apps/trust/src/components/DocumentRow.tsx @@ -114,7 +114,27 @@ export function DocumentRow(props: { document: DocumentRowFragment$key }) { {document.title} - {!viewer && ( + {document.isUserAuthorized ? ( + + ) : viewer ? ( + + ) : ( - ) : ( - - ))} ); } diff --git a/apps/trust/src/components/TrustCenterFileRow.tsx b/apps/trust/src/components/TrustCenterFileRow.tsx index 9127be2b9..8fa5e69a8 100644 --- a/apps/trust/src/components/TrustCenterFileRow.tsx +++ b/apps/trust/src/components/TrustCenterFileRow.tsx @@ -118,7 +118,27 @@ export function TrustCenterFileRow(props: { {file.name} - {!viewer && ( + {file.isUserAuthorized ? ( + + ) : viewer ? ( + + ) : ( - ) : ( - - ))} ); } diff --git a/pkg/server/api/trust/v1/v1_resolver.go b/pkg/server/api/trust/v1/v1_resolver.go index e4faadac9..f30349d03 100644 --- a/pkg/server/api/trust/v1/v1_resolver.go +++ b/pkg/server/api/trust/v1/v1_resolver.go @@ -796,11 +796,6 @@ func (r *queryResolver) CurrentTrustCenter(ctx context.Context) (*types.TrustCen // IsUserAuthorized is the resolver for the isUserAuthorized field. func (r *reportResolver) IsUserAuthorized(ctx context.Context, obj *types.Report) (bool, error) { - identity := authn.IdentityFromContext(ctx) - if identity == nil { - return false, nil - } - trustService := r.TrustService(ctx, obj.ID.TenantID()) trustCenter := compliancepage.CompliancePageFromContext(ctx) @@ -815,6 +810,11 @@ func (r *reportResolver) IsUserAuthorized(ctx context.Context, obj *types.Report return true, nil } + identity := authn.IdentityFromContext(ctx) + if identity == nil { + return false, nil + } + reportAccess, err := trustService.TrustCenterAccesses.LoadReportAccess(ctx, trustCenter.ID, identity.EmailAddress, @@ -1004,11 +1004,6 @@ func (r *trustCenterResolver) TrustCenterFiles(ctx context.Context, obj *types.T // IsUserAuthorized is the resolver for the isUserAuthorized field. func (r *trustCenterFileResolver) IsUserAuthorized(ctx context.Context, obj *types.TrustCenterFile) (bool, error) { - identity := authn.IdentityFromContext(ctx) - if identity == nil { - return false, nil - } - trustService := r.TrustService(ctx, obj.ID.TenantID()) trustCenter := compliancepage.CompliancePageFromContext(ctx) @@ -1023,6 +1018,11 @@ func (r *trustCenterFileResolver) IsUserAuthorized(ctx context.Context, obj *typ return true, nil } + identity := authn.IdentityFromContext(ctx) + if identity == nil { + return false, nil + } + fileAccess, err := trustService.TrustCenterAccesses.LoadTrustCenterFileAccess(ctx, trustCenter.ID, identity.EmailAddress,