From a655b5a60ed243ece5854d54d3ea52614ae2f9d8 Mon Sep 17 00:00:00 2001 From: Ryan Newington Date: Sun, 8 Nov 2020 07:36:13 +1100 Subject: [PATCH] Adds support for disabling and expiring authorization rules --- .../SecurityDescriptorTargetViewModel.cs | 34 ++++++++ .../Views/SecurityDescriptorTargetView.xaml | 48 +++++++---- .../Views/SecurityDescriptorTargetsView.xaml | 1 + .../AuthorizationInformationBuilder.cs | 15 ++-- .../Authorization/ComputerTargetProvider.cs | 5 ++ .../SecurityDescriptorAuthorizationService.cs | 7 +- .../Configuration/SecurityDescriptorTarget.cs | 19 +++++ .../dev-config/appsettings.json | 79 ++++++++++--------- 8 files changed, 146 insertions(+), 62 deletions(-) diff --git a/src/Lithnet.AccessManager/Lithnet.AccessManager.Server.UI/ViewModels/SecurityDescriptorTargetViewModel.cs b/src/Lithnet.AccessManager/Lithnet.AccessManager.Server.UI/ViewModels/SecurityDescriptorTargetViewModel.cs index c5ae2824..758c90ad 100644 --- a/src/Lithnet.AccessManager/Lithnet.AccessManager.Server.UI/ViewModels/SecurityDescriptorTargetViewModel.cs +++ b/src/Lithnet.AccessManager/Lithnet.AccessManager.Server.UI/ViewModels/SecurityDescriptorTargetViewModel.cs @@ -13,6 +13,8 @@ using MahApps.Metro.Controls.Dialogs; using MahApps.Metro.SimpleChildWindow; using Microsoft.Extensions.Logging; +using Microsoft.Net.Http.Headers; +using PropertyChanged; using Stylet; namespace Lithnet.AccessManager.Server.UI @@ -89,6 +91,38 @@ public AuthorizationMode AuthorizationMode } } + [DependsOn(nameof(Expiry), nameof(ExpireRule), nameof(IsDisabled))] + public string Status + { + get + { + return this.IsDisabled ? "Disabled" : this.HasExpired ? "Expired" : "Active"; + } + } + + public bool IsDisabled + { + get => this.Model.Disabled; + set => this.Model.Disabled = value; + } + + public DateTime? Expiry + { + get => this.Model.Expiry?.ToLocalTime(); + set => this.Model.Expiry = value?.ToUniversalTime(); + } + + public bool ExpireRule + { + get => this.Expiry != null; + set => this.Expiry = value ? this.Expiry == null ? DateTime.Now.AddDays(30) : this.Expiry : null; + } + + public bool HasExpired + { + get => this.Model.HasExpired(); + } + public bool IsModePermission { get => this.AuthorizationMode == AuthorizationMode.SecurityDescriptor; set => this.AuthorizationMode = value ? AuthorizationMode.SecurityDescriptor : AuthorizationMode.PowershellScript; } public bool IsModeScript { get => this.AuthorizationMode == AuthorizationMode.PowershellScript; set => this.AuthorizationMode = value ? AuthorizationMode.PowershellScript : AuthorizationMode.SecurityDescriptor; } diff --git a/src/Lithnet.AccessManager/Lithnet.AccessManager.Server.UI/Views/SecurityDescriptorTargetView.xaml b/src/Lithnet.AccessManager/Lithnet.AccessManager.Server.UI/Views/SecurityDescriptorTargetView.xaml index 5bed78dc..5b28a47a 100644 --- a/src/Lithnet.AccessManager/Lithnet.AccessManager.Server.UI/Views/SecurityDescriptorTargetView.xaml +++ b/src/Lithnet.AccessManager/Lithnet.AccessManager.Server.UI/Views/SecurityDescriptorTargetView.xaml @@ -28,7 +28,7 @@ -->