UserCredentialsLock

From SunFlurry wiki
Revision as of 12:42, 3 January 2024 by Admin (talk | contribs) (1 revision imported)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
  UserCredentialsLock (Административные функции)
Объект:Функции общего назначения
Статус разработки: Реализована
Тип:Функция
Обращение к БД:Сервер
Исключения:Недостаточно прав, файловый сервер.
Визуальность:Нет

Функция временно блокирует доступ к редактору учетных записей пользователей (для подготовки к изменениям). Для исполнения функции необходимо наличие административных прав. Внимание: после функции должен следовать блок <Try> ... <Finally><EndTry> для гарантированного вызова функции разблокировки UserCredentialsUnlock. Если доступ уже был заблокирован ранее, функция возвращает имя пользователя, машины и время, когда он был заблокирован.

Синтаксис

UserCredentialsLock(<Заблокировано пользователем (STRING)>,<Заблокировано на машине (STRING)>,<Время блокировки (DATE)>):<0 или 1 (INT)>

Аргументы

  • <Заблокировано пользователем (STRING)> - (необязательный аргумент)(возможен аргумент-переменная (ByRef)) Аргумент-переменная возвращает имя пользователя, заблокировавшего доступ к учетным данным. Переменная будет заполнена только если функция возвратит 0.
  • <Заблокировано на машине (STRING)> - (необязательный аргумент)(возможен аргумент-переменная (ByRef)) Аргумент-переменная возвращает имя компьютера, на котором был заблокирован доступ к учетным данным. Переменная будет заполнена только если функция возвратит 0.
  • <Время блокировки (DATE)> - (необязательный аргумент)(возможен аргумент-переменная (ByRef)) Аргумент-переменная возвращает дату и время начала блокировки доступа к учетным данным. Переменная будет заполнена только если функция возвратит 0.

Возвращаемое значение

Возвращает 1 в случае успешной установки блокировки, иначе возвращает 0.

Примеры

//Фрагмент блокирует доступ пользователя Нарушитель2" к серверу базы данных.
бПольз:="Нарушитель2";

аПольз:="";
аМаш:="";
аВремя:=0;
If not UserCredentialsLock(аПольз,аМаш,аВремя) Then
  Message("Учетные записи заблокированы администратором "+аПольз+" на компьютере "+аМаш+" в "+FormatDate(аВремя,"DD.mm.YYYY hh:tt:ss")+"!","!");
  Exit;
EndIf;
Try
  Стр:=UserCredentialsLoad;
  //Загрузка файла учетных записей в объект Ini-файла
  aIni:=Ini.Create();
  If aIni.AddFromString(Стр) Then
    If not aIni.DoesExist(бПольз+"\") Then
      Message("Пользователь "+бПольз+" не зарегистрирован на сервере!","!");
    ElseIf Number(aIni.GetData(бПольз+"\ifDisabled","0"))<>0 Then
      Message("Пользователь "+бПольз+" уже был заблокирован!","I");
    Else
      //Добавим или обновим переменную ifDisabled. 
      aIni.AddLeaf(бПольз+"\ifDisabled","1");
      Стр:=aIni.StoreToString("");
      //Удалить все комментарии (необязательный шаг)
      Стр:=ReplaceRE(Стр,"^;.*\R","");
      //Сохраним результат на сервере
      If UserCredentialsStore(Стр) Then
        Message("Пользователь "+бПольз+" был успешно заблокирован!","I");
      Else
        Message("Ошибка сохранения учетных записей пользователей!","!");
      EndIf;
    EndIf;
  EndIf;
Finally
  UserCredentialsUnlock();
EndTry;