Skip to content

Commit

Permalink
(chocolateyGH-52) Rename config confirmation setting
Browse files Browse the repository at this point in the history
Rename `allowInsecureConfirmation` to `allowGlobalConfirmation`. Warn
when the feature is turned on.
  • Loading branch information
ferventcoder committed Feb 15, 2015
1 parent a7db864 commit c51fa05
Show file tree
Hide file tree
Showing 5 changed files with 39 additions and 9 deletions.
20 changes: 18 additions & 2 deletions src/chocolatey.console/Program.cs
Expand Up @@ -55,7 +55,15 @@ private static void Main(string[] args)
var config = container.GetInstance<ChocolateyConfiguration>();
var fileSystem = container.GetInstance<IFileSystem>();

ConfigurationBuilder.set_up_configuration(args, config, fileSystem, container.GetInstance<IXmlService>());
var warnings = new List<string>();

ConfigurationBuilder.set_up_configuration(
args,
config,
fileSystem,
container.GetInstance<IXmlService>(),
warning => { warnings.Add(warning); }
);
Config.initialize_with(config);

if (config.RegularOuptut)
Expand All @@ -67,7 +75,15 @@ private static void Main(string[] args)
"chocolatey".Log().Info(ChocolateyLoggers.Important, () => "{0} v{1}".format_with(ApplicationParameters.Name, config.Information.ChocolateyProductVersion));
#endif
}


if (warnings.Count != 0)
{
foreach (var warning in warnings.or_empty_list_if_null())
{
"chocolatey".Log().Warn(ChocolateyLoggers.Important, warning);
}
}

if (config.HelpRequested)
{
pause_execution_if_debug();
Expand Down
2 changes: 1 addition & 1 deletion src/chocolatey/GetChocolatey.cs
Expand Up @@ -58,7 +58,7 @@ public GetChocolatey()

private void set_defaults()
{
ConfigurationBuilder.set_up_configuration(null, _configuration, _fileSystem, _container.GetInstance<IXmlService>());
ConfigurationBuilder.set_up_configuration(null, _configuration, _fileSystem, _container.GetInstance<IXmlService>(), null);
Config.initialize_with(_configuration);

_configuration.PromptForConfirmation = false;
Expand Down
2 changes: 1 addition & 1 deletion src/chocolatey/infrastructure.app/ApplicationParameters.cs
Expand Up @@ -70,7 +70,7 @@ public static class Features
{
public static readonly string CheckSumFiles = "checksumFiles";
public static readonly string AutoUninstaller = "autoUninstaller";
public static readonly string AllowInsecureConfirmation = "allowInsecureConfirmation";
public static readonly string AllowGlobalConfirmation = "allowGlobalConfirmation";
}

public static class Messages
Expand Down
22 changes: 18 additions & 4 deletions src/chocolatey/infrastructure.app/builders/ConfigurationBuilder.cs
Expand Up @@ -56,14 +56,15 @@ private static IEnvironment Environment
/// <param name="config">The configuration.</param>
/// <param name="fileSystem">The file system.</param>
/// <param name="xmlService">The XML service.</param>
public static void set_up_configuration(IList<string> args, ChocolateyConfiguration config, IFileSystem fileSystem, IXmlService xmlService)
/// <param name="notifyWarnLoggingAction">Notify warn logging action</param>
public static void set_up_configuration(IList<string> args, ChocolateyConfiguration config, IFileSystem fileSystem, IXmlService xmlService, Action<string> notifyWarnLoggingAction)
{
set_file_configuration(config, fileSystem, xmlService);
set_file_configuration(config, fileSystem, xmlService, notifyWarnLoggingAction);
set_global_options(args, config);
set_environment_options(config);
}

private static void set_file_configuration(ChocolateyConfiguration config, IFileSystem fileSystem, IXmlService xmlService)
private static void set_file_configuration(ChocolateyConfiguration config, IFileSystem fileSystem, IXmlService xmlService, Action<string> notifyWarnLoggingAction)
{
var globalConfigPath = ApplicationParameters.GlobalConfigFileLocation;
AssemblyFileExtractor.extract_text_file_from_assembly(fileSystem, Assembly.GetExecutingAssembly(), ApplicationParameters.ChocolateyConfigFileResource, globalConfigPath);
Expand Down Expand Up @@ -101,6 +102,19 @@ private static void set_file_configuration(ChocolateyConfiguration config, IFile
config.CommandExecutionTimeoutSeconds = configFileSettings.CommandExecutionTimeoutSeconds;

set_feature_flags(config, configFileSettings);
if (!config.PromptForConfirmation)
{
if (notifyWarnLoggingAction != null)
{
const string logMessage = @"
Config has insecure allowGlobalConfirmation set to true.
This setting lowers the integrity of the security of your system. If
this is not intended, please change the setting using the feature
command.
";
notifyWarnLoggingAction.Invoke(logMessage);
}
}

try
{
Expand All @@ -117,7 +131,7 @@ private static void set_feature_flags(ChocolateyConfiguration config, ConfigFile
{
config.Features.CheckSumFiles = set_feature_flag(ApplicationParameters.Features.CheckSumFiles, configFileSettings);
config.Features.AutoUninstaller = set_feature_flag(ApplicationParameters.Features.AutoUninstaller, configFileSettings);
config.PromptForConfirmation = !set_feature_flag(ApplicationParameters.Features.AllowInsecureConfirmation, configFileSettings);
config.PromptForConfirmation = !set_feature_flag(ApplicationParameters.Features.AllowGlobalConfirmation, configFileSettings);
}

private static bool set_feature_flag(string featureName, ConfigFileSettings configFileSettings)
Expand Down
Expand Up @@ -8,6 +8,6 @@
<features>
<feature name="checksumFiles" enabled="true" />
<feature name="autoUninstaller" enabled="false" />
<feature name="allowInsecureConfirmation" enabled="false" />
<feature name="allowGlobalConfirmation" enabled="false" />
</features>
</chocolatey>

0 comments on commit c51fa05

Please sign in to comment.