[PTRun][Enterprise]GPO for plugin enabled state (#27468)

* try code for gpo with pluginID param

* fix typo

* fixes

* update admx

* Add second policy to admx

* spelling fixes

* admx clean up

* add gpo code

* small fixes

* fixes

* fix cast

* update settings code

* bug fixes

* fix plugins disabled warning

* Info bar in settings

* settings ui fixes

* code clean up

* fix spelling

* fix spelling

* code optimization

* changes

* fix code

* switch to char*

* update comments

* validate plugin ID

* spell fixes

* spell fixes

* fix IPlugin interface

* Update Directory.Packages.props

hopefully fixes unit tests

* revert change of nuget pkg

* fixes

* fix spell check

* add todo comment

* improve gpo.h

* improve gpo.h

* update gpo.h

* clean up code in gpo.h

* fix build

* try to fix build

* xaml fix

* Fix getting string value from the registry

* communicate policy state suing settings.json

* various changes and gpo docs

* spell fixes

* PT Run: Policy handling

* spell fix

* fix logging

* fix admx revision

* revision fix 2

* review feedback 1

* review feedback 2

* dev docs update

* fix typo
This commit is contained in:
Heiko
2023-10-11 16:37:15 +02:00
committed by GitHub
parent 19827d0093
commit 602a3ff090
39 changed files with 377 additions and 15 deletions

View File

@@ -8,6 +8,7 @@ using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Runtime.CompilerServices;
using global::PowerToys.GPOWrapper;
using Microsoft.PowerToys.Settings.UI.Library;
namespace Microsoft.PowerToys.Settings.UI.ViewModels
@@ -33,6 +34,9 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels
NotifyPropertyChanged(nameof(AdditionalOptions));
};
}
_enabledGpoRuleConfiguration = (GpoRuleConfigured)settings.EnabledPolicyUiState;
_enabledGpoRuleIsConfigured = _enabledGpoRuleConfiguration == GpoRuleConfigured.Disabled || _enabledGpoRuleConfiguration == GpoRuleConfigured.Enabled;
}
public string Id { get => settings.Id; }
@@ -43,11 +47,25 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels
public string Author { get => settings.Author; }
private GpoRuleConfigured _enabledGpoRuleConfiguration;
private bool _enabledGpoRuleIsConfigured;
public bool Disabled
{
get
{
return settings.Disabled;
if (_enabledGpoRuleConfiguration == GpoRuleConfigured.Disabled)
{
return true;
}
else if (_enabledGpoRuleConfiguration == GpoRuleConfigured.Enabled)
{
return false;
}
else
{
return settings.Disabled;
}
}
set
@@ -55,6 +73,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels
if (settings.Disabled != value)
{
settings.Disabled = value;
NotifyPropertyChanged();
NotifyPropertyChanged(nameof(ShowNotAccessibleWarning));
NotifyPropertyChanged(nameof(Enabled));
@@ -67,6 +86,8 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels
public bool Enabled => !Disabled;
public bool EnabledGpoRuleIsConfigured => _enabledGpoRuleIsConfigured;
public double DisabledOpacity => Disabled ? 0.5 : 1;
public bool IsGlobalAndEnabled

View File

@@ -135,6 +135,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels
}
OnPropertyChanged(nameof(ShowAllPluginsDisabledWarning));
OnPropertyChanged(nameof(ShowPluginsAreGpoManagedInfo));
UpdateSettings();
}
@@ -174,6 +175,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels
OnPropertyChanged(nameof(EnablePowerLauncher));
OnPropertyChanged(nameof(ShowAllPluginsDisabledWarning));
OnPropertyChanged(nameof(ShowPluginsLoadingMessage));
OnPropertyChanged(nameof(ShowPluginsAreGpoManagedInfo));
OutGoingGeneralSettings outgoing = new OutGoingGeneralSettings(GeneralSettingsConfig);
SendConfigMSG(outgoing.ToString());
}
@@ -186,6 +188,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels
OnPropertyChanged(nameof(EnablePowerLauncher));
OnPropertyChanged(nameof(ShowAllPluginsDisabledWarning));
OnPropertyChanged(nameof(ShowPluginsLoadingMessage));
OnPropertyChanged(nameof(ShowPluginsAreGpoManagedInfo));
}
public bool IsEnabledGpoConfigured
@@ -616,9 +619,14 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels
}
}
public bool ShowPluginsAreGpoManagedInfo
{
get => EnablePowerLauncher && settings.Plugins.Any() && Plugins.Any(x => x.EnabledGpoRuleIsConfigured);
}
public bool ShowAllPluginsDisabledWarning
{
get => EnablePowerLauncher && settings.Plugins.Any() && settings.Plugins.All(x => x.Disabled);
get => EnablePowerLauncher && settings.Plugins.Any() && Plugins.All(x => x.Disabled);
}
public bool ShowPluginsLoadingMessage