Skip to content

Commit 2db7358

Browse files
authored
Merge pull request #1283 from TechnologyEnhancedLearning/TD-5727-ContributeScreen-AccessDenied
TD-5727-Fix for Full user who is not a catalogue editor/admin can access My contribution page by navigating to the link directly
2 parents ef8a807 + 19d6cfc commit 2db7358

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

LearningHub.Nhs.WebUI/Controllers/ContributeController.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ public class ContributeController : BaseController
2828
private readonly IFileService fileService;
2929
private readonly IResourceService resourceService;
3030
private readonly IUserService userService;
31+
private readonly IUserGroupService userGroupService;
3132

3233
/// <summary>
3334
/// Initializes a new instance of the <see cref="ContributeController"/> class.
@@ -37,6 +38,7 @@ public class ContributeController : BaseController
3738
/// <param name="logger">Logger.</param>
3839
/// <param name="settings">Settings.</param>
3940
/// <param name="userService">User service.</param>
41+
/// <param name="userGroupService"> userGroupService.</param>
4042
/// <param name="fileService">File service.</param>
4143
/// <param name="resourceService">Resource service.</param>
4244
/// <param name="azureMediaService">Azure media service.</param>
@@ -48,6 +50,7 @@ public ContributeController(
4850
ILogger<ContributeController> logger,
4951
IOptions<Settings> settings,
5052
IUserService userService,
53+
IUserGroupService userGroupService,
5154
IFileService fileService,
5255
IResourceService resourceService,
5356
IAzureMediaService azureMediaService,
@@ -58,6 +61,7 @@ public ContributeController(
5861
this.authConfig = authConfig;
5962

6063
this.userService = userService;
64+
this.userGroupService = userGroupService;
6165
this.fileService = fileService;
6266
this.resourceService = resourceService;
6367
this.azureMediaService = azureMediaService;
@@ -167,7 +171,8 @@ public async Task<IActionResult> CreateVersion(int resourceId)
167171
[Route("my-contributions/{selectedTab}/{catalogueId}/{nodeId}")]
168172
public async Task<IActionResult> MyContributions()
169173
{
170-
if ((this.User.IsInRole("ReadOnly") || this.User.IsInRole("BasicUser")) && !await this.resourceService.UserHasPublishedResourcesAsync())
174+
bool catalogueContributionPermission = await this.userGroupService.UserHasCatalogueContributionPermission();
175+
if ((this.User.IsInRole("ReadOnly") || this.User.IsInRole("BasicUser")) || (!catalogueContributionPermission && (!await this.resourceService.UserHasPublishedResourcesAsync())))
171176
{
172177
return this.RedirectToAction("AccessDenied", "Home");
173178
}

0 commit comments

Comments
 (0)