-
Notifications
You must be signed in to change notification settings - Fork 803
Expand file tree
/
Copy pathGroupInfo.cs
More file actions
314 lines (275 loc) · 17.3 KB
/
GroupInfo.cs
File metadata and controls
314 lines (275 loc) · 17.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
using NETworkManager.Models.Network;
using NETworkManager.Models.PowerShell;
using NETworkManager.Models.PuTTY;
using NETworkManager.Models.RemoteDesktop;
using NETworkManager.Settings;
using System.Collections.Generic;
using System.Security;
using System.Xml.Serialization;
namespace NETworkManager.Profiles;
/// <summary>
/// Class represents a group.
/// </summary>
public class GroupInfo
{
/// <summary>
/// Initializes a new instance of the<see cref="GroupInfo" /> class.
/// </summary>
public GroupInfo()
{
Profiles = [];
}
/// <summary>
/// Initializes a new instance of the<see cref="GroupInfo" /> class with name.
/// </summary>
public GroupInfo(string name) : this()
{
Name = name;
}
/// <summary>
/// Initializes a new instance of the<see cref="GroupInfo" /> class with properties.
/// </summary>
public GroupInfo(GroupInfo group) : this(group.Name)
{
// General
Description = group.Description;
// Profiles
Profiles = group.Profiles;
// Remote Desktop
RemoteDesktop_UseCredentials = group.RemoteDesktop_UseCredentials;
RemoteDesktop_Username = group.RemoteDesktop_Username;
RemoteDesktop_Domain = group.RemoteDesktop_Domain;
RemoteDesktop_Password = group.RemoteDesktop_Password;
RemoteDesktop_AdminSession = group.RemoteDesktop_AdminSession;
RemoteDesktop_OverrideDisplay = group.RemoteDesktop_OverrideDisplay;
RemoteDesktop_AdjustScreenAutomatically = group.RemoteDesktop_AdjustScreenAutomatically;
RemoteDesktop_UseCurrentViewSize = group.RemoteDesktop_UseCurrentViewSize;
RemoteDesktop_UseFixedScreenSize = group.RemoteDesktop_UseFixedScreenSize;
RemoteDesktop_ScreenWidth = group.RemoteDesktop_ScreenWidth;
RemoteDesktop_ScreenHeight = group.RemoteDesktop_ScreenHeight;
RemoteDesktop_UseCustomScreenSize = group.RemoteDesktop_UseCustomScreenSize;
RemoteDesktop_CustomScreenWidth = group.RemoteDesktop_CustomScreenWidth;
RemoteDesktop_CustomScreenHeight = group.RemoteDesktop_CustomScreenHeight;
RemoteDesktop_OverrideColorDepth = group.RemoteDesktop_OverrideColorDepth;
RemoteDesktop_ColorDepth = group.RemoteDesktop_ColorDepth;
RemoteDesktop_OverridePort = group.RemoteDesktop_OverridePort;
RemoteDesktop_Port = group.RemoteDesktop_Port;
RemoteDesktop_OverrideCredSspSupport = group.RemoteDesktop_OverrideCredSspSupport;
RemoteDesktop_EnableCredSspSupport = group.RemoteDesktop_EnableCredSspSupport;
RemoteDesktop_OverrideAuthenticationLevel = group.RemoteDesktop_OverrideAuthenticationLevel;
RemoteDesktop_AuthenticationLevel = group.RemoteDesktop_AuthenticationLevel;
RemoteDesktop_OverrideGatewayServer = group.RemoteDesktop_OverrideGatewayServer;
RemoteDesktop_EnableGatewayServer = group.RemoteDesktop_EnableGatewayServer;
RemoteDesktop_GatewayServerHostname = group.RemoteDesktop_GatewayServerHostname;
RemoteDesktop_GatewayServerBypassLocalAddresses = group.RemoteDesktop_GatewayServerBypassLocalAddresses;
RemoteDesktop_GatewayServerLogonMethod = group.RemoteDesktop_GatewayServerLogonMethod;
RemoteDesktop_GatewayServerShareCredentialsWithRemoteComputer =
group.RemoteDesktop_GatewayServerShareCredentialsWithRemoteComputer;
RemoteDesktop_UseGatewayServerCredentials = group.RemoteDesktop_UseGatewayServerCredentials;
RemoteDesktop_GatewayServerUsername = group.RemoteDesktop_GatewayServerUsername;
RemoteDesktop_GatewayServerDomain = group.RemoteDesktop_GatewayServerDomain;
RemoteDesktop_GatewayServerPassword = group.RemoteDesktop_GatewayServerPassword;
RemoteDesktop_OverrideAudioRedirectionMode = group.RemoteDesktop_OverrideAudioRedirectionMode;
RemoteDesktop_AudioRedirectionMode = group.RemoteDesktop_AudioRedirectionMode;
RemoteDesktop_OverrideAudioCaptureRedirectionMode = group.RemoteDesktop_OverrideAudioCaptureRedirectionMode;
RemoteDesktop_AudioCaptureRedirectionMode = group.RemoteDesktop_AudioCaptureRedirectionMode;
RemoteDesktop_OverrideApplyWindowsKeyCombinations = group.RemoteDesktop_OverrideApplyWindowsKeyCombinations;
RemoteDesktop_KeyboardHookMode = group.RemoteDesktop_KeyboardHookMode;
RemoteDesktop_OverrideRedirectClipboard = group.RemoteDesktop_OverrideRedirectClipboard;
RemoteDesktop_RedirectClipboard = group.RemoteDesktop_RedirectClipboard;
RemoteDesktop_OverrideRedirectDevices = group.RemoteDesktop_OverrideRedirectDevices;
RemoteDesktop_RedirectDevices = group.RemoteDesktop_RedirectDevices;
RemoteDesktop_OverrideRedirectDrives = group.RemoteDesktop_OverrideRedirectDrives;
RemoteDesktop_RedirectDrives = group.RemoteDesktop_RedirectDrives;
RemoteDesktop_OverrideRedirectPorts = group.RemoteDesktop_OverrideRedirectPorts;
RemoteDesktop_RedirectPorts = group.RemoteDesktop_RedirectPorts;
RemoteDesktop_OverrideRedirectSmartcards = group.RemoteDesktop_OverrideRedirectSmartcards;
RemoteDesktop_RedirectSmartCards = group.RemoteDesktop_RedirectSmartCards;
RemoteDesktop_OverrideRedirectPrinters = group.RemoteDesktop_OverrideRedirectPrinters;
RemoteDesktop_RedirectPrinters = group.RemoteDesktop_RedirectPrinters;
RemoteDesktop_OverridePersistentBitmapCaching = group.RemoteDesktop_OverridePersistentBitmapCaching;
RemoteDesktop_PersistentBitmapCaching = group.RemoteDesktop_PersistentBitmapCaching;
RemoteDesktop_OverrideReconnectIfTheConnectionIsDropped =
group.RemoteDesktop_OverrideReconnectIfTheConnectionIsDropped;
RemoteDesktop_ReconnectIfTheConnectionIsDropped = group.RemoteDesktop_ReconnectIfTheConnectionIsDropped;
RemoteDesktop_OverrideNetworkConnectionType = group.RemoteDesktop_OverrideNetworkConnectionType;
RemoteDesktop_NetworkConnectionType = group.RemoteDesktop_NetworkConnectionType;
RemoteDesktop_OverrideDesktopBackground = group.RemoteDesktop_OverrideDesktopBackground;
RemoteDesktop_DesktopBackground = group.RemoteDesktop_DesktopBackground;
RemoteDesktop_OverrideFontSmoothing = group.RemoteDesktop_OverrideFontSmoothing;
RemoteDesktop_FontSmoothing = group.RemoteDesktop_FontSmoothing;
RemoteDesktop_OverrideDesktopComposition = group.RemoteDesktop_OverrideDesktopComposition;
RemoteDesktop_DesktopComposition = group.RemoteDesktop_DesktopComposition;
RemoteDesktop_OverrideShowWindowContentsWhileDragging =
group.RemoteDesktop_OverrideShowWindowContentsWhileDragging;
RemoteDesktop_ShowWindowContentsWhileDragging = group.RemoteDesktop_ShowWindowContentsWhileDragging;
RemoteDesktop_OverrideMenuAndWindowAnimation = group.RemoteDesktop_OverrideMenuAndWindowAnimation;
RemoteDesktop_MenuAndWindowAnimation = group.RemoteDesktop_MenuAndWindowAnimation;
RemoteDesktop_OverrideVisualStyles = group.RemoteDesktop_OverrideVisualStyles;
RemoteDesktop_VisualStyles = group.RemoteDesktop_VisualStyles;
// PowerShell
PowerShell_OverrideCommand = group.PowerShell_OverrideCommand;
PowerShell_Command = group.PowerShell_Command;
PowerShell_OverrideAdditionalCommandLine = group.PowerShell_OverrideAdditionalCommandLine;
PowerShell_AdditionalCommandLine = group.PowerShell_AdditionalCommandLine;
PowerShell_OverrideExecutionPolicy = group.PowerShell_OverrideExecutionPolicy;
PowerShell_ExecutionPolicy = group.PowerShell_ExecutionPolicy;
// PuTTY
PuTTY_OverrideUsername = group.PuTTY_OverrideUsername;
PuTTY_Username = group.PuTTY_Username;
PuTTY_OverridePrivateKeyFile = group.PuTTY_OverridePrivateKeyFile;
PuTTY_PrivateKeyFile = group.PuTTY_PrivateKeyFile;
PuTTY_OverrideProfile = group.PuTTY_OverrideProfile;
PuTTY_Profile = group.PuTTY_Profile;
PuTTY_OverrideEnableLog = group.PuTTY_OverrideEnableLog;
PuTTY_EnableLog = group.PuTTY_EnableLog;
PuTTY_OverrideLogMode = group.PuTTY_OverrideLogMode;
PuTTY_LogMode = group.PuTTY_LogMode;
PuTTY_OverrideLogPath = group.PuTTY_OverrideLogPath;
PuTTY_LogPath = group.PuTTY_LogPath;
PuTTY_OverrideLogFileName = group.PuTTY_OverrideLogFileName;
PuTTY_LogFileName = group.PuTTY_LogFileName;
PuTTY_OverrideAdditionalCommandLine = group.PuTTY_OverrideAdditionalCommandLine;
PuTTY_AdditionalCommandLine = group.PuTTY_AdditionalCommandLine;
// TigerVNC
TigerVNC_OverridePort = group.TigerVNC_OverridePort;
TigerVNC_Port = group.TigerVNC_Port;
// SNMP
SNMP_OverrideOIDAndMode = group.SNMP_OverrideOIDAndMode;
SNMP_OID = group.SNMP_OID;
SNMP_Mode = group.SNMP_Mode;
SNMP_OverrideVersionAndAuth = group.SNMP_OverrideVersionAndAuth;
SNMP_Version = group.SNMP_Version;
SNMP_Community = group.SNMP_Community;
SNMP_Security = group.SNMP_Security;
SNMP_Username = group.SNMP_Username;
SNMP_AuthenticationProvider = group.SNMP_AuthenticationProvider;
SNMP_Auth = group.SNMP_Auth;
SNMP_PrivacyProvider = group.SNMP_PrivacyProvider;
SNMP_Priv = group.SNMP_Priv;
}
/// <summary>
/// Name of the group.
/// </summary>
public string Name { get; set; }
/// <summary>
/// Description of the group.
/// </summary>
public string Description { get; set; }
[XmlIgnore] public bool IsDynamic { get; set; }
[XmlIgnore] public List<ProfileInfo> Profiles { get; set; }
public bool RemoteDesktop_UseCredentials { get; set; }
public string RemoteDesktop_Username { get; set; }
public string RemoteDesktop_Domain { get; set; }
[XmlIgnore] public SecureString RemoteDesktop_Password { get; set; }
public bool RemoteDesktop_AdminSession { get; set; }
public bool RemoteDesktop_OverrideDisplay { get; set; }
public bool RemoteDesktop_AdjustScreenAutomatically { get; set; }
public bool RemoteDesktop_UseCurrentViewSize { get; set; } =
GlobalStaticConfiguration.RemoteDesktop_UseCurrentViewSize;
public bool RemoteDesktop_UseFixedScreenSize { get; set; }
public int RemoteDesktop_ScreenWidth { get; set; } = GlobalStaticConfiguration.RemoteDesktop_ScreenWidth;
public int RemoteDesktop_ScreenHeight { get; set; } = GlobalStaticConfiguration.RemoteDesktop_ScreenHeight;
public bool RemoteDesktop_UseCustomScreenSize { get; set; }
public int RemoteDesktop_CustomScreenWidth { get; set; }
public int RemoteDesktop_CustomScreenHeight { get; set; }
public bool RemoteDesktop_OverrideColorDepth { get; set; }
public int RemoteDesktop_ColorDepth { get; set; } = GlobalStaticConfiguration.RemoteDesktop_ColorDepth;
public bool RemoteDesktop_OverridePort { get; set; }
public int RemoteDesktop_Port { get; set; } = GlobalStaticConfiguration.RemoteDesktop_Port;
public bool RemoteDesktop_OverrideCredSspSupport { get; set; }
public bool RemoteDesktop_EnableCredSspSupport { get; set; }
public bool RemoteDesktop_OverrideAuthenticationLevel { get; set; }
public uint RemoteDesktop_AuthenticationLevel { get; set; } =
GlobalStaticConfiguration.RemoteDesktop_AuthenticationLevel;
public bool RemoteDesktop_OverrideGatewayServer { get; set; }
public bool RemoteDesktop_EnableGatewayServer { get; set; }
public string RemoteDesktop_GatewayServerHostname { get; set; }
public bool RemoteDesktop_GatewayServerBypassLocalAddresses { get; set; } =
GlobalStaticConfiguration.RemoteDesktop_GatewayServerBypassLocalAddresses;
public GatewayUserSelectedCredsSource RemoteDesktop_GatewayServerLogonMethod { get; set; } =
GlobalStaticConfiguration.RemoteDesktop_GatewayServerLogonMethod;
public bool RemoteDesktop_GatewayServerShareCredentialsWithRemoteComputer { get; set; } =
GlobalStaticConfiguration.RemoteDesktop_GatewayServerShareCredentialsWithRemoteComputer;
public bool RemoteDesktop_UseGatewayServerCredentials { get; set; }
public string RemoteDesktop_GatewayServerUsername { get; set; }
public string RemoteDesktop_GatewayServerDomain { get; set; }
[XmlIgnore] public SecureString RemoteDesktop_GatewayServerPassword { get; set; }
public bool RemoteDesktop_OverrideAudioRedirectionMode { get; set; }
public AudioRedirectionMode RemoteDesktop_AudioRedirectionMode { get; set; } =
GlobalStaticConfiguration.RemoteDesktop_AudioRedirectionMode;
public bool RemoteDesktop_OverrideAudioCaptureRedirectionMode { get; set; }
public AudioCaptureRedirectionMode RemoteDesktop_AudioCaptureRedirectionMode { get; set; } =
GlobalStaticConfiguration.RemoteDesktop_AudioCaptureRedirectionMode;
public bool RemoteDesktop_OverrideApplyWindowsKeyCombinations { get; set; }
public KeyboardHookMode RemoteDesktop_KeyboardHookMode { get; set; } =
GlobalStaticConfiguration.RemoteDesktop_KeyboardHookMode;
public bool RemoteDesktop_OverrideRedirectClipboard { get; set; }
public bool RemoteDesktop_RedirectClipboard { get; set; } = true;
public bool RemoteDesktop_OverrideRedirectDevices { get; set; }
public bool RemoteDesktop_RedirectDevices { get; set; }
public bool RemoteDesktop_OverrideRedirectDrives { get; set; }
public bool RemoteDesktop_RedirectDrives { get; set; }
public bool RemoteDesktop_OverrideRedirectPorts { get; set; }
public bool RemoteDesktop_RedirectPorts { get; set; }
public bool RemoteDesktop_OverrideRedirectSmartcards { get; set; }
public bool RemoteDesktop_RedirectSmartCards { get; set; }
public bool RemoteDesktop_OverrideRedirectPrinters { get; set; }
public bool RemoteDesktop_RedirectPrinters { get; set; }
public bool RemoteDesktop_OverridePersistentBitmapCaching { get; set; }
public bool RemoteDesktop_PersistentBitmapCaching { get; set; }
public bool RemoteDesktop_OverrideReconnectIfTheConnectionIsDropped { get; set; }
public bool RemoteDesktop_ReconnectIfTheConnectionIsDropped { get; set; }
public bool RemoteDesktop_OverrideNetworkConnectionType { get; set; }
public NetworkConnectionType RemoteDesktop_NetworkConnectionType { get; set; }
public bool RemoteDesktop_OverrideDesktopBackground { get; set; }
public bool RemoteDesktop_DesktopBackground { get; set; }
public bool RemoteDesktop_OverrideFontSmoothing { get; set; }
public bool RemoteDesktop_FontSmoothing { get; set; }
public bool RemoteDesktop_OverrideDesktopComposition { get; set; }
public bool RemoteDesktop_DesktopComposition { get; set; }
public bool RemoteDesktop_OverrideShowWindowContentsWhileDragging { get; set; }
public bool RemoteDesktop_ShowWindowContentsWhileDragging { get; set; }
public bool RemoteDesktop_OverrideMenuAndWindowAnimation { get; set; }
public bool RemoteDesktop_MenuAndWindowAnimation { get; set; }
public bool RemoteDesktop_OverrideVisualStyles { get; set; }
public bool RemoteDesktop_VisualStyles { get; set; }
public bool PowerShell_OverrideCommand { get; set; }
public string PowerShell_Command { get; set; }
public bool PowerShell_OverrideAdditionalCommandLine { get; set; }
public string PowerShell_AdditionalCommandLine { get; set; }
public bool PowerShell_OverrideExecutionPolicy { get; set; }
public ExecutionPolicy PowerShell_ExecutionPolicy { get; set; } =
GlobalStaticConfiguration.PowerShell_ExecutionPolicy;
public bool PuTTY_OverrideUsername { get; set; }
public string PuTTY_Username { get; set; }
public bool PuTTY_OverridePrivateKeyFile { get; set; }
public string PuTTY_PrivateKeyFile { get; set; }
public bool PuTTY_OverrideProfile { get; set; }
public string PuTTY_Profile { get; set; }
public bool PuTTY_OverrideEnableLog { get; set; }
public bool PuTTY_EnableLog { get; set; }
public bool PuTTY_OverrideLogMode { get; set; }
public LogMode PuTTY_LogMode { get; set; } = GlobalStaticConfiguration.PuTTY_LogMode;
public bool PuTTY_OverrideLogPath { get; set; }
public string PuTTY_LogPath { get; set; } = GlobalStaticConfiguration.PuTTY_LogPath;
public bool PuTTY_OverrideLogFileName { get; set; }
public string PuTTY_LogFileName { get; set; } = GlobalStaticConfiguration.PuTTY_LogFileName;
public bool PuTTY_OverrideAdditionalCommandLine { get; set; }
public string PuTTY_AdditionalCommandLine { get; set; }
public bool TigerVNC_OverridePort { get; set; }
public int TigerVNC_Port { get; set; } = GlobalStaticConfiguration.TigerVNC_DefaultVNCPort;
public bool SNMP_OverrideOIDAndMode { get; set; }
public string SNMP_OID { get; set; }
public SNMPMode SNMP_Mode { get; set; } = GlobalStaticConfiguration.SNMP_Mode;
public bool SNMP_OverrideVersionAndAuth { get; set; }
public SNMPVersion SNMP_Version { get; set; } = GlobalStaticConfiguration.SNMP_Version;
[XmlIgnore] public SecureString SNMP_Community { get; set; }
public SNMPV3Security SNMP_Security { get; set; } = GlobalStaticConfiguration.SNMP_Security;
public string SNMP_Username { get; set; }
public SNMPV3AuthenticationProvider SNMP_AuthenticationProvider { get; set; } =
GlobalStaticConfiguration.SNMP_AuthenticationProvider;
[XmlIgnore] public SecureString SNMP_Auth { get; set; }
public SNMPV3PrivacyProvider SNMP_PrivacyProvider { get; set; } = GlobalStaticConfiguration.SNMP_PrivacyProvider;
[XmlIgnore] public SecureString SNMP_Priv { get; set; }
}