Высокоуровневые функции.
Пред. | Глава 8. Интерфейс для OS/2 REXX. |

## Высокоуровневые функции.

Описанные в этом разделе функции решают самые частые задачи не требуя от пользователя изучения протокола MMP и выполняют все необходимые действия связанные с отправкой команд и чтением ответов сервера.

Кроме ответа `SUCCESS:` при успешном выполнении и `ERROR:`code`` в случае ошибки, данные функции могут возвращать значение `FAIL:`text`` в случае отказа в выполнении команды сервером. Вызывающий сценарий может проанализировать строку после двоеточия для определения причин отказа.

### Функция mmpQueryUser.

    mmpQueryUser(handle,stem[,username])

Функция устанавливает свойства пользователя, имя которого задано аргументом `username`, который может быть псевдонимом. Если имя указано без доменной части - используется домен текущего пользователя сеанса `handle`. Если аргумент `username` опущен, подразумевается текущий пользователь сеанса `handle`.

При успешном выполнении функция возвращает строку `SUCCESS:` и заполняет переменную-основу (stem) REXX. Имя переменной задаётся вторым аргументом. После возврата переменная будет содержать:

`stem`.USER

  Полное имя пользователя.

`stem`.FLAGS

  Флаги пользователя разделённые пробелом.

`stem`.LIMIT

  Ограничение ресурса пользователя на хранилище (в байтах).

`stem`.USED

  Использованный объём ресурса пользователя на хранилище (в байтах).

`stem`.COPYTO

  Адрес электронной почты на который будут отправляться входящие сообщения пользователя.

`stem`.DEPTHMAX

  Ограничение на глубину вложенности папок (или почтовых ящиков в терминах IMAP) которые может создавать пользователь.

`stem`.LOGINTIME

  Дата и время последней успешной аутентификации пользователя в формате `YYYY`-`MM`-`DD` `HH`:`MM`:`SS`, где: `YYYY` - год, `MM` - месяц, `DD` - день месяца, `HH`:`MM`:`SS` - время (часы:минуты:секунды).

Пользователи создавшие сеанс не имеющие флагов OPER или ADMIN могут запрашивать только собственные свойства. Операторы доменов могут запрашивать свойства пользователей только своего домена, если это не администраторы или операторы домена.

### Функция mmpSetUser.

    mmpSetUser(handle,stem[,username])

Функция устанавливает свойства пользователя, имя которого задано аргументом `username`, который может быть псевдонимом. Если имя указано без доменной части - используется домен текущего пользователя сеанса `handle`. Если аргумент `username` опущен, подразумевается текущий пользователь сеанса `handle`.

При успешном выполнении функция устанавливает свойства пользователя используя значения переменной-основы (stem) REXX, имя которой указано во втором аргументе, и возвращает строку `SUCCESS:`. Используются следующие значения переменной `stem`:

`stem`.PASSWORD

  Пароль пользователя. Пароль должен удовлетворять требованиям к сложности заданным конфигурацией, в противном случае изменения не будут приняты и результатом выполнения функции будет строка `FAIL:NO (TOO-WEAK-PSWD) "The password is not strong enough"`.

`stem`.FLAGS

  Флаги пользователя разделённые пробелом. Операторы домена не могут указывать флаги ADMIN и OPER.

`stem`.LIMIT

  Ограничение ресурса пользователя на хранилище (в байтах или с указанием размерности как в конфигурации).

`stem`.COPYTO

  Адрес электронной почты на который будут отправляться входящие сообщения пользователя.

`stem`.DEPTHMAX

  Ограничение на глубину вложенности папок (или почтовых ящиков в терминах IMAP) которые может создавать пользователь.

Пользователи не имеющие флагов OPER или ADMIN могут устанавливать только собственное свойство PASSWORD. Операторы домена могут устанавливать свойства пользователей только своего домена, если это не администраторы или операторы домена.

### Функция mmpCreateUser.

    mmpCreateUser(handle,[stem],username)

Функция создаёт нового пользователя с именем из `username` до "@" в домене, имя которого взято из доменной части `username`. Если имя указано без доменной части - используется имя `username` и домен текущего пользователя сеанса `handle`.

Если указан второй аргумент, он рассматривается как имя переменной-основы (stem) REXX, следующие её значения используются для установки свойств нового пользователя:

`stem`.PASSWORD

  Пароль пользователя.

`stem`.FLAGS

  Флаги пользователя разделённые пробелом. Операторы домена не могут указывать флаги ADMIN и OPER.

`stem`.LIMIT

  Ограничение ресурса пользователя на хранилище (в байтах или с указанием размерности как в конфигурации).

`stem`.COPYTO

  Адрес электронной почты на который будут отправляться входящие сообщения пользователя.

`stem`.DEPTHMAX

  Ограничение на глубину вложенности папок (или почтовых ящиков в терминах IMAP) которые может создавать пользователь.

Операторы домена могут создавать пользователей только в своих доменах.

### Функция mmpDeleteUser.

    mmpDeleteUser(handle,username)

Функция удаляет пользователя с именем из `username` до "@" в домене с именем взятым из доменной части `username`. Если имя указано без доменной части - используется имя `username` и домен текущего пользователя сеанса `handle`.

Операторы домена могут удалять пользователей только в своих доменах и только тех, у которых не установлены флаги ADMIN или OPER.

### Функция mmpQueryVCStem.

    mmpQueryVCStem(handle,stem[,username])

Функция запрашивает личные данные пользователя `username` из vCard и заполняет соответствующие значения переменной-основы (stem) REXX, имя которой указано во втором аргументе:

`stem`.N_FAMILY

  Фамилия.

`stem`.N_GIVEN

  Имя.

`stem`.N_MID

  Дополнительное/второе имя / отчество.

`stem`.N_PREF

  Почтительные префиксы.

`stem`.N_SUFF

  Почтительные суффиксы.

`stem`.ORG

  Организация.

`stem`.ORG_DEP

  Отдел.

`stem`.TEL_HOME

  Номер телефона, домашний.

`stem`.TEL_WORK

  Номер телефона, рабочий.

`stem`.TEL_CELL

  Номер телефона, сотовый.

`stem`.FN

  Полное имя / название.

`stem`.NICKNAME

  Псевдоним.

`stem`.TITLE

  Должность.

`stem`.EMAIL

  Альтернативный адрес эл. почты.

`stem`.NOTE

  Примечание.

Если имя пользователя опущено, используется текущий пользователь сессии `handle`.

### Функция mmpSetVCStem.

    mmpSetVCStem(handle,stem[,username])

Функция устанавливает личные данные пользователя `username` формируя vCard из соответствующих значений переменной-основы (stem) REXX, имя которой указано во втором аргументе. Переменная `stem` имеет те же значения что и для функции mmpQueryVCStem.

Обычные пользователи могут устанавливать vCard только для своей учётной записи и только если для пользователя установлен флаг VCARD. Операторы домена могут устанавливать vCard только для пользователей своего домена если они не являются операторами домена или администраторами.

### Функции mmpCreateDomain и mmpDeleteDomain.

    mmpCreateDomain(handle,name)

    mmpDeleteDomain(handle,name)

Функции mmpCreateDomain и mmpDeleteDomain предназначены, соответственно, для создания нового домена и удаления существующего домена.

Данные функции могут выполняться только администраторами.

Пред. | Наверх |
Отправка команд и получение ответов. | Начало |