Skip to content

Commit f2f817b

Browse files
authored
fix(webapi): Mask unauthorized attachment URLs in EndUser transmission endpoints (#1890)
<!--- Provide a general summary of your changes in the Title above --> ## Description EndUser transmission endpoints gives out original URLs when the user is not authorized to see them ## Related Issue(s) - #1889 ## Verification - [x] **Your** code builds clean without any errors or warnings - [x] Manual testing done (required) - [ ] Relevant automated test added (if you find this hard, leave it and we'll help out) ## Documentation - [ ] Documentation is updated (either in `docs`-directory, Altinnpedia or a separate linked PR in [altinn-studio-docs.](https://github.com/Altinn/altinn-studio-docs), if applicable)
1 parent 7d31b3b commit f2f817b

File tree

2 files changed

+18
-2
lines changed

2 files changed

+18
-2
lines changed

src/Digdir.Domain.Dialogporten.Application/Features/V1/EndUser/DialogTransmissions/Queries/Get/GetTransmissionQuery.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ public async Task<GetTransmissionResult> Handle(GetTransmissionQuery request,
8383

8484
if (dto.IsAuthorized) return dto;
8585

86-
var urls = transmission.Attachments.SelectMany(a => a.Urls).ToList();
86+
var urls = dto.Attachments.SelectMany(a => a.Urls).ToList();
8787
foreach (var url in urls)
8888
{
8989
url.Url = Constants.UnauthorizedUri;

src/Digdir.Domain.Dialogporten.Application/Features/V1/EndUser/DialogTransmissions/Queries/Search/SearchTransmissionQuery.cs

+17-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using AutoMapper;
2+
using Digdir.Domain.Dialogporten.Application.Common.Authorization;
23
using Digdir.Domain.Dialogporten.Application.Common.ReturnTypes;
34
using Digdir.Domain.Dialogporten.Application.Externals;
45
using Digdir.Domain.Dialogporten.Application.Externals.AltinnAuthorization;
@@ -68,6 +69,21 @@ public async Task<SearchTransmissionResult> Handle(SearchTransmissionQuery reque
6869
return new EntityDeleted<DialogEntity>(request.DialogId);
6970
}
7071

71-
return _mapper.Map<List<TransmissionDto>>(dialog.Transmissions);
72+
var dto = _mapper.Map<List<TransmissionDto>>(dialog.Transmissions);
73+
74+
foreach (var transmission in dto)
75+
{
76+
transmission.IsAuthorized = authorizationResult.HasReadAccessToDialogTransmission(transmission.AuthorizationAttribute);
77+
78+
if (transmission.IsAuthorized) continue;
79+
80+
var urls = transmission.Attachments.SelectMany(a => a.Urls).ToList();
81+
foreach (var url in urls)
82+
{
83+
url.Url = Constants.UnauthorizedUri;
84+
}
85+
}
86+
87+
return dto;
7288
}
7389
}

0 commit comments

Comments
 (0)