namespace SharpHoundRPC.LSANative
{
    public class UserRights
    {
        public const string AssignPrimaryToken = "SeAssignPrimaryTokenPrivilege";
        public const string Audit = "SeAuditPrivilege";
        public const string Backup = "SeBackupPrivilege";
        public const string BatchLogon = "SeBatchLogonRight";
        public const string ChangeNotify = "SeChangeNotifyPrivilege";
        public const string CreateGlobal = "SeCreateGlobalPrivilege";
        public const string CreatePagefile = "SeCreatePagefilePrivilege";
        public const string CreatePermanent = "SeCreatePermanentPrivilege";
        public const string CreateSymbolicLink = "SeCreateSymbolicLinkPrivilege";
        public const string CreateToken = "SeCreateTokenPrivilege";
        public const string Debug = "SeDebugPrivilege";
        public const string DenyBatchLogon = "SeDenyBatchLogonRight";
        public const string DenyInteractiveLogon = "SeDenyInteractiveLogonRight";
        public const string DenyNetworkLogon = "SeDenyNetworkLogonRight";
        public const string DenyRemoteInteractiveLogon = "SeDenyRemoteInteractiveLogonRight";
        public const string DenyServiceLogon = "SeDenyServiceLogonRight";
        public const string EnableDelegation = "SeEnableDelegationPrivilege";
        public const string Impersonate = "SeImpersonatePrivilege";
        public const string IncreaseBasePriority = "SeIncreaseBasePriorityPrivilege";
        public const string IncreaseQuota = "SeIncreaseQuotaPrivilege";
        public const string IncreaseWorkingSet = "SeIncreaseWorkingSetPrivilege";
        public const string InteractiveLogon = "SeInteractiveLogonRight";
        public const string LoadDriver = "SeLoadDriverPrivilege";
        public const string LockMemory = "SeLockMemoryPrivilege";
        public const string MachineAccount = "SeMachineAccountPrivilege";
        public const string ManageVolume = "SeManageVolumePrivilege";
        public const string NetworkLogon = "SeNetworkLogonRight";
        public const string ProfileSingleProcess = "SeProfileSingleProcessPrivilege";
        public const string Relabel = "SeRelabelPrivilege";
        public const string RemoteInteractiveLogon = "SeRemoteInteractiveLogonRight";
        public const string RemoteShutdown = "SeRemoteShutdownPrivilege";
        public const string Restore = "SeRestorePrivilege";
        public const string Security = "SeSecurityPrivilege";
        public const string ServiceLogon = "SeServiceLogonRight";
        public const string Shutdown = "SeShutdownPrivilege";
        public const string SyncAgent = "SeSyncAgentPrivilege";
        public const string SystemEnvironment = "SeSystemEnvironmentPrivilege";
        public const string SystemProfile = "SeSystemProfilePrivilege";
        public const string SystemTime = "SeSystemtimePrivilege";
        public const string TakeOwnership = "SeTakeOwnershipPrivilege";
        public const string Tcb = "SeTcbPrivilege";
        public const string TimeZone = "SeTimeZonePrivilege";
        public const string TrustedCredManAccess = "SeTrustedCredManAccessPrivilege";
        public const string Undock = "SeUndockPrivilege";

        public static readonly string[] AllPrivileges =
        {
            AssignPrimaryToken, Audit, Backup, BatchLogon, ChangeNotify, CreateGlobal, CreatePagefile, CreatePermanent,
            CreateSymbolicLink, CreateToken, Debug, DenyBatchLogon, DenyInteractiveLogon, DenyNetworkLogon,
            DenyRemoteInteractiveLogon, DenyServiceLogon, EnableDelegation, Impersonate, IncreaseBasePriority,
            IncreaseQuota, IncreaseWorkingSet, InteractiveLogon, LoadDriver, LockMemory, MachineAccount, ManageVolume,
            NetworkLogon, ProfileSingleProcess, Relabel, RemoteInteractiveLogon, RemoteShutdown, Restore, Security,
            ServiceLogon, Shutdown, SyncAgent, SystemEnvironment, SystemProfile, SystemTime, TakeOwnership, Tcb,
            TimeZone, TrustedCredManAccess, Undock
        };
    }
}