@@ -28,6 +28,7 @@ public class ContributeController : BaseController
28
28
private readonly IFileService fileService ;
29
29
private readonly IResourceService resourceService ;
30
30
private readonly IUserService userService ;
31
+ private readonly IUserGroupService userGroupService ;
31
32
32
33
/// <summary>
33
34
/// Initializes a new instance of the <see cref="ContributeController"/> class.
@@ -37,6 +38,7 @@ public class ContributeController : BaseController
37
38
/// <param name="logger">Logger.</param>
38
39
/// <param name="settings">Settings.</param>
39
40
/// <param name="userService">User service.</param>
41
+ /// <param name="userGroupService"> userGroupService.</param>
40
42
/// <param name="fileService">File service.</param>
41
43
/// <param name="resourceService">Resource service.</param>
42
44
/// <param name="azureMediaService">Azure media service.</param>
@@ -48,6 +50,7 @@ public ContributeController(
48
50
ILogger < ContributeController > logger ,
49
51
IOptions < Settings > settings ,
50
52
IUserService userService ,
53
+ IUserGroupService userGroupService ,
51
54
IFileService fileService ,
52
55
IResourceService resourceService ,
53
56
IAzureMediaService azureMediaService ,
@@ -58,6 +61,7 @@ public ContributeController(
58
61
this . authConfig = authConfig ;
59
62
60
63
this . userService = userService ;
64
+ this . userGroupService = userGroupService ;
61
65
this . fileService = fileService ;
62
66
this . resourceService = resourceService ;
63
67
this . azureMediaService = azureMediaService ;
@@ -167,7 +171,8 @@ public async Task<IActionResult> CreateVersion(int resourceId)
167
171
[ Route ( "my-contributions/{selectedTab}/{catalogueId}/{nodeId}" ) ]
168
172
public async Task < IActionResult > MyContributions ( )
169
173
{
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 ( ) ) ) )
171
176
{
172
177
return this . RedirectToAction ( "AccessDenied" , "Home" ) ;
173
178
}
0 commit comments