Skip to content

Commit c96dc7e

Browse files
authored
Nullcheck user in Content permission handlers (#17846)
1 parent f19409b commit c96dc7e

File tree

2 files changed

+17
-3
lines changed

2 files changed

+17
-3
lines changed

src/Umbraco.Web.BackOffice/Authorization/ContentPermissionsQueryStringHandler.cs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
using Microsoft.AspNetCore.Http;
66
using Microsoft.Extensions.Primitives;
77
using Umbraco.Cms.Core.Models;
8+
using Umbraco.Cms.Core.Models.Membership;
89
using Umbraco.Cms.Core.Security;
910
using Umbraco.Cms.Core.Services;
1011

@@ -60,9 +61,15 @@ protected override Task<bool> IsAuthorized(AuthorizationHandlerContext context,
6061
nodeId = requirement.NodeId.Value;
6162
}
6263

64+
IUser? currentUser = BackOfficeSecurityAccessor.BackOfficeSecurity?.CurrentUser;
65+
if (currentUser is null)
66+
{
67+
return Task.FromResult(false);
68+
}
69+
6370
ContentPermissions.ContentAccess permissionResult = _contentPermissions.CheckPermissions(
6471
nodeId,
65-
BackOfficeSecurityAccessor.BackOfficeSecurity?.CurrentUser,
72+
currentUser,
6673
out IContent? contentItem,
6774
new[] { requirement.PermissionToCheck });
6875

src/Umbraco.Web.BackOffice/Authorization/ContentPermissionsResourceHandler.cs

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
using Microsoft.AspNetCore.Authorization;
55
using Umbraco.Cms.Core.Models;
6+
using Umbraco.Cms.Core.Models.Membership;
67
using Umbraco.Cms.Core.Security;
78

89
namespace Umbraco.Cms.Web.BackOffice.Authorization;
@@ -34,15 +35,21 @@ public ContentPermissionsResourceHandler(
3435
protected override Task<bool> IsAuthorized(AuthorizationHandlerContext context,
3536
ContentPermissionsResourceRequirement requirement, ContentPermissionsResource resource)
3637
{
38+
IUser? currentUser = _backOfficeSecurityAccessor.BackOfficeSecurity?.CurrentUser;
39+
if (currentUser is null)
40+
{
41+
return Task.FromResult(false);
42+
}
43+
3744
ContentPermissions.ContentAccess permissionResult = resource.NodeId.HasValue
3845
? _contentPermissions.CheckPermissions(
3946
resource.NodeId.Value,
40-
_backOfficeSecurityAccessor.BackOfficeSecurity?.CurrentUser,
47+
currentUser,
4148
out IContent? _,
4249
resource.PermissionsToCheck)
4350
: _contentPermissions.CheckPermissions(
4451
resource.Content,
45-
_backOfficeSecurityAccessor.BackOfficeSecurity?.CurrentUser,
52+
currentUser,
4653
resource.PermissionsToCheck);
4754

4855
return Task.FromResult(permissionResult != ContentPermissions.ContentAccess.Denied);

0 commit comments

Comments
 (0)