CreateHours: ILogonHours;
CreateHours: Prognoz.Platform.Interop.Metabase.ILogonHours;
Метод CreateHours создает объект, используемый для настройки доступа по часам в течение дня.
Для выполнения примера убедитесь, что в менеджере безопасности содержится пользователь «USER».
Добавьте ссылки на системные сборки: Metabase, ForeSystem (для примера на Fore.NET).
Sub UserProc;
Var
MB: IMetabase;
MS: IMetabaseSecurity;
MP: IMetabasePolicy;
User: ISecuritySubject;
LogonHP: ILogonHoursPolicy;
LH: ILogonHours;
LHP: ILogonHoursPeriods;
d1, d2, d3, d4: DateTime;
Lic: Object;
Begin
MB := MetabaseClass.Active;
// Получим лицензию для возможности работы с менеджером безопасности
Lic := MB.RequestLicense(UiLicenseFeatureType.Adm);
MS := MB.Security;
MP := MS.Policy;
// Получим параметры пользователя
User := MS.ResolveName("USER");
LogonHP := MP.LogonHoursPolicy(User);
LHP := LogonHP.Periods;
// Добавим период для разрешения доступа
LH := LHP.CreateHours;
d1 := DateTime.ComposeTimeOfDay(0, 0, 0, 0);
d2 := DateTime.ComposeTimeOfDay(9, 0, 0, 0);
d3 := DateTime.ComposeTimeOfDay(18, 0, 0, 0);
d4 := DateTime.ComposeTimeOfDay(23, 59, 0, 0);
LH.SetPeriodAccess(d1, d2, False);
LH.SetPeriodAccess(d2, d3, True);
LH.SetPeriodAccess(d3, d4, False);
d1 := DateTime.Now;
d2 := DateTime.AddDays(d1, 30);
LHP.SetPeriodAccess(d1, d2, LH);
// Сохраним изменения
MS.Apply;
// Освободим лицензию
Lic := Null;
End Sub UserProc;
Imports Prognoz.Platform.Interop.Metabase;
Imports Prognoz.Platform.Interop.ForeSystem;
…
Public Shared Sub Main(Params: StartParams);
Var
MB: IMetabase;
MS: IMetabaseSecurity;
MP: IMetabasePolicy;
User: ISecuritySubject;
LogonHP: ILogonHoursPolicy;
LH: ILogonHours;
LHP: ILogonHoursPeriods;
d1, d2, d3, d4: DateTime;
Lic: Object;
Begin
MB := Params.Metabase;
// Получим лицензию для возможности работы с менеджером безопасности
Lic := MB.RequestLicense(UiLicenseFeatureType.lftAdm);
MS := MB.Security;
MP := MS.Policy;
// Получим параметры пользователя
User := MS.ResolveName("USER");
LogonHP := MP.LogonHoursPolicy[User];
LHP := LogonHP.Periods;
// Добавим период для разрешения доступа
LH := LHP.CreateHours();
d1 := DateTime.Parse("0:00:00");
d2 := DateTime.Parse("9:00:00");
d3 := DateTime.Parse("18:00:00");
d4 := DateTime.Parse("23:59:59");
LH.SetPeriodAccess(d1, d2, False);
LH.SetPeriodAccess(d2, d3, True);
LH.SetPeriodAccess(d3, d4, False);
d1 := DateTime.Now;
d2 := d1.AddDays(30);
LHP.SetPeriodAccess(d1, d2, LH);
// Сохраним изменения
MS.Apply();
// Освободим лицензию
Lic := Null;
End Sub;
После выполнения примера будут изменены параметры доступа в определенный период времени для пользователя «USER». Начиная с текущего дня, и в течение следующих 30 дней, доступ под этим пользователем будет возможен с 9 часов утра до 18 часов вечера.
См. также: