From 55e16e9e28c749eb8ec046f1e2c5bae354124884 Mon Sep 17 00:00:00 2001 From: tidusjar Date: Tue, 9 Aug 2022 10:05:46 +0100 Subject: [PATCH] hide the username when the hide requests is set --- .../Services/RecentlyRequestedService.cs | 48 +++++++++++++++---- .../detailed-card.component.html | 2 +- .../src/app/services/requestV2.service.ts | 2 +- src/Ombi/Controllers/V2/RequestsController.cs | 3 +- 4 files changed, 43 insertions(+), 12 deletions(-) diff --git a/src/Ombi.Core/Services/RecentlyRequestedService.cs b/src/Ombi.Core/Services/RecentlyRequestedService.cs index b31272899..2c5b2f43b 100644 --- a/src/Ombi.Core/Services/RecentlyRequestedService.cs +++ b/src/Ombi.Core/Services/RecentlyRequestedService.cs @@ -1,6 +1,11 @@ using Microsoft.EntityFrameworkCore; +using Ombi.Core.Authentication; +using Ombi.Core.Engine.Interfaces; +using Ombi.Core.Helpers; using Ombi.Core.Models.Requests; +using Ombi.Core.Rule.Interfaces; using Ombi.Core.Settings; +using Ombi.Helpers; using Ombi.Settings.Settings.Models; using Ombi.Store.Entities; using Ombi.Store.Repository.Requests; @@ -10,15 +15,17 @@ using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; +using static Ombi.Core.Engine.BaseMediaEngine; namespace Ombi.Core.Services { - public class RecentlyRequestedService : IRecentlyRequestedService + public class RecentlyRequestedService : BaseEngine, IRecentlyRequestedService { private readonly IMovieRequestRepository _movieRequestRepository; private readonly ITvRequestRepository _tvRequestRepository; private readonly IMusicRequestRepository _musicRequestRepository; private readonly ISettingsService _customizationSettings; + private readonly ISettingsService _ombiSettings; private const int AmountToTake = 7; @@ -26,12 +33,17 @@ namespace Ombi.Core.Services IMovieRequestRepository movieRequestRepository, ITvRequestRepository tvRequestRepository, IMusicRequestRepository musicRequestRepository, - ISettingsService customizationSettings) + ISettingsService customizationSettings, + ISettingsService ombiSettings, + ICurrentUser user, + OmbiUserManager um, + IRuleEvaluator rules) : base(user, um, rules) { _movieRequestRepository = movieRequestRepository; _tvRequestRepository = tvRequestRepository; _musicRequestRepository = musicRequestRepository; _customizationSettings = customizationSettings; + _ombiSettings = ombiSettings; } public async Task> GetRecentlyRequested(CancellationToken cancellationToken) @@ -49,6 +61,7 @@ namespace Ombi.Core.Services recentTvRequests = recentTvRequests.Where(x => !x.Available); recentMusicRequests = recentMusicRequests.Where(x => !x.Available); } + var hideUsers = await HideFromOtherUsers(); var model = new List(); @@ -64,8 +77,8 @@ namespace Ombi.Core.Services Title = item.Title, Type = RequestType.Movie, Approved = item.Approved, - UserId = item.RequestedUserId, - Username = item.RequestedUser.UserAlias, + UserId = hideUsers.Hide ? string.Empty : item.RequestedUserId, + Username = hideUsers.Hide ? string.Empty : item.RequestedUser.UserAlias, MediaId = item.TheMovieDbId.ToString(), }); } @@ -82,8 +95,8 @@ namespace Ombi.Core.Services RequestDate = item.RequestedDate, Title = item.Title, Type = RequestType.Album, - UserId = item.RequestedUserId, - Username = item.RequestedUser.UserAlias, + UserId = hideUsers.Hide ? string.Empty : item.RequestedUserId, + Username = hideUsers.Hide ? string.Empty : item.RequestedUser.UserAlias, MediaId = item.ForeignAlbumId, }); } @@ -102,13 +115,32 @@ namespace Ombi.Core.Services TvPartiallyAvailable = partialAvailability, Title = item.ParentRequest.Title, Type = RequestType.TvShow, - UserId = item.RequestedUserId, - Username = item.RequestedUser.UserAlias, + UserId = hideUsers.Hide ? string.Empty : item.RequestedUserId, + Username = hideUsers.Hide ? string.Empty : item.RequestedUser.UserAlias, MediaId = item.ParentRequest.ExternalProviderId.ToString() }); } return model.OrderByDescending(x => x.RequestDate); } + + private async Task HideFromOtherUsers() + { + var user = await GetUser(); + if (await IsInRole(OmbiRoles.Admin) || await IsInRole(OmbiRoles.PowerUser) || user.IsSystemUser) + { + return new HideResult + { + UserId = user.Id + }; + } + var settings = await _ombiSettings.GetSettingsAsync(); + var result = new HideResult + { + Hide = settings.HideRequestsUsers, + UserId = user.Id + }; + return result; + } } } diff --git a/src/Ombi/ClientApp/src/app/components/detailed-card/detailed-card.component.html b/src/Ombi/ClientApp/src/app/components/detailed-card/detailed-card.component.html index 4973ae75c..b630a3da6 100644 --- a/src/Ombi/ClientApp/src/app/components/detailed-card/detailed-card.component.html +++ b/src/Ombi/ClientApp/src/app/components/detailed-card/detailed-card.component.html @@ -58,7 +58,7 @@
{{request.releaseDate | date:'yyyy'}}

{{request.title}}

-
+

Requested By: {{request.username}}

diff --git a/src/Ombi/ClientApp/src/app/services/requestV2.service.ts b/src/Ombi/ClientApp/src/app/services/requestV2.service.ts index aa49edba2..d863bc2ce 100644 --- a/src/Ombi/ClientApp/src/app/services/requestV2.service.ts +++ b/src/Ombi/ClientApp/src/app/services/requestV2.service.ts @@ -102,6 +102,6 @@ export class RequestServiceV2 extends ServiceHelpers { } public getRecentlyRequested(): Observable { - return this.http.get(`${this.url}recentlyRequestedstuff`, { headers: this.headers }); + return this.http.get(`${this.url}recentlyRequested`, { headers: this.headers }); } } diff --git a/src/Ombi/Controllers/V2/RequestsController.cs b/src/Ombi/Controllers/V2/RequestsController.cs index 5a9a92405..6c1ca4380 100644 --- a/src/Ombi/Controllers/V2/RequestsController.cs +++ b/src/Ombi/Controllers/V2/RequestsController.cs @@ -227,8 +227,7 @@ namespace Ombi.Controllers.V2 return await _movieRequestEngine.RequestCollection(collectionId, HttpContext.RequestAborted); } - [HttpGet("recentlyRequestedstuff")] - [Admin] + [HttpGet("recentlyRequested")] public Task> RecentlyRequested() { return _recentlyRequestedService.GetRecentlyRequested(CancellationToken);