AdminSettings.h (1669B)
1 // Copyright (c) Microsoft Corporation. 2 // Licensed under the MIT License. 3 #pragma once 4 5 #include <string> 6 #include "winget/GroupPolicy.h" 7 8 namespace AppInstaller::Settings 9 { 10 // Enum of admin settings. 11 enum class BoolAdminSetting : size_t 12 { 13 Unknown = 0, 14 LocalManifestFiles, 15 BypassCertificatePinningForMicrosoftStore, 16 InstallerHashOverride, 17 LocalArchiveMalwareScanOverride, 18 ProxyCommandLineOptions, 19 Max, 20 }; 21 22 enum class StringAdminSetting : size_t 23 { 24 Unknown = 0, 25 DefaultProxy, 26 Max, 27 }; 28 29 BoolAdminSetting StringToBoolAdminSetting(std::string_view in); 30 StringAdminSetting StringToStringAdminSetting(std::string_view in); 31 32 Utility::LocIndView AdminSettingToString(BoolAdminSetting setting); 33 Utility::LocIndView AdminSettingToString(StringAdminSetting setting); 34 35 // Returns true if the value is set. 36 // Group policy overriding the setting can prevent the value from being set 37 bool EnableAdminSetting(BoolAdminSetting setting); 38 bool DisableAdminSetting(BoolAdminSetting setting); 39 bool SetAdminSetting(StringAdminSetting setting, std::string_view value); 40 bool ResetAdminSetting(StringAdminSetting setting); 41 void ResetAllAdminSettings(); 42 43 bool IsAdminSettingEnabled(BoolAdminSetting setting); 44 std::optional<std::string> GetAdminSetting(StringAdminSetting setting); 45 46 std::vector<BoolAdminSetting> GetAllBoolAdminSettings(); 47 std::vector<StringAdminSetting> GetAllStringAdminSettings(); 48 49 TogglePolicy::Policy GetAdminSettingPolicy(BoolAdminSetting setting); 50 }