ILogonHours.SetPeriodAccess

Синтаксис Fore

SetPeriodAccess(Begin_: DateTime; End_: DateTime; Grant: Boolean);

Синтаксис Fore

SetPeriodAccess(@Begin: System.DateTime; @End: System.DateTime; Grant: boolean);

Параметры

Begin_ - начальное время временного промежутка.

End_ - конечное время временного промежутка.

Grant - параметр, определяющий возможность доступа в указанном временном промежутке. Если в качестве значения параметра передается значение True, то доступ в данном временном промежутке будет разрешен. Если в качестве значения передается False, то доступ будет запрещен.

Описание

Метод SetPeriodAccess устанавливает параметры доступа пользователя для указанного промежутка времени.

Комментарии

Временной промежуток формируется путем указания в параметрах Begin_ и End_ начального и конечного времени соответственно. Параметр Grant определяет возможность доступа в данном временном промежутке.

В методе SetPeriodAccess промежуток времени задается с точностью до секунд, в поле миллисекунд должно быть указано значение «0».

Пример Fore

Для выполнения примера предполагается наличие зарегистрированного в платформе пользователя с идентификатором «User_1».

Добавьте ссылки на системную сборку «Metabase».

Sub UserProc;
Var
    MB: IMetabase;
    MS: IMetabaseSecurity;
    MP: IMetabasePolicy;
    User: ISecuritySubject;
    LogonHP: ILogonHoursPolicy;
    LH: ILogonHours;
    d1, d2, d3, d4: DateTime;
    i: Integer;
Begin
    MB := MetabaseClass.Active;
    MS := MB.Security;
    MP := MS.Policy;
    User := MS.ResolveName("User_1");
    LogonHP := MP.LogonHoursPolicy(User);
    d1 := DateTime.ComposeTimeOfDay(0000);
    d2 := DateTime.ComposeTimeOfDay(9000);
    d3 := DateTime.ComposeTimeOfDay(18000);
    d4 := DateTime.ComposeTimeOfDay(235900);
    For i := 1 To 5 Do
        LH := LogonHP.WeekDayHours(i As CalendarDayOfWeek);
        LH.SetPeriodAccess(d1, d2, False);
        LH.SetPeriodAccess(d2, d3, True);
        LH.SetPeriodAccess(d3, d4, False);
        LogonHP.WeekDayHours(i As CalendarDayOfWeek) := LH;
    End For;
    //Суббота
    LH := LogonHP.WeekDayHours(CalendarDayOfWeek.Saturday);
    LH.SetPeriodAccess(d1, d4, False);
    LogonHP.WeekDayHours(CalendarDayOfWeek.Saturday) := LH;
    //Воскресенье
    LH := LogonHP.WeekDayHours(CalendarDayOfWeek.Sunday);
    LH.SetPeriodAccess(d1, d4, False);
    LogonHP.WeekDayHours(CalendarDayOfWeek.Sunday) := LH;
    MS.Apply;
End Sub UserProc;

После выполнения примера будут изменены параметры доступа по дням недели для пользователя «User_1». Доступ под этим пользователем будет возможен с понедельника по пятницу, с 9 до 18 часов.

Пример Fore.NET

Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.

Добавьте ссылки на системную сборку «ForeSystem».

Imports Prognoz.Platform.Interop.ForeSystem;

Public Shared Sub Main(Params: StartParams);
Var
    MB: IMetabase;
    MS: IMetabaseSecurity;
    MP: IMetabasePolicy;
    User: ISecuritySubject;
    LogonHP: ILogonHoursPolicy;
    LH: ILogonHours;
    d1, d2, d3, d4: DateTime;
    i: Integer;
Begin
    MB := Params.Metabase;
    MS := MB.Security;
    MP := MS.Policy;
    User := MS.ResolveName("User_1");
    LogonHP := MP.LogonHoursPolicy[User];
    d1 := DateTime.Parse("0, 0, 0, 0, 0");
    d2 := DateTime.Parse("9, 0, 0, 0, 0");
    d3 := DateTime.Parse("18, 0, 0, 0, 0");
    d4 := DateTime.Parse("23, 59, 0, 0, 0");
    For i := 1 To 5 Do
        LH := LogonHP.WeekDayHours[i As CalendarDayOfWeek];
        LH.SetPeriodAccess(d1, d2, False);
        LH.SetPeriodAccess(d2, d3, True);
        LH.SetPeriodAccess(d3, d4, False);
        LogonHP.WeekDayHours[i As CalendarDayOfWeek] := LH;
    End For;
    //Суббота
    LH := LogonHP.WeekDayHours[CalendarDayOfWeek.dowSaturday];
    LH.SetPeriodAccess(d1, d4, False);
    LogonHP.WeekDayHours[CalendarDayOfWeek.dowSaturday] := LH;
    //Воскресенье
    LH := LogonHP.WeekDayHours[CalendarDayOfWeek.dowSunday];
    LH.SetPeriodAccess(d1, d4, False);
    LogonHP.WeekDayHours[CalendarDayOfWeek.dowSunday] := LH;
    MS.Apply();
End Sub;

См. также:

ILogonHours