Use whitelist to avoid exposing settings to user that shouldn't be

This commit is contained in:
Dean Herbert 2021-03-12 18:40:38 +09:00
parent 03230edcb1
commit 3458dcc33a
1 changed files with 13 additions and 6 deletions

View File

@ -5,6 +5,8 @@
using osu.Framework.Graphics;
using osu.Framework.Graphics.Sprites;
using osu.Framework.Input.Handlers;
using osu.Framework.Input.Handlers.Joystick;
using osu.Framework.Input.Handlers.Midi;
using osu.Framework.Input.Handlers.Mouse;
using osu.Framework.Platform;
using osu.Game.Configuration;
@ -50,11 +52,6 @@ private void load()
private SettingsSubsection createSectionFor(InputHandler handler)
{
var settingsControls = handler.CreateSettingsControlsFromAllBindables(false);
if (settingsControls.Count == 0)
return null;
SettingsSubsection section;
switch (handler)
@ -63,11 +60,21 @@ private SettingsSubsection createSectionFor(InputHandler handler)
section = new MouseSettings(mh);
break;
default:
// whitelist the handlers which should be displayed to avoid any weird cases of users touching settings they shouldn't.
case JoystickHandler _:
case MidiHandler _:
section = new HandlerSection(handler);
break;
default:
return null;
}
var settingsControls = handler.CreateSettingsControlsFromAllBindables(false);
if (settingsControls.Count == 0)
return null;
section.AddRange(settingsControls);
return section;