@@ -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