Fixed service renewal check to allow admins to access the service even if it is expired

This commit is contained in:
Marcel Baumgartner 2024-01-05 11:04:43 +01:00
parent 8b032462c0
commit 0aa28d9764

View file

@ -5,6 +5,7 @@
@using Moonlight.App.Services.ServiceManage @using Moonlight.App.Services.ServiceManage
@using Microsoft.EntityFrameworkCore @using Microsoft.EntityFrameworkCore
@using Moonlight.App.Models.Abstractions.Services @using Moonlight.App.Models.Abstractions.Services
@using Moonlight.App.Models.Enums
@using Moonlight.App.Services @using Moonlight.App.Services
@inject Repository<Service> ServiceRepository @inject Repository<Service> ServiceRepository
@ -19,7 +20,8 @@
} }
else else
{ {
if (NeedsRenewal) // An admin should still be able to manage the service, that's why we check for permissions here
if (NeedsRenewal && !IdentityService.Permissions[Permission.AdminServices])
{ {
<NeedsRenewalAlert /> <NeedsRenewalAlert />
} }
@ -50,7 +52,7 @@
private ServiceDefinition Definition; private ServiceDefinition Definition;
private ServiceViewContext ViewContext; private ServiceViewContext ViewContext;
private bool NeedsRenewal = false; private bool NeedsRenewal;
private async Task Load(LazyLoader lazyLoader) private async Task Load(LazyLoader lazyLoader)
{ {
@ -73,9 +75,12 @@
if (Service == null) if (Service == null)
return; return;
// Check expiration
NeedsRenewal = await ServiceService.Manage.NeedsRenewal(Service); NeedsRenewal = await ServiceService.Manage.NeedsRenewal(Service);
if(NeedsRenewal) // Stop loading more data // Stop loading more data if the user is not an admin
// because a admin should still be able to manage the service
if(NeedsRenewal && !IdentityService.Permissions[Permission.AdminServices])
return; return;
// Load implementation // Load implementation