-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathSecurity.cs
More file actions
51 lines (50 loc) · 2.81 KB
/
Security.cs
File metadata and controls
51 lines (50 loc) · 2.81 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
using System.Management.Automation;
using Yandex.API360.Models;
namespace Y360Management {
/// <summary>
/// Возвращает статус обязательной двухфакторной аутентификации (2FA) для пользователей домена.
/// </summary>
[Cmdlet(VerbsCommon.Get, "Status2FA", HelpUri = "https://github.com/witomin/Y360Management#get-status2fa---получить-статус-2fa"), OutputType(typeof(DomainStatus2FA))]
public class GetStatus2FaCmdlet : PSCmdlet {
protected override void EndProcessing() {
var APIClient = Helpers.GetApiClient(this);
DomainStatus2FA result = APIClient.GetStatus2faAsync().GetAwaiter().GetResult();
WriteObject(result);
base.EndProcessing();
}
}
[Cmdlet(VerbsCommon.Set, "Status2FA")]
public class SetStatus2FaCmdlet : PSCmdlet {
/// <summary>
/// Период (в секундах), в течение которого при включенной 2FA пользователю в процессе авторизации
/// предлагается настроить 2FA с возможностью пропустить этот шаг. По истечении периода
/// возможность отложить настройку 2FA отключается.
/// </summary>
[Parameter(Position = 0)]
public int? Duration { get; set; }
/// <summary>
/// Признак, что при включении 2FA всех пользователей домена нужно единоразово разлогинить.
/// Если использовались пароли приложений, потребуется создать их заново.
/// </summary>
[Parameter(Position = 1)]
public SwitchParameter LogoutUsers { get; set; }
/// <summary>
/// Выключить обязательную двухфакторную аутентификации (2FA) для пользователей домена
/// не работает совместно с параметрами Duration и LogoutUsers
/// </summary>
[Parameter(Position = 2)]
public SwitchParameter Disable { get; set; }
protected override void EndProcessing() {
var APIClient = Helpers.GetApiClient(this);
DomainStatus2FA result;
if (Duration != null) {
result = APIClient.Enable2faAsync(new EnableDomainStatus2FA { duration = (int)Duration, logoutUsers = LogoutUsers}).GetAwaiter().GetResult();
}
else
if (Disable) {
result = APIClient.Disable2faAsync().GetAwaiter().GetResult();
}
base.EndProcessing();
}
}
}