-
Notifications
You must be signed in to change notification settings - Fork 1
/
Antispam.cs
73 lines (71 loc) · 3.31 KB
/
Antispam.cs
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
using System.Collections.Generic;
using System.Linq;
using System.Management.Automation;
using System.Threading;
using Y360Management.Types;
namespace Y360Management {
/// <summary>
/// Получить список разрешенных IP-адресов и CIDR-подсетей.
/// </summary>
[Cmdlet(VerbsCommon.Get, "AllowList", HelpUri = "https://github.com/witomin/Y360Management#get-allowlist---получить-информацию-о-белом-списке"), OutputType(typeof(List<string>))]
public class GetAllowListCmdlet : PSCmdlet {
protected override void EndProcessing() {
var APIClient = Helpers.GetApiClient(this);
List<string> result = APIClient.GetAllowListAsync().GetAwaiter().GetResult();
WriteObject(result, true);
base.EndProcessing();
}
}
/// <summary>
/// Задать список разрешенных IP-адресов и CIDR-подсетей.
/// </summary>
[Cmdlet(VerbsCommon.Set, "AllowList", HelpUri = "https://github.com/witomin/Y360Management#set-allowlist---редактировать-белый-список")]
public class SetAllowListCmdlet : PSCmdlet {
/// <summary>
/// Управление списком разрешенных IP-адресов и CIDR-подсетей
/// </summary>
[Parameter(Position = 0)]
public StringCollection? Items { get; set; }
/// <summary>
/// Список разрешенных IP-адресов и CIDR-подсетей
/// </summary>
[Parameter(Position = 1)]
public List<string>? AllowList { get; set; }
protected override void EndProcessing() {
var APIClient = Helpers.GetApiClient(this);
if (Items != null) {
var allowList = APIClient.GetAllowListAsync().GetAwaiter().GetResult();
Thread.Sleep(1000);
if (Items.Add != null) {
allowList.AddRange(Items.Add);
allowList = allowList.Distinct().ToList();
}
if (Items.Remove != null) {
allowList = allowList.Where(i => !Items.Remove.Contains(i)).ToList();
}
if (allowList.Count == 0) {
var result = APIClient.DeleteAllowListAsync().GetAwaiter().GetResult();
}
else {
var result = APIClient.SetAllowListAsync(allowList).GetAwaiter().GetResult();
}
}
else
if (AllowList != null) {
var result = APIClient.SetAllowListAsync(AllowList).GetAwaiter().GetResult();
}
base.EndProcessing();
}
}
/// <summary>
/// Удалить список разрешенных IP-адресов и CIDR-подсетей.
/// </summary>
[Cmdlet(VerbsCommon.Remove, "AllowList", HelpUri = "https://github.com/witomin/Y360Management#remove-allowlist---удалить-белый-список")]
public class RemoveAllowListCmdlet : PSCmdlet {
protected override void EndProcessing() {
var APIClient = Helpers.GetApiClient(this);
var result = APIClient.DeleteAllowListAsync().GetAwaiter().GetResult();
base.EndProcessing();
}
}
}