Skip to content

Commit e8c4abb

Browse files
committed
lh update
1 parent 6463dfd commit e8c4abb

File tree

4 files changed

+70
-4
lines changed

4 files changed

+70
-4
lines changed
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
namespace LearningHub.Nhs.OpenApi.Services.Interface.Services
2+
{
3+
using System.Threading.Tasks;
4+
5+
/// <summary>
6+
/// The UserGroupService interface.
7+
/// </summary>
8+
public interface IUserGroupService
9+
{
10+
/// <summary>
11+
/// The GetRoleUserGroupDetailAsync.
12+
/// </summary>
13+
/// <returns>The <see cref="Task{List}"/>.</returns>
14+
Task<bool> UserHasCatalogueContributionPermission(int userId);
15+
}
16+
}

OpenAPI/LearningHub.Nhs.OpenApi.Services/Services/NavigationPermissionService.cs

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,17 @@
1212
public class NavigationPermissionService : INavigationPermissionService
1313
{
1414
private readonly IResourceService resourceService;
15+
private readonly IUserGroupService userGroupService;
1516

1617
/// <summary>
1718
/// Initializes a new instance of the <see cref="NavigationPermissionService"/> class.
1819
/// </summary>
1920
/// <param name="resourceService">Resource service.</param>
20-
public NavigationPermissionService(IResourceService resourceService)
21+
/// <param name="userGroupService">userGroup service.</param>
22+
public NavigationPermissionService(IResourceService resourceService, IUserGroupService userGroupService)
2123
{
2224
this.resourceService = resourceService;
25+
this.userGroupService = userGroupService;
2326
}
2427

2528
/// <summary>
@@ -53,7 +56,7 @@ public async Task<NavigationModel> GetNavigationModelAsync(IPrincipal user, bool
5356
}
5457
else if (user.IsInRole("BlueUser"))
5558
{
56-
return AuthenticatedBlueUser(controllerName);
59+
return await AuthenticatedBlueUser(controllerName, user.Identity.GetCurrentUserId());
5760
}
5861
else
5962
{
@@ -114,12 +117,13 @@ private NavigationModel AuthenticatedAdministrator(string controllerName)
114117
/// The AuthenticatedBlueUser.
115118
/// </summary>
116119
/// <param name="controllerName">The controller name.</param>
120+
/// <param name="userId">The userId.</param>
117121
/// <returns>The <see cref="NavigationModel"/>.</returns>
118-
private NavigationModel AuthenticatedBlueUser(string controllerName)
122+
private async Task<NavigationModel> AuthenticatedBlueUser(string controllerName, int userId)
119123
{
120124
return new NavigationModel()
121125
{
122-
ShowMyContributions = true,
126+
ShowMyContributions = await this.userGroupService.UserHasCatalogueContributionPermission(userId),
123127
ShowMyLearning = true,
124128
ShowMyBookmarks = true,
125129
ShowSearch = controllerName != "search" && controllerName != string.Empty,
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
namespace LearningHub.Nhs.OpenApi.Services.Services
2+
{
3+
using System.Collections.Generic;
4+
using System.Linq;
5+
using System.Threading.Tasks;
6+
using LearningHub.Nhs.Caching;
7+
using LearningHub.Nhs.Models.Enums;
8+
using LearningHub.Nhs.Models.Extensions;
9+
using LearningHub.Nhs.Models.User;
10+
using LearningHub.Nhs.OpenApi.Repositories.Interface.Repositories;
11+
using LearningHub.Nhs.OpenApi.Services.Interface.Services;
12+
using Microsoft.AspNetCore.Http;
13+
14+
/// <summary>
15+
/// The user group service.
16+
/// </summary>
17+
public class UserGroupService : IUserGroupService
18+
{
19+
20+
private readonly IRoleUserGroupRepository roleUserGroupRepository;
21+
22+
/// <summary>
23+
/// Initializes a new instance of the <see cref="UserGroupService"/> class.
24+
/// </summary>
25+
/// <param name="roleUserGroupRepository">roleUserGroupRepository.</param>
26+
public UserGroupService(IRoleUserGroupRepository roleUserGroupRepository)
27+
{
28+
this.roleUserGroupRepository = roleUserGroupRepository;
29+
}
30+
31+
32+
/// <inheritdoc />
33+
public async Task<bool> UserHasCatalogueContributionPermission(int userId)
34+
{
35+
var userRoleGroups = await this.roleUserGroupRepository.GetRoleUserGroupViewModelsByUserId(userId);
36+
if (userRoleGroups != null && userRoleGroups.Any(r => r.RoleEnum == RoleEnum.LocalAdmin || r.RoleEnum == RoleEnum.Editor))
37+
{
38+
return true;
39+
}
40+
41+
return false;
42+
}
43+
44+
}
45+
}

OpenAPI/LearningHub.Nhs.OpenApi.Services/Startup.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ public static void AddServices(this IServiceCollection services)
3131
services.AddScoped<INavigationPermissionService, NavigationPermissionService>();
3232
services.AddScoped<INotificationService, NotificationService>();
3333
services.AddScoped<IUserNotificationService, UserNotificationService>();
34+
services.AddScoped<IUserGroupService, UserGroupService>();
3435

3536
services.AddScoped<IActivityService, ActivityService>();
3637
services.AddScoped<IFileTypeService, FileTypeService>();

0 commit comments

Comments
 (0)