Show a notification if game is run as administrator

This commit is contained in:
Christine Chen
2021-04-26 16:41:26 -04:00
parent bec16436b0
commit 9ad30da729
4 changed files with 72 additions and 0 deletions

View File

@ -7,6 +7,7 @@ using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.Versioning;
using System.Security.Principal;
using System.Threading.Tasks;
using Microsoft.Win32;
using osu.Desktop.Overlays;
@ -20,6 +21,7 @@ using osu.Game.Screens.Menu;
using osu.Game.Updater;
using osu.Desktop.Windows;
using osu.Framework.Threading;
using osu.Game.Admin;
using osu.Game.IO;
namespace osu.Desktop
@ -102,6 +104,8 @@ namespace osu.Desktop
}
}
protected override AdminChecker CreateAdminChecker() => new DesktopAdminChecker();
protected override void LoadComplete()
{
base.LoadComplete();
@ -180,5 +184,10 @@ namespace osu.Desktop
Task.Factory.StartNew(() => Import(paths), TaskCreationOptions.LongRunning);
}
}
private class DesktopAdminChecker : AdminChecker
{
protected override bool IsAdmin() => OperatingSystem.IsWindows() ? new WindowsPrincipal(WindowsIdentity.GetCurrent()).IsInRole(WindowsBuiltInRole.Administrator) : Mono.Unix.Native.Syscall.geteuid() == 0;
}
}
}