diff --git a/LearningHub.Nhs.WebUI/Controllers/ContributeController.cs b/LearningHub.Nhs.WebUI/Controllers/ContributeController.cs index fc3b7f76..27ae615c 100644 --- a/LearningHub.Nhs.WebUI/Controllers/ContributeController.cs +++ b/LearningHub.Nhs.WebUI/Controllers/ContributeController.cs @@ -28,6 +28,7 @@ public class ContributeController : BaseController private readonly IFileService fileService; private readonly IResourceService resourceService; private readonly IUserService userService; + private readonly IUserGroupService userGroupService; /// /// Initializes a new instance of the class. @@ -37,6 +38,7 @@ public class ContributeController : BaseController /// Logger. /// Settings. /// User service. + /// userGroupService. /// File service. /// Resource service. /// Azure media service. @@ -48,6 +50,7 @@ public ContributeController( ILogger logger, IOptions settings, IUserService userService, + IUserGroupService userGroupService, IFileService fileService, IResourceService resourceService, IAzureMediaService azureMediaService, @@ -58,6 +61,7 @@ public ContributeController( this.authConfig = authConfig; this.userService = userService; + this.userGroupService = userGroupService; this.fileService = fileService; this.resourceService = resourceService; this.azureMediaService = azureMediaService; @@ -167,7 +171,8 @@ public async Task CreateVersion(int resourceId) [Route("my-contributions/{selectedTab}/{catalogueId}/{nodeId}")] public async Task MyContributions() { - if ((this.User.IsInRole("ReadOnly") || this.User.IsInRole("BasicUser")) && !await this.resourceService.UserHasPublishedResourcesAsync()) + bool catalogueContributionPermission = await this.userGroupService.UserHasCatalogueContributionPermission(); + if ((this.User.IsInRole("ReadOnly") || this.User.IsInRole("BasicUser")) || (!catalogueContributionPermission && (!await this.resourceService.UserHasPublishedResourcesAsync()))) { return this.RedirectToAction("AccessDenied", "Home"); }