CommuniGate Pro
Версия 5.1
Программы
 
 
 
WebApp

Веб Приложения

Модуль Веб Приложения CommuniGate Pro обеспечивает доступ к различным объектам CommuniGate Pro (пользователи, сообщения, списки рассылки, файлы) через любой Веб (HTTP/HTML/WML/cHTML) браузер.

HTTP модуль получает HTTP запросы браузера клиента, приходящие на порт(ы), предназначенные для обслуживания Веб Интерфейса Пользователя и передаёт запросы в модуль Веб Приложения. Модуль Веб Приложения либо выдаёт требуемый файл, либо запускает внутренний код веб приложения и преобразовывает результат в формат разметки HTML, WML или какой-либо другой. Результат возвращается в HTTP модуль, который уже доставляет его браузеру клиента.

Если вы хотите создать ваш собственный Веб Интерфейс Пользователя для Сервера CommuniGate Pro, то ознакомьтесь с этим разделом.

Обработка, независимая от Состояния и Обработка в Сессии

Обычные HTTP сервера являются независимыми от состояния обработчиками: браузер пользователя может отправлять несколько последовательных запросов, но HTTP сервер не сохраняет между запросами информацию о браузере или клиенте. Каждый запрос обрабатывается индивидуально.

Сервер Веб Приложений позволяет пользователям "войти" на сервер, задав имя Пользователя CommuniGate Pro и пароль пользователя. После каждого успешного входа, начинается Сессия. Сессия хранит информацию о запросах и действиях пользователя, так что все HTTP запросы, отправляемый в рамках одной сессии, используют один и тот же набор данных сессии.

Для того, что бы запросы обслуживались в сессии, они должны иметь следующий вид:
http://hostname:serverport/Session/sessionID/sessionRequest
где строка sessionID идентифицирует сессию, а имя sessionRequest является именем файла, которые необходимо получить или именем компонента приложения, которое необходимо выполнить.

Сессии Веб Приложений имеют счётчики времени. Если сессии не было отправлено никакого HTTP запроса в течении определённого интервала времени, то Сессия закрывается. Пользователь, работающий в сессии, может закрыть сессию, отправив запрос на специальную страницу Bye.


Виды Интерфейса

В Веб Интерфейсе Пользователя Сервера реализована возможность по изменению Вида Интерфейса. Каждый Вид Интерфейса является набором файлов, которые определяют, в каком виде пользователям будет представляться информация. Файлы Вида Интерфейса включают в себя:

Программное обеспечение CommuniGate Pro поставляется со стандартным Безымянным Видом Интерфейса, обеспечивающим простые, функциональные HTML и WML интерфейсы. В поставке имеются также несколько визуально более насыщенных стандартных Именованных Видов Интерфейса. Это Стандартные Виды Интерфейса хранятся в директории программ, являются частью программного обеспечения и системные администраторы не должны их изменять.

В CommuniGate Pro могут также использоваться Безымянные и Именованные пользовательские Виды Интерфейса. Пользовательские Виды Интерфейса могут создаваться как Виды Интерфейса, Общие для Сервера. Эти Пользовательские Виды Интерфейса доступны всем пользователям. Каждый Домен CommuniGate Pro также имеет свой собственный набор пользовательских Видов Интерфейсов, доступный только для пользователей из этого Домена.

Когда пользователь соединяется с сервисом Веб Интерфейс Пользователя (через порт HTTP User), строка hostname, указанная в URL независимого от состояния запроса, используется для поиска Домена CommuniGate Pro. При нахождении Домена, из него берутся Настройки WebUser Пользователя по Умолчанию, Имя Вида Интерфейса и Настройки Языка.

Настройка SkinName указывает имя используемого Вида Интерфейса (если эта настройка не задана, то используется Безымянный Вид Интерфейса).

Если Вид Интерфейса с указанным Именем не найден в наборе Видов Интерфейса Домена, то проверяется Набор Видов Интерфейса, Общий для Сервера. Если Вид Интерфейса с указанным именем не найден и в этом наборе, то используется Стандартный Вид Интерфейса с указанным именем. Если Именованный Стандартный Вид Интерфейса также не найден, то используется Безымянный Стандартный Вид Интерфейса.

Так как Домены могут иметь свои собственные Наборы Вида Интерфейса, то такой же запрос, отправленный в другой Домен, может отобразить другую страницу: Настройки WebUser Пользователя по Умолчанию могут иметь различные имена Видов Интерфейса для разных Доменов и даже если Настройки совпадают, в разных Доменах могут существовать разные Виды Интерфейса под одними и теми же именами.

Запросы, независимые от состояния, могут использовать любой доступный Вид Интерфейса для адресуемого Домена. Для использования альтернативного Вида Интерфейса, независимый от состояния HTTP запрос должен задавать имя Вида Интерфейса, используя параметр запроса Skin.

Настройка Язык, получаемая из фактически действующих Настроек WebUser Пользователя по Умолчанию, задаёт язык, используемый в странице, независимой от состояния. Для использования другого языка, независимый от Состояния HTTP запрос должен задавать имя языка при помощи параметра запроса Language.

Сессионные HTTP запросы не используют строку hostname, указанную в URL. Вместо этого при входе пользователя на сервер создаётся сессия Веб Приложения для указанного Пользователя CommuniGate Pro и для всей этой сессии берутся фактически действующие Настройки WebUser Пользователя. Эти настройки содержат в себе название используемого Вида Интерфейса (пустое значение означает Безымянный Вид Интерфейса). Вид Интерфейса с указанным названием выбирается из набора Видов Интерфейса Домена Пользователя (обратите внимание, что Домен, указанный в URL запроса, может быть другим).
Если в Домене Пользователя указанный Вид Интерфейса отсутствует, то используется Вид Интерфейса, Общий для Сервера.

Сессионные HTTP запросы используют Язык, заданный в Настройках WebUser Пользователя.

Виды WAP/WML Интерфейса

HTTP модуль проверяет содержимое поля заголовка Accept запроса. Если это поле содержит подстроку wml, то модуль предполагает, что запрос поступил от WML браузера.

Запросы, приходящие от WML браузеров, обрабатываются с использованием Вида Интерфейса WML. Для Запросов, независимых от Состояния, название Вида Интерфейса берётся из параметра WAP/WML Настроек WebUser по Умолчанию для адресуемого Домена. Когда пользователь входит на сервер, используя WML браузер, то название Вида Интерфейса берётся из параметра WAP/WML Настроек WebUser этого Пользователя.

Все имена Вида Интерфейса, начинающиеся с букв WML, считаются Видами WML Интерфейса. Эти Виды Интерфейса появляются в списке доступных Видов Интерфейса для параметров WAP/WML и эти Виды Интерфейса удаляются из списка доступных Видов Интерфейса для параметров обычного Вида Интерфейса.

Виды cHTML (I-Mode) Интерфейса

HTTP модуль проверяет содержимое поля заголовка запроса User-Agent.
Если это поле содержит подстроку DoCoMo, то модуль предполагает, то запрос поступил от Японского I-Mode браузера.
Если это поле содержит подстроку portalmmm, то модуль предполагает, то запрос поступил от Европейского I-Mode браузера.

Запросы I-Mode обрабатываются специальными I-Mode Видами Интерфейса, аналогично тому, как WML запросы обрабатываются WML Видами Интерфейса. Специальный параметр Настроек WebUser I-Mode/cHTML используется для задания имени используемого I-Mode Вида Интерфейса.

Все имена Вида Интерфейса, начинающиеся с букв IMode, считаются cHTML Видами Интерфейса. Эти Виды Интерфейса появляются в списке доступных Видов Интерфейса для параметров I-Mode/cHTML и эти Виды Интерфейса удаляются из списка доступных Видов Интерфейса для параметров обычного Вида Интерфейса.

Для всех страниц, получаемых Японскими cHTML браузерами, кодировка устанавливается в значение Shift-JIS и все страницы конвертируются в эту кодировку.
Для всех страниц, получаемых Европейскими cHTML браузерами, кодировка устанавливается в значение Windows-1251 и все страницы конвертируются в эту кодировку.


Иерархия Файлов Вида Интерфейса

При обработке запроса Веб Интерфейса Пользователя, Серверу необходимо получать определённый файлы из выбранного Вида Интерфейса. Если требуемый файл не обнаружен в выбранном Виде Интерфейса и выбранный Вид Интерфейса является Видом Интерфейса Домена, то берётся файл с тем же именем из Вида Интерфейса, Общего для Сервера. Если требуемый файл не обнаружен в Виде Интерфейса, Общем для Сервера, то проверяется Стандартный Вид Интерфейса с таким же именем. Если файл не обнаружен и там, и выбранный Вид Интерфейса является Именованным Видом Интерфейса, то проверяются общесерверный Безымянный Вид Интерфейса и безымянный Стандартный Вид Интерфейса.

Первоначально, когда в Домене отсутствуют Пользовательские Виды Интерфейса и нет Видов Интерфейса, Общих для Сервера, все Домены могут использовать только Стандартные Виды Интерфейса. По умолчанию, выбирается Безымянный Вид Интерфейса.
Загружая файлы в общесерверный Безымянный Вид Интерфейса, Администратор Сервера может "заменить" файлы Безымянного Стандартного Вида Интерфейса, что, соответственно, изменит внешний вид приложения для всех Доменов.
Загружая файлы в Безымянный Вид Интерфейса какого-нибудь Домена CommuniGate Pro, Администратор Сервера или Домена может "заменять" файлы Стандартного Вида Интерфейса и файлы общесерверного Безымянного Вида Интерфейса, что, соответственно, изменит внешний вид приложения для этого конкретного Домена.

Такая иерархия позволяет Администраторам Сервера и Домена использовать как новые Виды Интерфейса, созданные "с нуля", так и делать небольшие изменения в Видах Интерфейса, повторно используя уже существующий файлы Видов Интерфейса.

В Установках с Динамическим Кластером имеется два набора Видов Интерфейса, Общих для Сервера - один набор используется для локальных Доменов Сервера, а другой, Кластерный набор, используется для всех Общих Доменов в Кластере. Изменения этих Видов Интерфейса, Общих для Кластера, а также изменения любого Вида Интерфейса для Общих Доменов, автоматически распространяются на всех членов Кластера.


Языки и Текстовые Наборы Данных Вида Интерфейса

Каждый Вид Интерфейса может иметь текстовый набор данных - текстовый файл strings.data. Этот файл "языка по умолчанию" содержит словарь. Страницы с WSSP Сценариями могут использовать различные команды для получения данных из этого словаря с текстовым набором данных.

Вид Интерфейса может содержать также дополнительные, локализованные файлы с текстовыми наборами данных - файлы language.data, где language является названием языка (french.data, japanese.data и т.п.). Если выбран язык, не являющийся языком по умолчанию, то используется Текстовый Набор Данных из соответствующего языкового файла.

Когда выбранный Текстовый Набор Данных для выбранного Вида не содержит требуемых данных, то проверяется Текстовый Набор Данных того же языка во всех "родительских" Видах Интерфейса (как показано выше). Если требуемые данные не найдены и там, то используется Текстовый Набор Данных для "языка по умолчанию".

Используйте кодировку UTF-8 для не ASCII символов в строках в файле с Текстовым Набором Данных. Дополнительную информацию о Юникод и кодировке UTF-8 вы можете найти на сайте http://www.unicode.org.


Обслуживание Обычных Файлов

Если в URL содержится имя с любым расширением имени файла, отличным от .wssp, то модуль Веб Приложения получает этот файл из выбранного Вида Интерфейса, помещает его во внутренний Кэш Вида Интерфейса и возвращает файл браузеру клиента через соединение, установленное HTTP модулем.

Указанные имена файлов всегда преобразовываются в нижний регистр.

Когда модуль Веб Приложения получает запрос на тот же файл, он берётся из Кэша Вида Интерфейса.

Если файл был затребован при помощи сессионного URL, то счётчик времени этой сессии сбрасывается. Это может использоваться для создания фрейма в окне браузера клиента и периодического запроса какого-либо файла с использованием сессионного URL. В результате, таймер неактивности сессии будет сбрасываться и сессия будет оставаться активной все время, пока этот фрейм отображается в браузере клиента.

Администраторы Системы и Домена могут загружать пользовательские файлы в общесерверные и Доменные Виды Интерфейса для изменения внешнего вида Веб Приложений.
Например, Стандартный Вид Интерфейса использует файл Logo.gif в большинстве своих страниц. Загрузив пользовательский файл Logo.gif в общесерверный Безымянный Вид Интерфейса, вы можете изменить вид страниц Веб Приложения даже не создавая и не загружая пользовательские файлы WSSP.

Для включения ссылки на файл в страницу .wssp, полученную при помощи запроса, независимого от Состояния, используйте префикс %%filesRef%% в .wssp коде:

... href="%%filesRef%%filename.extension" ...
Дополнительную информацию смотрите в разделе
Компоненты для Запросов, независимых от Состояния.

Сессии могут использовать Именованные Виды Интерфейса; как правило, сессионным страницам необходимо ссылаться на обычные файлы из того же Вида Интерфейса. Ссылки в "области сессии" (href="filename.extension" или href="/Session/sessionID/filename.extension") будут работать, но они не позволят клиентским браузерам кэшировать эти файлы между сессиями, так как каждая сессия имеет свой собственный sessionID и URL файла будет различным для каждой сессии. Для того, что бы позволить браузерам клиентов кэшировать обычные файлы, используйте для URL файлов префикс %%SESSION(filesRef)%%.

... href="%%SESSION(filesRef)%%/filename.extension" ...
Дополнительную информацию смотрите в разделе Наборы Данных Сессии.

Обслуживание Файлов Веб Приложений (WSSP)

Когда URL указывает на ресурс с именем расширения файла .wssp, модуль Веб Приложения получает указанный файл WSSP из Вида Интерфейса, а затем компилирует его в некоторый внутренний код. Затем модуль запускает код Веб Приложения, связанный с именем файла. Этот код производит набор данных, содержащий различные строки, массивы и словарные данные. Затем модуль, используя этот набор данных, запускает внутренний (скомпилированный) код для создания HTML страницы и возвращает результирующую HTML страницу браузеру через соединение, установленное HTTP модулем.

Указанные имена ресурсов всегда преобразовываются в нижний регистр.

Формат WSSP файла описывается в разделе WSSP Сценарии. Администраторы Системы и Домена могут создавать пользовательские WSSP файлы и загружать их в общесерверные и Доменные Виды Интерфейса для изменения внешнего вида Веб Приложений.

В разделе ниже приводятся доступные компоненты Веб Приложений, определяющие набор страниц WSSP, которые могут создаваться в этой версии сервера CommuniGate Pro. В нём также указывается, как каждый компонент обрабатывает параметры отправляемой ему формы и какие данные включаются в создаваемые компонентом наборы данных.


Создание и Обслуживание Вида Интерфейса

Веб Интерфейс Администратора имеет страницы для Редактирования Вида Интерфейса, которые позволяют обслуживать Общие для Сервера, Общие для Кластера и Общие для Домена Виды Интерфейса.

Для обслуживания Общих для Сервера и Общих для Кластера Видов Интерфейса откройте через Веб Интерфейс Администратора область Домены нажмите на ссылку Интерфейсы.

Для обслуживания Вида Интерфейса Домена откройте через Веб Интерфейс Администратора область Домены, выберите требуемый Домен и нажмите на ссылку Интерфейсы. Для создания и изменения Интерфейсов Домена Администратор Домена должен обладать правом доступа "Может модифицировать Интерфейсы".

При открытии страницы Редактирования Видов Интерфейсов Домена, в случае, если Безымянный Вид Интерфейса для Домена отсутствует, то на странице имеется кнопка Создать Особый Интерейс. Нажмите на эту кнопку Для того, что бы создать Безымянный Вид Интерфейса.

Страница Редактирование Вида Интерфейса содержит список всех "видимых" в этом Виде Интерфейса файлов: тут перечисляются как файлы, непосредственно загруженные в этот конкретный Вид Интерфейса, так и все файлы, загруженные в Виды Интерфейса и используемые как источник "файлов по умолчанию" для этого Вида Интерфейса:

 ИмяРазмерОбновлено
Help.gif15525-Сен-06
defaultaddressbook.wssi114323-Сен-06
defaultalerts.wssp172726-Сен-07
defaultansweredletter.gif89027-Фев-06
defaultattachedFile.gif114727-Фев-07
...
defaultmailbox.wssp580628-Сен-06
mailboxes.wssp345202-Окт-06
...
defaultstrings.data28K27-Окт-06
defaultgerman.data31K28-Окт-06
...
defaultwebsite.wssp59228-Сен-06
defaultwebsitebody.wssi264828-Сен-06

Файлы, непосредственно загруженные в Вид Интерфейса, имеют флажок в столбце Помеченные. Файлы из других Видов Интерфейса, "видимые" в этом Виде Интерфейса, имеют в этом столбце слово default.

Вы можете скачать любой файл из Имени Интерфейса, щёлкнув по имени файла.

Вы можете загрузить в Вид Интерфейса файл, нажав на кнопку Browse и выбрав файл, находящийся на вашем компьютере, а затем нажав на кнопку Загрузить Файл.

Вы можете удалить любой из загруженных в Вид Интерфейса файлов, отметив его флажком и нажав на кнопку Удалить Помеченные.

Когда вы загружаете .wssp или .wssi файл, Редактор сначала пытается скомпилировать этот файл. Если синтаксический анализатор компилятора обнаруживает ошибку, то файл не загружается, содержимое файла отображается на странице Редактирования и маркер красного цвета <--ERROR--> показывает точное место ошибки.

Если вы загружаете файл в любой Вид Интерфейса, то Кэш Вида Интерфейса очищается автоматически. Если вы загружаете файл в Вид Интерфейса Общего Домена или в Вид Интерфейса, Общий для Кластера, то изменённый файл автоматически распространяется на всех членов Кластера.

Вы можете загрузить набор файлов, выбрав TAR-архив (файл с именем расширения .tar). Например, если у вас есть TAR-архив с созданными ранее Видами Интерфейса, вы можете открыть Вид Интерфейса, который вы хотите изменить (общесерверный Безымянный Вид Интерфейса, общедоменный Безымянный Вид Интерфейса или какой-либо Именованный Вид Интерфейса) и загрузить в него файл .tar. Сервер распакует архив и будет сохранять каждый файл индивидуально, как будто бы они загружались один за одним.

На странице Редактирования для Безымянного Вида Интерфейса содержится также список всех Именованных Видов Интерфейса:
Именованные Интерфейсы
GoldenFleece
IceColdMail

Для создания Именованного Интерфейса, введите его имя и нажмите на кнопку Создать.

Для удаления Именованного Интерфейса, отметьте флажком этот Интерфейс и затем нажмите на кнопку Удалить Помеченные. Удалены могут быть только пустые Интерфейсы (Интерфейсы без каких-либо файлов).

Для удаления Безымянного Интерфейса, удалите все его файлы и все Именованные Интерфейсы, а затем нажмите на кнопку Удалить Особый Интерфейс.

Для того, что бы открыть Интерфейс, щёлкните мышкой по его имени. Редактор отобразит Имя Интерфейса и ссылку Наверх, с помощью которой вы можете вернуться к Безымянному Интерфейсу.

Редактор Именованных Видов Интерфейса позволяет вам переименовать Вид Интерфейса, введя Имя Нового Интерфейса и нажав на кнопку Переименовать Интерфейс.


Обработка Запросов

Модуль Веб Приложения CommuniGate Pro обрабатывает запросы для WSSP файлов вызывая компонент, который создаёт набор данных - словарь, содержащий ключи - текстовые строки и значения, связанный с этими ключами. Значения могут быть текстовыми строками, массивами значений или словарями.

Например, когда требуется вывести страницу Домена по умолчанию, вызывается специальный компонент и он создаёт словарь, в котором содержатся такие ключи, как canAutoSignup, hasMailLists, hasCertificate.

Модуль Веб Приложения может затем использовать код сценария из WSSP файла для преобразования этих данных в HTML страницу или в любой другой язык разметки страниц.

В этом разделе перечисляются доступные компоненты CommuniGate Pro, указывается, когда вызываются такие компоненты, объясняется, как компоненты обрабатывают параметры <FORM> и приводится содержимое набора данных, создаваемого такими компонентами.


Компоненты для Запросов, независимых от Состояния

Модуль Веб Приложения проверяет HTTP параметр Skin для всех запросов, независимых от Состояния. Если этот параметр существует, то модуль пытается открыть Именованный Вид Интерфейса с указанным именем; в противном случае используется Безымянный Интерфейс (для адресуемого Домена).

Модуль Веб Приложения проверяет HTTP параметр Language для всех запросов, независимых от Состояния. Если этот параметр существует, то модуль использует его для выбора Текстового Набора Данных, не применяемого по умолчанию для выбранного Вида Интерфейса.

Модуль Веб Приложения помещает определённые данные в наборы данных, создаваемые всеми компонентами Запросов, независимых от Состояния. В следующим списке приводятся эти "общие" элементы набора данных, которые могут использоваться во всех Независимых от Состояния WSSP страницах:

filesRef
Значением этого элемента является строка, которая может использоваться для формирования URL, ссылающегося на файл (изображение, стиль, данные и т.д.) в этом Интерфейсе и в этом Домене. Элемент HTML <img src="%%filesRef%%Logo.jpeg"> отобразит файл Logo.jpg "видимым" для текущего Вида Интерфейса.
serverName
Значением этого элемента является строка с именем сервера CommuniGate Pro Сервер (Именем его Главного Домена).
skinName
Значением этого опционального элемента является строка с именем текущего Вида Интерфейса.
language
Если был выбран язык не по умолчанию, то этот опциональный элемент содержит в себе строку с именем выбранного языка.
domainName
Значением этого элемента является строка с именем Домена CommuniGate Pro. Этот элемент существует, только если Сервер успешно направил Запрос, независимый от Состояния, на один из Доменов Сервера.
charset
Значением этого элемента является значение элемента charset из Текстового Набор Данных Вида Интерфейса Домена. Индивидуальные компоненты могут присваивать другие значения элементу charset (смотрите ниже).
secureChannel
Этот элемент существует и имеет строковое значение YES, если запрос был получен через безопасное (HTTPS) соединение.
isWML
Этот элемент существует и имеет строковое значение YES, если запрос был получен через WML браузер.

В следующем разделе приводятся независимые от Состояния URLы, имена вызываемых компонентов, действия, предпринимаемые этими компонентами и имена WSSP файлов, используемые для формирования HTTP ответов.


URLы: /, /default.html

эти URLы используются для обработки операции входа.

Действия

Если HTTP запрос имеет параметры username и password, то, используя эти параметры, предпринимается попытка аутентифицировать клиента. Если полученная пара параметров является корректной, то создаётся новая Сессия WebUser и в эту Сессию направляется запрос на "начальную страницу". Обычно этот запрос возвращает HTML "страницу переадресации", которая отсылается обратно браузеру пользователя. Она заставляет браузер войти в "область Сессии".

Если запрос имеет параметр DisableIPWatch, то "Защита по Фиксированному Адресу" будет для этой сессии выключена, даже если в Настройках WebUser Пользователя она было включена.

Если запрос имеет параметр DisableUseCookie, то "Защита при помощи Cookies" для этой сессии будет выключена, даже если в Настройках WebUser Пользователя она было включена.

Если запрос имеет параметр SessionSkin со строковым значением, не равным *, то сессия открывается с использованием Вида Интерфейса, заданного этим параметром. Вид Интерфейса ищется в том Домене, куда фактически вошёл пользователь (который может отличаться от Домена, показываемого на Странице Входа).

Результирующий Набор Данных
Если параметры username или password не были указаны или Сессия WebUser не была создана, то компонент генерирует следующий набор данных:
autoSignup
этот элемент (имеющий строковое значение YES) добавляется в набор данных, если для адресуемого Домена разрешена Свободная Регистрация.
clientAddress
этот строковый элемент содержит IP адрес браузера пользователя.
errorCode
этот элемент добавляется в набор данных, если операция Входа закончилась неуспешно. Значением является строка с кодом ошибки.
forgotPassword
этот элемент (имеющий строковое значение YES) добавляется в набор данных, если значением errorCode является "Incorrect Password" ("Неверный Пароль") или "Unknown Account" ("Неизвестный Пользователь").
hasCertificate
этот элемент (имеющий строковое значение YES) добавляется в набор данных, если для адресуемого Домена имеется пользовательский Сертификат.
hasDirectory
этот элемент (имеющий строковое значение YES) добавляется в набор данных, если Вид Интерфейса по умолчанию для адресуемого Домена в своём Текстовом Наборе Данных имеет массив элементов GuestDirectoryFields и этот массив не пустой.
hasLists
этот элемент (имеющий строковое значение YES) добавляется в набор данных, если для адресуемого Домена существует хотя бы один Список Рассылки. Этот элемент всегда добавляется, если адресуемый Домен является Общим Доменом.
skinNames
этот элемент содержит массив - список имён Видов Интерфейсов, доступных в адресуемом Домене.
loginName
этот строковый элемент добавляется в набор данных, если пользователь попытался войти на сервер и попытка окончилась неуспешно. Значение, указанное в параметре username, становится значением элемента loginName.
restoreSessionPage
этот строковый элемент добавляется в набор данных, если пользователь был отсоединён. Он содержит имя страницы, на которой была прервана сессия.
Для того, что бы продолжить прерванный запрос, в HTTP запрос, сгенерированный этой страницей, должен быть включён HTTP параметр restoreSessionPage со значением этого элемента.
restoreCharset
этот строковый элемент добавляется в набор данных, если пользователь был отсоединён. Он содержит кодировку, использованную в прерванной сессии.
Для того, что бы продолжить прерванный запрос, в HTTP запрос, сгенерированный этой страницей, должен быть включён HTTP параметр restoreCharset со значением этого элемента.
restoreParameters
этот массив элементов добавляется в набор данных, если пользователь был отсоединён. Каждый элемент массива является словарём, в котором содержатся следующие элементы:
name
имя параметра прерванного запроса.
value
закодированное значение прерванного параметра запроса.
Для того, что бы продолжить прерванный запрос, в HTTP запрос, сгенерированный этой страницей, должны быть включены параметры с этими именами и значениями.
страница WSSP
страница login.wssp используется для генерации HTTP ответа. Если запрос является WML запросом, то используется страница wlogin.wssp.

Если операция Входа завершилась успешно, то возвращается ответ HTTP Redirect, с URL переадресации, указывающим на WSSP страницу StartPage с вновь созданной Сессией. StartPage указывается как строка Вида Интерфейса StartPage (для WML сессий - wStartPage).

Если операция Входа закончилась успешно, но в запросе содержится параметр restoreSessionPage, то отображается страница resume.wssp (как независимая от Состояния), а для WML сессии - страница wresume.wssp.

Результирующий Набор Данных для этой страницы содержит:
restoreParameters
смотрите описание выше.
sessionID
SessionID для вновь созданной сессии (имеет то же значение, что и значение функции SESSION(ID), которая может использоваться в wssp страницах сессии).
jumpPage
страница wssp, открываемая в случае, если пользователь хочет продолжить прерванную операцию (включает в себя опциональные параметры).

URL: /RecoveryPassword.wssp

этот URL используется для обработки операций по Восстановлению Пароля.

Действия
Если HTTP запрос имеет параметры username и Send, то компонент пытается найти указанного Пользователя, получить пароль Пользователя и значение Настройки Пользователя RecoverPassword. Если пароль может быть расшифрован и настройка RecoverPassword задана, то на адрес, определённый в настройке RecoverPassword высылается сообщение электронной почты, в котором содержится пароль.
Результирующий Набор Данных
errorCode
этот элемент добавляется в набор данных, если операция Восстановления Пароля закончилась неуспешно. Значением является строка с кодом ошибки.
messageCode
этот элемент добавляется в набор данных, если операция Восстановления Пароля закончилась успешно. Значение является строкой PasswordSent.
страница WSSP
страница recoverypassword.wssp используется для генерации HTTP ответа.

URL: /Signup.wssp

этот URL используется для обработки операций по Свободной Регистрации.

Действия
Если HTTP запрос имеет параметры username, password1, password2 и realName, то компонент пытается создать указанного Пользователя. До создания Пользователя проверяется совпадение строк password1 и password2. Если новый Пользователь создан, то его установка UseAppPassword устанавливается в значение YES, а Password и RealName устанавливаются в заданные значения. Если HTTP запрос имеет также непустой параметр ForgotPassword, то он используется в качестве значения Настройки Пользователя RecoverPassword.

Компонент проверяет содержит ли запрос один (или более) строковый параметр PublicInfo. Значением этого параметра должны быть Публично Доступные атрибуты, указанные в установках Центрального Справочника. Затем компонент проверяет, существует ли непустой параметр запроса с таким именем и добавляет значение параметра в начальные Установки Пользователя.
Пример: для того, что бы добавить поле City на странице Регистрации, добавьте управляющий элемент <INPUT type="hidden" name="PublicInfo" value="City"> и управляющий элемент <INPUT type="text" name="City" value="" size=30 maxlength=255> в HTML код страницы Signup.wssp.

Если Пользователь был создан, то создаётся новая Сессия WebUser, и в эту Сессию направляется запрос на "начальную страницу" (смотрите выше).

Результирующий Набор Данных
Если параметры username, password1, password2 или realName не были указаны в HTTP запросе или новый Пользователь не был создан, то компонент генерирует следующий набор данных:
errorCode
этот элемент добавляется в набор данных, если операция Регистрации закончилась неуспешно. Значением является строка с кодом ошибки.
userName
этот элемент добавляется в набор данных, если HTTP запрос содержит непустой параметр userName. Значением этого элемента является значение параметра.
realName
этот элемент добавляется в набор данных, если HTTP запрос содержит непустой параметр realName. Значением этого элемента является значение параметра.
recoverPassword
этот элемент добавляется в набор данных, если HTTP запрос содержит непустой параметр recoverPassword. Значением этого элемента является значение параметра.
страница WSSP
страница signup.wssp используется для генерации HTTP ответа.

URL: /List/, /List/default.html

этот URL используется для получения списка доступных к просмотру Списков Рассылки Домена.

Действия
Параметры HTTP запроса не обрабатываются.
Результирующий Набор Данных
Компонент генерирует следующий набор данных:
errorCode
этот элемент добавляется в набор данных, если операция получения списка закончилась неуспешно. Значением является строка с кодом ошибки.
lists
этот элемент содержит массив описателей списка рассылки. Каждый описатель является словарём, в котором содержатся следующие ключи и их значения:
name
строка с названием списка рассылки.
realName
строка с "описанием" списка рассылки.
browse
строка, в которой описываются правила просмотра архива списка рассылки. строка может иметь значение anyone или subscribers.
страница WSSP
страница listlist.wssp используется для генерации HTTP ответа.

URL: /List/listname/, /List/listname/List.html

этот URL используется для получения части записей списка рассылки для Списков Рассылки listname.

Этот компонент фактически использует общий компонент Mailbox.

Действия
Компонент проверяет, содержит ли HTTP запрос параметр NextMessage с числовым значением. Если он существует, то это значение интерпретируется как уникальный идентификатор сообщения (UID) в архивной папке списка рассылки и компонент пытается найти это сообщение в выбранном режиме просмотра папки, а также пытается найти следующее сообщение в этом режиме просмотра.

Компонент проверяет, содержит ли HTTP запрос параметр PrevMessage с числовым значением. Если он существует, то это значение интерпретируется как уникальный идентификатор сообщения (UID) в архивной папке списка рассылки и компонент пытается найти это сообщение в выбранном режиме просмотра папки, а также пытается найти предыдущее сообщение в этом режиме просмотра.

Если следующее или предыдущее сообщение найдено, то его UID добавляется в набор данных (смотрите ниже) и общий компонент Mailbox не используется для обработки.

Если следующего/предыдущего сообщение не было найдено, то для обработки параметров HTTP запроса и генерации результирующего набора данных используется общий компонент Mailbox.

Результирующий Набор Данных
listName
строка с названием Списка Рассылки.

Если следующее или предыдущее сообщение найдено:

messageJump
строка с UID найденного сообщения.

Если следующее или предыдущее сообщение не запрашивалось в параметрах HTTP запроса или оно не было найдено:

realName
строка с Описанием Списка Рассылки
charset
строка с Предпочтительной Кодировкой Списка Рассылки

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

страница WSSP
страница listmailbox.wssp используется для генерации HTTP ответа.

URL: /List/listname/Message/uid.html

этот URL используется для получения сообщения с уникальным идентификатором uid из архива списка рассылки listname.

Фактически компонент использует общий Компонент Message.

Действия
Общий компонент Message используется для обработки параметров HTTP запроса и для создания результирующего набора данных.
Результирующий Набор Данных
listName
строка с названием Списка Рассылки.
nextMsg
этот элемент добавляется, если в просмотре архива списка рассылки есть следующее сообщение. Значением элемента является строка с UID следующего сообщения.
prevMsg
этот элемент добавляется, если в просмотре архива списка рассылки есть предыдущее сообщение. Значением элемента является строка с UID предыдущего сообщения.
Для генерирования остальной части результирующего набора данных используется обычный компонент Message.
страница WSSP
страница listmessage.wssp используется для генерации HTTP ответа.

Страницы Ошибок

Механизм WSSP используется для генерации тела HTTP ответов для сообщений об ошибках. В следующей таблице приводится список кодов ошибок HTTP, ситуаций, когда возникает такая ошибка и WSSP файлов, используемых для создания тела HTTP ответа об ошибке.

КодУсловие возникновения Ошибкииспользуемый WSSP файл
301местонахождение требуемого ресурса измененоmoved.wssp
404требуемый ресурс не существуетnotfound.wssp
401для получения требуемой страницы необходима HTTP Авторизация (заголовок запроса)unauthorized.wssp
401имя пользователя и пароль в заголовке запроса HTTP Авторизации неверныdenied.wssp
500общая ошибка системыfailure.wssp
501общая ошибка системыerror.wssp

Эти WSSP страницы обрабатываются с использованием наборов данных, создаваемых для всех запросов, независимых от Состояния, в которых содержатся следующие дополнительные элементы:

errorCode
этот элемент добавляется в набор данных, если существует код ошибки, о котором пользователь будет уведомлён.
hostName
этот элемент добавляется в набор данных, если HTTP запрос содержит поле Host:. Значением этого элемента является этот параметр поля запроса.

Страница disconnected.wssp используется, если HTTP запрос был отправлен в Сессию WebUser, но сессия не была найдена. Эта страница обрабатывается с использованием набора данных, создаваемого для всех запросов, независимых от Состояния.


Компоненты для Сессионных Запросов

При создании новой Сессии WebUser открывается и используется в качестве "Интерфейса Сессии" Вид Интерфейса, указанный Настройках WebUser Пользователя. Из Текстового Набора Данных Вида Интерфейса берётся строка StartPage, создаётся страница переадресации и отправляется браузеру клиента. Страница переадресации перенаправляет браузер пользователя в "Область Сессии", на страницу, заданную строкой StartPage.

HTTP запросы в "область Сессии" (запросы, в которых URL начинается с /Session/) обрабатываются как Сессионные Запросы. Вторым компонентом URL Сессионного Запроса является уникальный идентификатор Сессии, используемый HTTP модулем для нахождения сессии WebUser.

Если указанная сессия не найдена или у Сессии установлена опция Защита по Фиксированному Адресу, но HTTP запрос поступил с IP адреса, отличного от того, с которого поступил запрос на Вход, начавший сессию, то отображается страница disconnected.wssp (смотрите выше).

После того, как Сессия найдена, Модуль Веб Приложения обрабатывает оставшуюся часть URL запроса как "запрос внутри области сессии". Если URL запроса указывает на обычный файл, то этот файл берётся из Вида Интерфейса Сессии и отправляется обратно браузеру клиента.

Для каждого .wssp запросы вызывается соответствующий компонент. Он обрабатывает параметры HTTP запроса и создаёт результирующий набор данных. Затем из Вида Интерфейса берётся .wssp файл, который используется для создания HTTP ответа.

Если Результирующий Набор Данных не содержит элемента blockAlerts, то модуль Веб Приложения проверяет, не существует ли для пользователя сессии ожидающих его Предупреждений. Если найдено одно или несколько предупреждений, то вызывается компонент Alerts и для создания HTTP запроса используется файл Alerts.wssp.

Модуль Веб Приложения проверяет определённые параметры HTTP запроса и обрабатывает их при запросах всех .wssp страниц. В следующим списке приводятся эти "общие" действия:
EmptyTrashNow
Если HTTP запрос содержит этот параметр и папка (или псевдоним папки с именем Trash) может быть открыта с правами доступа к папке "Может Удалять", то компонент удаляет все сообщения из этой папки. Если эта операция заканчивается неуспешно, то код ошибки помещается в строковый элемент errorCode результирующего набора данных.
SMIMEUnlock
Если HTTP запрос содержит этот параметр, сессия не имеет Активного Закрытого Ключа, в Установках Пользователя содержится зашифрованный Закрытый Ключ и HTTP запрос содержит параметр SMIMEPassword, то модуль пытается активировать ("разблокировать") Закрытый Ключ, используя полученный пароль. Если операция заканчивается неуспешно, то код ошибки помещается в строковый элемент SMIMEError результирующего набора данных.

Модуль Веб Приложения помещает определённые данные в наборы данных, создаваемые всеми компонентами Сессионных Запросов. В следующим списке приводятся эти "общие" элементы набора данных, которые могут использоваться во всех Сессионных WSSP страницах:

messageText
Этот строковый элемент добавляется, если HTTP запрос содержит параметр messageText. Значение этого элемента совпадает со значением HTTP параметра.
messageCode
Этот строковый элемент добавляется, если HTTP запрос содержит параметр messageCode. Значение этого элемента совпадает со значением HTTP параметра.
secureChannel
Этот элемент существует и имеет строковое значение YES, если запрос был получен через безопасное (HTTPS) соединение.
isWML
Этот элемент существует и имеет строковое значение YES, если запрос был получен через WML браузер.
charset
Этот строковый элемент содержит Предпочтительную Кодировку, выбранную в Настройках Пользователя, если режим UTF8 установлен в значение Никогда. В противном случае, этот элемент содержит строку utf-8.
Обратите внимание: это просто значение по умолчанию, для этого элемента набора данных индивидуальные компоненты могут задавать разные значения.
SMIMEActive
Этот элемент существует и имеет строковое значение YES, если в сессии есть разблокированный (Активный) Закрытый ключ S/MIME.
SMIMEInactive
Этот элемент существует и имеет строковое значение YES, если в сессии отсутствует разблокированный (Активный) Закрытый ключ S/MIME, но в Установках Пользователя имеется Закрытый Ключ и этот Ключ может быть разблокирован.
mailboxes
Список всех папок, которые видны пользователю.

Если .wssp запрос указывает на неизвестный компонент, но .wssp файл с указанным именем может быть получен из Вида Интерфейса Сессии, то этот .wssp файл обрабатывается с использованием только "общих" элементов набора данных и результат отправляется обратно браузеру клиента.

Пример: В Стандартном Виде Интерфейса используются запросы Hello.wssp. Компонент с таким именем отсутствует, следовательно, создаётся набор данных только с общими значениями и для обработки этого набора данных используется файл Hello.wssp.

В следующем разделе приводятся названия существующих компонентов (имена для .wssp запросов), действия, предпринимаемые этими компонентами и наборы данных, создаваемые этими компонентами.

Результаты компонентов обрабатываются с использованием .wssp файлов, имеющих имена, совпадающие с названиями компонентов.


Имя: Mailboxes, wMailboxes

Действия

Если HTTP запрос содержит параметр Create и параметр NewName не является пустой строкой, то компонент пытается создать папку с указанными именем. Если эта операция заканчивается неуспешно, то в результирующий набор данных добавляется элемент errorCode с текстом кода ошибки. Если папка создана, то элемент messageCode со строковым значением MailboxCreated добавляется в результирующий набор данных и, если в Настройках WebUser Пользователя выбрана опция "Показывать Все Подписанные Папки", то имя созданной папки добавляется в список подписанных папок.
Если запрос содержит параметр newClass, то созданная папка получает указанный класс.

Если HTTP запрос содержит параметр Filter, то в список включаются только те папки, в чьих именах содержится значение этого параметра.

Результирующий Набор Данных

Компонент создаёт список всех Папок Пользователя и Псевдонимов Папок (если в Настройках WebUser Пользователя выбрана опция "Показывать Все мои Папки") или список всех подписанных папок (если выбрана опция "Показывать Все Подписанные Папки"). Если выбраны обе опции, то эти два списка объединяются в один.

filter
этот строковый элемент содержит текущее значение HTTP параметра Filter.
newName
этот строковый элемент содержит текущее значение HTTP параметра NewName.
mailboxClasses
эти элементы массива содержат строки с именами всех поддерживаемых классов папок.
mailboxList
этот элемент является массивом с одним элементом типа словарь для каждой папки в сформированном списке папок. Каждый словарь содержит следующие элементы:
mailboxName
этот строковый элемент содержит имя папки.
parent
этот строковый элемент существует, если папки является подпапкой какой-либо другой папки. Строка содержит имя той родительской Папки.
nonSelectable
этот строковый элемент со значением Yes добавляется, если папку нельзя выбрать. Если он добавлен, то следующие элементы к словарю не добавляются.
isList
этот элемент добавляется, если папка является главной папкой (архивом) Cписка Рассылки (это означает, что существует Cписок Рассылки с таким же именем).
nMessages
этот строковый элемент содержит число сообщений в папке. Если число не может быть получено, то значением элемента является строка ???.
nRecent
этот строковый элемент содержит число "Недавних" ("Recent") сообщений в папке.
numUnread
этот строковый элемент содержит имя Непрочитанных ("Unseen") сообщений в папке.
size
этот строковый элемент содержит "приблизительный" размер папки.
mailboxClass
этот опциональный строковый элемент содержит класс папки (для не почтовых папок).
mailboxPage
этот строковый элемент содержит имя страницы wssp, используемой для обработки такого класса папки.
nSelected
этот строковый элемент содержит число элементов в массиве mailboxList.
trashSize
этот строковый элемент добавляется только если Пользователь имеет папку Trash. В нём содержится размер папки Trash.
currentStorage
этот строковый элемент содержит "округлённый вверх" общий размер всех Папок Пользователя.
storageLimit
этот строковый элемент содержит "округлённое вверх" ограничение на общий размер папок Пользователя. Если Пользователь не имеет лимита на общий размер Папкок, то в этом элементе содержится строка unlimited.

Имя: Mailbox, wMailbox

HTTP запрос должен содержать параметр Mailbox - имя отображаемой Папки.

Действия

Для каждой Папки модуль создаёт объект сессии, в котором содержатся параметры просмотра Папки. При создании такого объекта, эти параметры устанавливаются в соответствующие значения из Настроек WebUser.

Параметры Msg HTTP запроса интерпретируются как "элементы набора сообщений". Запрос может содержать несколько параметров и каждый параметр должен иметь числовое значение - Уникальный Идентификатор Сообщения в Папке.

Если HTTP запрос содержит параметр Forward или параметр Redirect, и параметр RedirectAddresses не является пустым, то "набор сообщений" создаётся с использованием параметров Msg и сообщения из набора сообщений переадресуются или перенаправляются на указанные адреса.
Если HTTP запрос содержит параметр ListApprove и папка является папкой "approval" или "requests" для какого-либо списка рассылки, то запрос обрабатывается как запрос Redirect, с фактическим адресом, являющимся адресом списка рассылки или запросом "subscription" для этого списка.
Если операция закончилась успешно, то в результирующий набор данных добавляется элемент messageCode со строковым значением MessagesForwardedInfo или MessagesRedirectedInfo. В противном случае в результирующий набор данных добавляется элемент errorCode, содержащий строку с текстом кода ошибки операции.

Если HTTP запрос содержит параметр Copy или параметр Move, а параметр MailboxName содержит имя какой-либо "выбираемой" папки, то "набор сообщений" создаётся с использованием параметров Msg и сообщения из набора сообщений копируются в указанную папку. Если был указан параметр Move, то сообщения из набора сообщений, в зависимости от Настроек WebUser, либо помечаются как Удалённые, либо физически удаляются, либо передвигаются в Мусорную Корзину.
Если операция закончилась успешно, то в результирующий набор данных добавляется элемент messageCode со строковым значением MessagesCopiedInfo. В противном случае в результирующий набор данных добавляется элемент errorCode, содержащий строку с текстом кода ошибки операции.

Если опция Способ Стирания установлена в значение Перенести в Корзину и HTTP запрос содержит параметр Delete, то "набор сообщений" создаётся с использованием параметров Msg и сообщения из набора сообщений копируются в папку Trash и удаляются. Если папка Trash не существует, то она будет создана.

Если HTTP запрос содержит параметр DeleteAll, то все сообщения из папки удаляются с использованием метода, указанного в опции "Способ Стирания" Настроек WebUser.

Если HTTP запрос содержит параметры read, unread, flag, unflag, delete или undelete, то "набор сообщений" создаётся с использованием параметров Msg и у сообщений из набора сообщений изменяются соответствующие флаги. Параметры delete и undelete обрабатываются таким образом только в том случае, если опция "Способ Стирания" в Настройках WebUser не установлена в значение Перенести в Корзину.
Если эта операция не закончилась успешно, то в результирующий набор данных добавляется элемент errorCode, содержащий строку с текстом кода ошибки операции.

Если опция "Способ Стирания" в Настройках WebUser не установлена в значение Перенести в Корзину и HTTP запрос содержит параметр Purge, то все сообщения папки, имеющие флаг Deleted, удаляются.
Если эта операция не закончилась успешно, то в результирующий набор данных добавляется элемент errorCode, содержащий строку с текстом кода ошибки операции.

Если HTTP запрос имеет параметр NextMessage с числовым значением, то значение интерпретируется как уникальный идентификатор (UID) сообщения папки и компонент пытается найти следующее сообщение папки. Если такое сообщение найдено, то UID добавляется в Результирующий Набор Данных как элемент messageJump.

Если HTTP запрос имеет параметр PrevMessage с числовым значением, то значение интерпретируется как уникальный идентификатор (UID) сообщения папки и компонент пытается найти предыдущее сообщение папки. Если такое сообщение найдено, то UID добавляется в Результирующий Набор Данных как элемент messageJump.

Если HTTP запрос имеет параметр NextUnread и в папке содержится непрочитанное сообщение, то UID этого непрочитанного сообщения добавляется в Результирующий Набор Данных как элемент messageJump.

Если элемент messageJump не был добавлен в Результирующий Набор Данных, то компонент использует общий компонент Mailbox для обработки параметров HTTP запроса и для формирования результирующего набора данных.

Результирующий Набор Данных

mailbox
строка с именем папки.
mailboxClass
если этот строковый элемент существует, то в нём содержится имя папки.
mailboxPage
этот строковый элемент содержит имя страницы wssp, которое должно использоваться для отображения такого класса папки.
isSentBox
этот элемент существует и содержит строку YES, если текущая папка является папкой, выбранной для сохранения копий отправленных сообщений.
isDraftsBox
этот элемент существует и содержит строку YES, если текущая папка является папкой, выбранной для сохранения черновиков сообщений.

Если найдено следующее, следующее непрочитанное или предыдущее сообщение:

messageJump
строка с UID найденного сообщения.

Если следующее непрочитанное, следующее или предыдущее сообщение не запрашивалось в параметрах HTTP запроса или оно не было найдено:

refreshTime
время обновления показа папки (в секундах), полученное из Настроек WebUser.
listApproval
этот строковый элемент существует, если папка является папкой approval для списка рассылки. Этот элемент содержит адрес электронной почты этого списка рассылки.

Для генерирования остальной части результирующего набора данных используется общий компонент Mailbox.


Имя: Contacts, wContacts

Обрабатывается также, как страница Mailbox.


Имя: Notes, wNotes

Обрабатывается также, как страница Mailbox.


Имя: Calendar, wCalendar

HTTP запрос должен содержать параметр Mailbox - имя отображаемой Папки типа Календарь.

Действия

Для каждой папки модуль создаёт объект сессии, в котором содержатся параметры просмотра Папки. При создании такого объекта, эти параметры устанавливаются в соответствующие значения из Настроек WebUser. Объект также содержит номер месяца для "помесячного просмотра календаря". Первоначально его значение устанавливается равным текущему месяцу. Объект содержит номер дня, задающий первый день, который должен отображаться при просмотре календаря. Объект также содержит флаг "byDay", управляющий тем, как данные календаря сохраняются в наборе данных (по дням или по временным интервалам).

Параметр HTTP запроса prevMonthlyCalendar может задавать число месяцев, которое будет вычитаться из номера месяца при "помесячном просмотре календаря".

Параметр HTTP запроса nextMonthlyCalendar может задавать число месяцев, которое будет добавляться к номеру месяца при "помесячном просмотре календаря".

Параметр HTTP запроса JumpDay может задавать "номер дня в эпохе", задающий первый день, который должен отображаться при просмотре календаря.

Параметр HTTP запроса byDay может указывать новое значение флага byDay.

Параметры Msg HTTP запроса интерпретируются как "элементы набора сообщений". Запрос может содержать несколько параметров и каждый параметр должен иметь числовое значение - Уникальный Идентификатор сообщения в папке.

Если опция Способ Стирания установлена в значение Перенести в Корзину и HTTP запрос содержит параметр Delete, то "набор сообщений" создаётся с использованием параметров Msg, а сообщения из набора сообщений копируются в папку Trash и удаляются. Если папка Trash не существует, то она будет создана.

Если HTTP запрос содержит параметры read, unread, flag, unflag, delete или undelete, то "набор сообщений" создаётся с использованием параметров Msg и у сообщений из набора сообщений изменяются соответствующие флаги. Параметры delete и undelete обрабатываются таким образом только в том случае, если опция "Способ Стирания" в Настройках WebUser не установлена в значение Перенести в Корзину.
Если эта операция не закончилась успешно, то в результирующий набор данных добавляется элемент errorCode, содержащий строку с текстом кода ошибки операции.

Если опция "Способ Стирания" в Настройках WebUser не установлена в значение Перенести в Корзину и HTTP запрос содержит параметр Purge, то все сообщения папки, имеющие флаг Deleted, удаляются.
Если эта операция не закончилась успешно, то в результирующий набор данных добавляется элемент errorCode, содержащий строку с текстом кода ошибки операции.

Результирующий Набор Данных

mailbox
строка с именем папки.
refreshTime
время обновления показа папки (в секундах), полученное из Настроек WebUser.
weekDayNames
массив, содержащий строки с названиями дней недели, начиная со дня, заданного в Настройках WebUser как начало недели.
todayDay
число месяца из текущей даты.
todayMonth
текущий месяц.
todayYear
текущий год.
todayDayNum
"номер дня в эпохе" для текущего дня.
monthlyCalendar
массив, содержащий один элемент для каждой недели из месяцев, отображаемых при "помесячном просмотре календаря". Каждый элемент недели является массивом из 7 элементов. Если элемент не соответствует дню месяца (то есть, элемент соответствует дню до первого дня месяца или дню после последнего дня месяца), то элемент является пустой строкой. В противном случае элемент является словарём, в котором содержатся следующие подэлементы:
day
строка с днём месяца, соответствующая этому элементу.
workDay
опциональная строка YES добавляется, если день является рабочим днём.
dayNum
"номер дня в эпохе" для этого дня.
year
строка с номером года, которому принадлежит первый отображаемый день.
byDay
опциональный элемент, содержащий строку YES. Он добавляется, если установлен флаг byDay.
timeSlices
массив, содержащий временной период начал событий (встреч), если флаг byDay установлен. Каждый элемент является словарём, содержащим следующие значения:
hour
значение часов в 24-часовом формате.
PMhour
значение часов в 12-часовом формате, если значение часа 12 или выше.
minute
номер минуты. Всегда 2 цифры.
calendarDays
массив, содержащий элементы просмотра календаря, если флаг byDay установлен. Каждый элемент является словарём, представляющим данные календаря для одного дня. В нём содержатся следующие элементы:
weekDay
имя дня недели этого дня
year
номер года, которому принадлежит этот день.
month
имя месяца, которому принадлежит этот день
day
номер дня в месяце.
dayNum
"номер дня в эпохе"
allDayEvents
опциональный массив, содержащий описатели для события (для встречи) на весь день для этого дня. Каждый элемент массива является словарём, в котором содержатся "элементы Встречи" (смотрите ниже))
events
массив, содержащий описатели встречи для этого дня. Каждый описатель соответствует одному временному интервалу; он является словарём, содержащим "элементы Встречи" (если в этом временном интервале есть Встреча) и следующие элементы:
nTimeSlices
длина временного интервала описателя, выраженная во временных интервалах.
conflicts
опциональный массив, содержащий UIDы других Встреч, конфликтующих с Встречей, отображаемой в этом временном интервале.
status
если временной интервал не содержит Встречи и не относится к "рабочему времени", то в этом элементе содержится строка UNAVAILABLE.
calendarDays
массив, содержащий дни календаря, если флаг byDay не установлен. Каждый элемент является словарём, содержащим следующие значения:
weekDay
имя дня недели этого дня
year
номер года, которому принадлежит этот день.
month
имя месяца, которому принадлежит этот день
day
номер дня в месяце.
dayNum
"номер дня в эпохе"
allDayEvents
массив, содержащий информацию о Встречах На Весь День, если флаг byDay не установлен. Массив имеет по одному элементу для каждого отображаемого дня. Этот элемент является пустой строкой, если в этот день отсутствует Встреча На Весь День, или он является массивом, содержащим подэлементы словаря для каждой происходящей в этот день Встречи На Весь День. Каждый подэлемент словаря содержит "элементы Встречи" для одной Встречи На Весь День.
calendarSlices
массив, содержащий информацию для временного интервала, если флаг byDay не установлен. Каждый элемент массива является словарём, в котором содержатся следующие элементы:
hour
значение часов в 24-часовом формате.
PMhour
значение часов в 12-часовом формате, если значение часа 12 или выше.
minute
номер минуты. Всегда 2 цифры.
days
массив с данными календаря для этого временного интервала в каждом дне. Каждый элемент является словарём с данными дня, содержащими "элементы Встречи" (если этот временной интервал содержит Встречу в этот день), а также содержащим следующие элементы:
nTimeSlices
длина временного интервала описателя, выраженная во временных интервалах.
conflicts
опциональный массив, содержащий UIDы других Встреч, конфликтующих с Встречей, отображаемой в этом временном интервале.
status
если временной интервал не содержит Встречи и не относится к "рабочему времени", то в этом элементе содержится строка UNAVAILABLE.

"Элементами Встречи" являются:

summary
строка с текстом "Темы Встречи".
ID
числовая строка с UID сообщения со Встречей в папке.
status
строка со статусом занятости Встречи.
priority
число со значением приоритета Встречи. Этот элемент существует, только если приоритет встречи не равен нулю.

Имя: Tasks, wTasks

HTTP запрос должен содержать параметр Mailbox - имя отображаемой Папки типа Задания.

Действия

Для каждой папки модуль создаёт объект сессии, в котором содержатся параметры просмотра Папки. При создании такого объекта, эти параметры устанавливаются в соответствующие значения из Настроек WebUser. Объект содержит номер дня, задающий первый день, который должен отображаться при просмотре Заданий.

Параметр HTTP запроса JumpDay может задавать "номер дня в эпохе", задающий первый день, который должен отображаться при просмотре Заданий.

Параметры Msg HTTP запроса интерпретируются как "элементы набора сообщений". Запрос может содержать несколько параметров и каждый параметр должен иметь числовое значение - Уникальный Идентификатор сообщения в папке.

Если опция Способ Стирания установлена в значение Перенести в Корзину и HTTP запрос содержит параметр Delete, то "набор сообщений" создаётся с использованием параметров Msg, а сообщения из набора сообщений копируются в папку Trash и удаляются. Если папка Trash не существует, то она будет создана.

Если HTTP запрос содержит параметры read, unread, flag, unflag, delete или undelete, то "набор сообщений" создаётся с использованием параметров Msg и у сообщений из набора сообщений изменяются соответствующие флаги. Параметры delete и undelete обрабатываются таким образом только в том случае, если опция "Способ Стирания" в Настройках WebUser не установлена в значение Перенести в Корзину.
Если эта операция не закончилась успешно, то в результирующий набор данных добавляется элемент errorCode, содержащий строку с текстом кода ошибки операции.

Если опция "Способ Стирания" в Настройках WebUser не установлена в значение Перенести в Корзину и HTTP запрос содержит параметр Purge, то все сообщения папки, имеющие флаг Deleted, удаляются.
Если эта операция не закончилась успешно, то в результирующий набор данных добавляется элемент errorCode, содержащий строку с текстом кода ошибки операции.

Параметр HTTP запроса showCompleted может указывать новое значение флага showCompleted.

Результирующий Набор Данных

mailbox
строка с именем папки.
refreshTime
время обновления показа папки (в секундах), полученное из Настроек WebUser.
showCompleted
опциональный элемент, содержащий строку YES. Он добавляется, если установлен флаг showCompleted.
numTotal
общее число записей типа календарь в папке.
numSelected
общее число выбранных Заданий.
tasks
массив с выбранными задачами. Каждый элемент является словарём, описывающим задачу. В нём содержатся следующие элементы:
nBefore
эта числовая строка существует, если Задание начинается после первоначального времени, отображаемого при просмотре Заданий. Она показывает, сколько временных периодов просмотра Заданий должно быть пропущено до начала Задания.
nDuration
эта числовая строка задаёт интервал времени (в периодах времени) между временем начала Задания или временем первого отображения Просмотра Задания (в зависимости от того, что наступает позже) и между сроком выполнения Задания или между временем последнего отображения Задания (в зависимости от того, что наступает раньше).
nAfter
эта числовая строка существует, если Задание заканчивается до времени окончания просмотра задания. Она показывает, сколько временных периодов просмотра Заданий должно быть пропущено после окончания Задания.
ID
строка с UID сообщения с Заданием в папке.
percentComplete
числовая строка со значением Процента Выполнения объекта Задания.
summary
строка с темой Задания.
priority
числовая строка с приоритетом Задания, если он был задан (не нулевой).

Имя: Message

HTTP запрос должен содержать параметр Mailbox - имя папки, содержащей отображаемые сообщения и параметр MSG - Уникальные Идентификаторы этих сообщений в папке.

Действия
Если HTTP запрос содержит параметр Copy или параметр Move, а параметр MailboxName содержит имя какой-либо "выбираемой" папки, то сообщение копируется в указанную папку. Если был указан параметр Move, то сообщение помечается как удалённое или удаляется - в зависимости от Настроек WebUser.
Если операция закончилась успешно, то в результирующий набор данных добавляется элемент messageCode со строковым значением MessageCopied. В противном случае в результирующий набор данных добавляется элемент errorCode, содержащий строку с текстом кода ошибки операции.
Если операция Move закончилась успешно, то в результирующий набор данных добавляется элемент backToMailbox со значением YES и компонент прекращает обработку запроса.

Если HTTP запрос содержит параметр Redirect и параметр RedirectAddresses не является пустым, то сообщение перенаправляется на указанные адреса.
Если HTTP запрос содержит параметр ListApprove и папка сообщений является папкой "approval" для какого-либо списка рассылки, то запрос обрабатывается как запрос Redirect, с фактическим адресом, являющимся адресом списка рассылки.
Если операция закончилась успешно, то в результирующий набор данных добавляется элемент messageCode со строковым значением MessageRedirected. В противном случае в результирующий набор данных добавляется элемент errorCode, содержащий строку с текстом кода ошибки операции.

Если HTTP запрос содержит параметр TakeAddress, то адрес From: сообщения добавляется в записную книгу Пользователя.

Если HTTP запрос содержит параметр TakeCertificate, то сертификат из цифровой подписи сообщения добавляется в записную книгу Пользователя.

Если HTTP запрос содержит параметр StoreFiles и параметр selectedWebFolder содержит имя папки Хранилища Файлов, то файловые части сообщения (приложения, изображения) сохраняются в указанную папку.
Если операция закончилась успешно, то в результирующий набор данных добавляется элемент messageCode со строковым значением FilesCopied. В противном случае в результирующий набор данных добавляется элемент errorCode, содержащий строку с текстом кода ошибки операции.

Если HTTP запрос содержит параметры read, unread, flag, unflag, delete или undelete, то у сообщения изменяются соответствующие флаги.
Если эта операция не закончилась успешно, то в результирующий набор данных добавляется элемент errorCode, содержащий строку с текстом кода ошибки операции.

Затем компонент использует общий компонент Message для обработки параметров HTTP запроса и для создания результирующего набора данных.

Результирующий Набор Данных
mailbox
Строка с именем папки.

Если сообщение было удалено:

MSG
Строка с идентификатором сообщения (message UID).
flagged, recent, deleted, flagged, media, isDraft
Эти элементы со значением Yes добавляются, если сообщение имеет соответствующий флаг.
status
Этот строковый элемент имеет следующие значения:
  • Deleted - если у сообщения установлен флаг Deleted, иначе
  • Draft - если у сообщения установлен флаг Draft, иначе
  • Redirected - если у сообщения установлен флаг Redirected, иначе
  • Unread - если у сообщения не установлен флаг Seen, иначе
  • Answered - если у сообщения установлен флаг Answered, иначе
  • Read
messageBody
Строка с HTML представлением сообщения, созданная с использованием общего компонента Message.
charset
Кодировка, используемая для показа сообщения. Этот элемент может быть установлен общим компонентом Message.
nextMsg
этот элемент добавляется, если в просмотре папки есть следующее сообщение. Значением элемента является строка с UID следующего сообщения.
prevMsg
этот элемент добавляется, если в просмотре папки есть предыдущее сообщение. Значением элемента является строка с UID предыдущего сообщения.
hasFiles
этот строковый элемент YES добавляется, если в сообщении существует часть с файлом.
editableContact
этот строковый элемент YES добавляется, если сообщение является объектом VCard, который может быть изменён.
editableGroup
этот строковый элемент YES добавляется, если сообщение является объектом Группа, который может быть изменён.
editableNote
этот строковый элемент YES добавляется, если сообщение является объектом Заметка, который может быть изменён.
editableEvent
этот строковый элемент YES добавляется, если сообщение является Встречей, "опубликованной" этим пользователем, которая может быть изменена.
editableTask
этот строковый элемент YES добавляется, если сообщение является Заданием, "опубликованным" этим пользователем, которое может быть изменено.
canCancelEvent
этот строковый элемент YES добавляется, если сообщение является Встречей, которую этот пользователь может отменить.
canCancelTask
этот строковый элемент YES добавляется, если сообщение является Заданием, которое этот пользователь может отменить.
canAcceptDecline
этот строковый элемент YES добавляется, если сообщение является запросом на Встречу или Заданием.
percentComplete
этот элемент, содержащий число, добавляется, если сообщение является Заданием, назначенным этому пользователю кем-либо другим.
statusCode
этот опциональный элемент с типом строка содержит статус сообщения, если сообщение является Заданием или Встречей.
conflictingID
этот опциональный элемент с типом строка содержит UID сообщения в папке Календарь, используемой по умолчанию, которое конфликтует с показываемым Приглашением на Встречу.
canUpdatePartStatus
этот строковый элемент YES добавляется, если сообщение является ответом на Указание Задания или ответом на Приглашение на Встречу пользователя.
canCancelEvent
этот строковый элемент YES добавляется, если сообщение является Отменой Встречи от Организатора Встречи.
canCancelTask
этот строковый элемент YES добавляется, если сообщение является Отменой Задания от Организатора Задания.
listApproval
этот строковый элемент существует, если папка сообщения является папкой approval для списка рассылки. Этот элемент содержит адрес электронной почты этого списка рассылки.

Имя: Compose

Действия
Если HTTP запрос содержит параметр charset, то значение параметра используется как желаемая кодировка - кодировка, которая будет использоваться при создании сообщения.

Опциональный параметр Operation HTTP запроса указывает тип операции Создания и он может иметь значение Reply, ReplyAll, Forward или EditDraft.
Если задан этот параметр, то должен быть указан также параметр OrigMessage (с UID оригинального сообщения) и параметр OrigMailbox (с именем папки, в которой содержится оригинальное сообщение).

Если HTTP запрос содержит параметр Operation и он не содержит параметра filled, то поля заголовков оригинального сообщения используются для создания полей Тема, Кому, Копия и тела нового сообщения.
В противном случае для данных нового сообщения используются параметры HTTP запроса Subject, To, Cc, Bcc и Body.

Если HTTP запрос содержит параметр AddressBook и не содержит параметра CloseBook или если HTTP запрос содержит параметр OpenBook, то для обработки параметров запроса и для формирования некоторых элементов результирующего набора данных используется общий компонент AddressBook.

Если HTTP запрос содержит параметр isEvent, то в Календаре создаётся запись о Встрече. Если HTTP запрос содержит параметр isTask, то в Заданиях создаётся запись о Задании. Если HTTP запрос содержит параметр isNote, то в Блокноте создаётся запись с Заметкой.

Если HTTP запрос содержит параметр Send, то создаваемое сообщение передаётся в Очередь Сервера. Если HTTP запрос содержит параметр Save, то создаваемое сообщение сохраняется как Черновик в выбранной папке для Черновиков.
В обоих случаях все параметры Attachment HTTP запроса добавляются к сообщению как вложения.

Результирующий Набор Данных
operation
Этот элемент добавляется в набор данных, если HTTP запрос содержит параметр Operation. Значение элемента равно значению параметра запроса.
origMessage
Этот элемент, содержащий UID оригинального сообщения, добавляется в результирующий набор данных, если HTTP запрос содержит параметр OrigMessage.
origMailbox
Этот элемент, содержащий UID оригинального сообщения, добавляется в результирующий набор данных, если HTTP запрос содержит параметр OrigMessage.
sentOrSaved
Этот элемент, имеющий значение Yes, добавляется в результирующий набор данных, если операция Send или SaveDraft Входа завершилась успешно. Если этот элемент добавляется:
  • Элемент sent, имеющий значение Yes, добавляется, если операция была операцией Send.
  • Элемент messageCode со значением MessageSent или MessageSaved добавляется в набор данных.
  • Элементы, перечисленные ниже, не добавляются в результирующий набор данных.
Subject, To, Cc, Bcc
Эти элементы содержат строки с текущими данными из полей заголовков.
From
Этот элемент содержит строку с адресом От Кого, указанным в Настройках WebUser.
addressBook
Этот элемент со значением Yes добавляется в результирующий набор данных, если HTTP запрос содержит параметр AddressBook и не содержит параметра CloseBook или если HTTP запрос содержит параметр OpenBook.
body
Этот строковый элемент содержит текст тела текущего сообщения.
mailerWidth
Этот строковый элемент содержит значение опции MailerWidth Настроек WebUser.
forwardedMessage
Этот опциональный элемент с типом строка содержит HTML представление оригинального сообщения. Этот элемент добавляется в результирующий набор данных, если параметр Operation HTTP запроса имеет значение Forward.
DSN
Этот элемент со значением Yes добавляется в результирующий набор данных, если HTTP запрос содержит параметр DSN.
SaveSent
Этот элемент со значением Yes добавляется в результирующий набор данных, если в Настройках WebUser содержится непустая опция SentBox и HTTP запрос не содержит параметра Filled или параметра SaveSent.
desiredCharset
Этот строковый элемент содержит название кодировки, используемой для создания сообщения.
charset
Этот элемент является строкой UTF-8, если опция Использовать Unicode (UTF-8) Настроек WebUser установлена в значение "Для Всего". В противном случае, этот элемент содержит такое же значение, как и элемент desiredCharset результирующего набора данных.
isEvent
Этот элемент, имеющий значение Yes, добавляется в результирующий набор данных, если запись была создана в Календаре как Встреча.
isTask
Этот элемент, имеющий значение Yes, добавляется в результирующий набор данных, если запись была создана в Календаре как Задание.
isNote
Этот элемент, имеющий значение Yes, добавляется в результирующий набор данных, если запись была создана как Заметка.

Следующие элементы добавляются, если запись была создана как запись Календаря:

allDayEvent
Этот элемент, имеющий значение Yes, добавляется в результирующий набор данных, запись является Встречей На Весь День. Значение этого элемента управляется значением одноимённого параметра HTTP.

Имя: MailboxSettings

HTTP запрос должен содержать параметр Mailbox - имя папки, которой необходимо управлять.

Действия

Если HTTP запрос содержит параметр Remove, то папка удаляется. Если HTTP запрос содержит также параметр RemoveSub, то все подпапки также удаляются.
Если операция закончилась успешно и в Настройках WebUser выбрана опция "Показывать Все Подписанные Папки", то удаляемые папки убираются из списка подписки Пользователя.
Если операция закончилась успешно, то элемент removed со строковым значением Yes добавляется в результирующий набор данных и компонент прекращает обработку запроса. В противном случае в результирующий набор данных добавляется элемент errorCode, содержащий строку с текстом кода ошибки операции.

Если HTTP запрос содержит параметр Rename и параметр NewName не является пустым, то папка переименовывается. Значение параметра NewName преобразовывается в формат "UTF-7 Кодировка Имени Папки" и используется как новое имя папки.
Если HTTP запрос также содержит параметр RenameSub, то переименовываются и все подпапки.
Если операция закончилась успешно и в Настройках WebUser выбрана опция "Показывать Все Подписанные Папки", то папки переименуются также и в списке подписки Пользователя.
Если операция закончилась успешно, то элемент removed со строковым значением Yes добавляется в результирующий набор данных и компонент прекращает обработку запроса. В противном случае в результирующий набор данных добавляется элемент errorCode, содержащий строку с текстом кода ошибки операции.

Если HTTP запрос содержит параметр Update, то компонент получает из запроса все параметры Acc. Каждый параметр Acc должен иметь числовое значение. Для каждого полученного значения nnn параметра Acc, запрашивается параметр Znnn. Если он содержит непустую строку, то запрашиваются все параметры запроса Knnn, где K является буквой, обозначающей право доступа к папке.
Список строк с именем Znnn с набором параметров Knnn используется для формирования и установления нового списка ACL (Списка Прав Доступа) для выбранной папки.
Если операция изменения ACL закончилась успешно, то в результирующий набор данных добавляется элемент messageCode со строковым значением Updated. В противном случае в результирующий набор данных добавляется элемент errorCode, содержащий строку с текстом кода ошибки операции.

Если HTTP запрос содержит параметр DeleteAll, то все сообщения из папки удаляются с использованием метода, указанного в опции "Способ Стирания" в Настройках WebUser. Если операция закончилась успешно, то в результирующий набор данных добавляется элемент messageCode со строковым значением MessagesDeleted.

Результирующий Набор Данных
renamed
Этот элемент, имеющий строковое значение YES, добавляется в набор данных, если папка была переименована. В этом случае никакие другие элементы не добавляются в результирующий набор данных.
removed
Этот элемент, имеющий строковое значение YES, добавляется в набор данных, если папка была удалена. В этом случае никакие другие элементы не добавляются в результирующий набор данных.
rights
Этот массив содержит элементы ACL папки (элементы Списка Прав Доступа к Папке). Каждый элемент массива является словарём, в котором содержатся следующие элементы:
ident
этот строковый элемент содержит элемент name ACL.
index
этот строковый элемент содержит номер элемента в наборе ACL.
lookup, select, seen, flags, insert, post, create, delete, admin
эти элементы со строковым значением Yes добавляются, если элемент ACL включает в себя эти права доступа к папке.

Имя: Alerts

Этот компонент может вызываться неявно, если модуль Веб Приложения обнаруживает ожидающие сообщения с Предупреждениями.

Действия

Если HTTP запрос содержит параметр AlertTime, то этот параметр должен содержать отметку о времени в формате ACAP. Компонент подтверждает все Предупреждения старше указанного времени.

Если HTTP запрос имеет параметр returnURL, то значение параметра добавляется в Результирующий Набор Данных (как элемент returnURL).

Результирующий Набор Данных
alerts
Этот элемент добавляется в результирующий набор данных, если для пользователя сессии есть ожидающие его Предупреждения. Значением этого элемента является массив с элементами типа словарь; каждый элемент описывает одно сообщение предупреждения. Каждый словарь содержит следующие элементы:
time
Строковый элемент, в котором содержится время опубликования предупреждения.
text
Строковый элемент, в котором содержится текст сообщения предупреждения.
currentTime
Этот элемент добавляется в результирующий набор данных, если для пользователя сессии есть ожидающие его Предупреждения. Этот строковый элемент содержит текущее время в формате ACAP.
returnURL
Если страница с Предупреждениями была получена и показана автоматически, в то время как должна была быть показана какая-либо другая страница, то в этот строковый элемент помещается URL (преобразованный в корректный вид) этой другой страницы.

Имя: Subscription

Действия

Если HTTP запрос содержит параметр Open, то значение параметра MailboxName конвертируется в формат "UTF-7 Кодировки Имени Папки", конвертированная строка добавляется в результирующий набор данных как элемент jump и обработка завершается.

Если HTTP запрос содержит параметр Update:
  • Запрашиваются все параметры Elem запроса, преобразовываются в формат "UTF-7 Кодировки Имени Папки" и формируется новый список подписки Пользователя.
  • Запрашиваются все параметры запроса AliasName; они должны содержать числовые значения. Для каждого полученного числового значения nnn, запрашивается пара параметров annn и mnnn. Если оба параметра существуют и содержат непустые строки, то эти строки преобразовываются в формат "UTF-7 Кодировки Имени Папки" и используются для формирования нового набора Псевдонимов Папки Пользователя.
  • Если операция Subscription или операция изменения Псевдонимов Папки заканчивается неуспешно, то в результирующий набор данных добавляется элемент errorCode. В противном случае в результирующий набор данных добавляется элемент messageCode со строковым значением Updated.
Результирующий Набор Данных
jump
В этом параметре задаётся имя папки, которую надо открыть ("перейти в неё"). Если этот элемент существует, то следующие элементы к словарю не добавляются.
subscription
В этом массиве содержится список подписки Пользователя. Каждый элемент массива должен быть строкой с каким-либо именем папки.
aliases
Этот массив содержит список Псевдонимов Папки Пользователя. Каждый элемент массива является словарём, в котором содержатся следующие элементы:
index
Строка с индексом элемента с Псевдонимом Папки.
name
Строка с именем Псевдонима Папки.
ref
Строка с именем папки, на которую указывает этот Псевдоним.

Имя: Password

Действия
Если HTTP запрос содержит параметр ModifyPassword, то запрос также должен содержать параметр OldPassword и этот параметр должен соответствовать текущему паролю Пользователя. Если значение параметра OldPassword является корректным:
  • Значение параметра RecoverPassword запроса устанавливается как новое значение Установки RecoverPassword Пользователя. В результирующий набор данных добавляется элемент messageCode со строковым значением Updated.
  • Если Пользователю разрешено изменять пароль, то проверяются параметры NewPassword1 и NewPassword2. Если они не пустые и соответствуют друг-другу, то пароль Пользователя изменяется с использованием значения этих параметров.

Если изменение пароля завершилось успешно, то в результирующий набор данных добавляется элемент messageCode со строковым значением PasswordChanged. Если эта операция по изменению пароля закончилась неуспешно, то в результирующий набор данных добавляется элемент errorCode.

Результирующий Набор Данных
RecoverPassword
Этот строковый элемент содержит значение Установки RecoverPassword Пользователя.

Имя: PublicInfo

Действия

Если HTTP запрос содержит параметр Update, то запрос также должен содержать ноль, один или несколько параметров ID, каждый из которых имеет числовое значение. Для каждого параметра ID, его числовое значение nnn используется для получения пары строковых параметров Nnnn и Vnnn. Значение параметра Nnn указывает на имя настройки Пользователя "О Себе" (настройка Публично Доступные), а значение параметра Vnnn указывает на значение этой настройки. Эти пары используются для установки новых значений настроек Публично Доступные Пользователя. Если в качестве значения настройки указана пустая строка, то настройка удаляется из Настроек Пользователя.

Если настройки "О Себе" (Публично Доступные) были успешно изменены, то в результирующий набор данных добавляется элемент messageCode со строковым значением Updated. Если эта операция по изменению пароля закончилась неуспешно, то в результирующий набор данных добавляется элемент errorCode.

Результирующий Набор Данных
publicInfo
Этот массив элементов содержит набор элементов "Публично Доступные". Он содержит один элемент для каждой Публично Доступной Настройки, задаваемой в установках Центрального Справочника. Каждый элемент массива является словарём, в котором содержатся следующие элементы:
id
этот строковый элемент содержит номер элемента в наборе.
name
этот строковый элемент содержит имя настройки О Себе (Публично Доступные.
value
этот строковый элемент содержит текущее значение настройки Публично Доступные. Этот элемент существует, только если у Пользователя имеются настройки "О Себе".

Имя: WebSite

Компонент использует общий компонент WebSite для обработки параметров HTTP запроса и для формирования результирующего набора данных. До вызова общего компонента, в результирующий набор данных добавляются следующие элементы:

Результирующий Набор Данных
fileRef
Строка WebFile/.
pageRef
Строка website.wssp.

Имя: Bye

Действия
Компонент удаляет старые сообщения из Корзины (задаваемой в настройках WebUser) и закрывает сессию. Сессия будет уничтожена, как только этот HTTP запрос будет обработан, так что страница bye.wssp сможет использовать данные сессии, но создаваемый ею HTML код не должен содержать ссылки на объекты в сессии.
Результирующий Набор Данных
blockAlerts
Этот элемент имеет строковое значение Yes. Он добавляется в результирующий набор данных для предотвращения обработки Предупреждений.

Общие Компоненты

Модуль Веб Приложения имеет несколько общих компонентов, используемых как для обработки запросов, независимых от состояния, так и для обработки сессионных запросов.


Общий компонент Mailbox

Действия
Если HTTP запрос содержит параметры Filter, Search, Limit, то значения этих параметров используются для изменения "просмотра" папки - текущих значений Filter, Search, Limit.

Если существует параметр Skip HTTP запроса, то он должен иметь числовое значение. Это число используется для задания текущего индекса первого сообщения - номера первого сообщения, отображаемого на странице.

Если HTTP запрос содержит параметр Next, то текущий индекс первого сообщения увеличивается на текущее значение Limit.

Если HTTP запрос содержит параметр Prev, то текущий индекс первого сообщения уменьшается на текущее значение Limit.

Если HTTP запрос содержит параметр Sort, то его числовое значение указывает номер столбца, по которому проводится сортировка (для просмотра папки, отсортированной по первому столбцу, параметр Sort должен иметь значение 0).

Если HTTP запрос содержит параметр SDir, то его числовое значение определяет порядок сортировки: значение 1 устанавливает сортировку по возрастанию, значение 0 - сортировку по убыванию, значение -1 - меняет текущий порядок сортировки.

Результирующий Набор Данных
checkAll
Этот элемент имеет строковое значение CHECKED. Он добавляется в результирующий набор данных, если HTTP запрос содержит параметры MarkAll.
filter
Строковое значение этого элемента является текущей строкой Filter.
search
Строковое значение этого элемента является текущей строкой Search.
limit
Строковое значение этого элемента является текущим значением Limit (числом).
sentBox
Этот элемент имеет строковое значение Yes и существует, только если эта папка является папкой для отправки сообщений.
headers
Массив значений этого элемента содержит заголовки столбцов для просмотра папки. Каждый элемент массива является словарём, в котором содержатся следующие элементы:
index
Этот строковый элемент содержит номер столбца.
name
Этот строковый элемент содержит имя столбца.
hilited
Этот элемент имеет строковое значение Yes и существует, только если этот столбец является столбцом, по которому производится сортировка.
sdir
Если этот столбец не является столбцом, по которому производится сортировка, то этот элемент содержит текущий порядок сортировки (0 или 1). Если этот столбец является столбцом, по которому производится сортировка, то этот элемент содержит обратный к текущему порядок сортировки (1 - текущий порядок сортировки).
ralign
Этот элемент имеет строковое значение Yes и существует, только если этот столбец является столбцом с датой или размером и, следовательно, для него требуется обратное горизонтальное выравнивание.
messages
Массив значений этого элемента содержит данные для просмотра папки. Каждый элемент массива является словарём с данными сообщения и он содержит следующие элементы:
id
этот элемент содержит Уникальный Идентификатор сообщения(UID)
color
если сообщение имеет поле заголовка X-Color с корректной HTML строкой для "цвета", то этот элемент существует и содержит значение этого поля заголовка.
notText
этот опциональный элемент имеет строковое значение Yes; он существует, только если сообщение не является текстовым (Content-Type сообщения не имеет значения text).
notAltText
этот опциональный элемент имеет строковое значение Yes; он существует, только если сообщение не является текстовым (Content-Type сообщения не имеет значения text) и Content-Type/Subtype не является multipart/alternative.
fields
элементы этого массива содержат данные столбцов сообщения. Эти столбцы хранятся в том же порядке, что и столбцы в элементах заголовков результирующего набора данных. Каждый элемент является словарём. В нём содержатся следующие элементы:
hilited
Этот элемент имеет строковое значение Yes и существует, только если этот столбец является столбцом, по которому производится сортировка.
sdir
Если этот столбец не является столбцом, по которому производится сортировка, то этот элемент содержит текущий порядок сортировки (0 или 1); если этот столбец является столбцом, по которому производится сортировка, то этот элемент содержит обратный к текущему порядок сортировки (1 - текущий порядок сортировки).
ralign
Этот элемент имеет строковое значение Yes и существует, только если этот столбец является столбцом с датой или размером и, следовательно, для него требуется обратное горизонтальное выравнивание.
isRef
Этот элемент существует для выбранного столбца и для первого "кликабельного" столбца. Если он существует, то он содержит строку YES.
value
Этот элемент содержит данные столбца. Он существует для всех столбцов, кроме столбца Состояние. Элементы в столбцах Записано и Отправлено содержат значения "даты" - значения такого типа могут показываться при помощи префиксов DATE:, DATETIMESHORT и им подобных.
isStatus
Строковый элемент со значением "YES" существует, если столбец является Состоянием.
isDate
Строковый элемент со значением "YES" существует, если столбец является столбцом Записано или Отправлено и значение элемента содержит значение типа "дата".
isPty
Строковый элемент со значением "YES" существует, если столбец является столбцом Важн (Важность).
status
Этот элемент существует, если столбец является Состоянием. Если он существует, то он содержит одну из следующих строк:
  • Deleted - если у сообщения установлен флаг Deleted, иначе
  • Draft - если у сообщения установлен флаг Draft, иначе
  • Redirected - если у сообщения установлен флаг Redirected, иначе
  • Unread - если у сообщения не установлен флаг Seen, иначе
  • Answered - если у сообщения установлен флаг Answered, иначе
  • Read
flagged
Этот элемент существует, если столбец является Состоянием и сообщение имеет флаг Flagged. Если он существует, то он содержит строку YES.
recent
Этот элемент существует, если столбец является Состоянием и сообщение имеет флаг Recent. Если он существует, то он содержит строку YES.
hidden
Этот элемент существует, если столбец является Состоянием и сообщение имеет флаг Hidden. Если он существует, то он содержит строку YES.
media
Этот элемент существует, если столбец является Состоянием и сообщение имеет флаг Media. Если он существует, то он содержит строку YES.
firstNumber
Этот строковый элемент содержит номер первого сообщения в просмотре.
firstNumber1
Этот строковый элемент содержит номер первого сообщения в просмотре, увеличенный на 1.
lastNumber
Этот строковый элемент содержит номер первого сообщения в просмотре, увеличенный на число элементов массива messages, если массив не является пустым, или увеличенный на 1, если массив messages является пустым.
numTotal
Общее число сообщений в этой папке.
numUnread
Общее число непрочитанных сообщений в этой папке (сообщений, не имеющих флага Seen).
numSelected
Общее число сообщений папки, которое может быть показано с текущими значениями Filter и Search.
multiPage
Этот элемент, имеющий строковое значение YES, добавляется, если значение nSelected не равно числу элементов массива messages.
sortColumn
Этот элемент содержит номер текущего столбца сортировки.
sortAscending
Этот элемент содержит 1 если текущий порядок сортировки является по возрастанию, и 0, если текущий порядок является порядком по убыванию.

Общий компонент Message

Общий компонент Message используется для преобразования сообщения в формате RFC822 в HTML текст. Он обрабатывает как простые сообщения, так и сообщения, имеющие несколько частей - вложения, подписи, вложенные изображения и другие части. Для того, что бы построить HTML представление, компонент использует Компоненты для Изображения Сообщений.


Компоненты для Изображения Сообщений

Модуль Веб Приложения может показывать изображения, преобразовывая их в текст языка разметки (HTML). Эта обработка управляется самим модулем Приложения. Он определяет MIME структуру сообщения, и рекурсивно обрабатывает каждую часть. Для каждой части создаётся набор данных и используется .wssp файл для создания представления на языке разметки.

Компоненты для Изображения Сообщений не производят никаких действий.

Результирующий Набор Данных, создаваемый каждым компонентом для Изображения Сообщений, включает в себя следующие поля:

MIMEPart
этот строковый элемент содержит URL на сообщение или на часть сообщения, для которого создаётся изображение.
filesRef
этот строковый элемент содержит префикс URL, необходимый для получения файлов из правильного Вида Интерфейса. Когда в ходе какой-либо Сессии WebUser создаётся вид изображения сообщения, эта строка совпадает со строкой SESSION(filesRef).
isWML
этот строковый элемент существует и содержит строку YES, если сообщение должно быть показано с использованием языка разметки WML.
printVersion
этот строковый элемент существует и содержит строку YES, если сообщение должно быть показано в виде, подходящем для распечатки.

Реализованы следующие компоненты для Изображения Сообщений:


Имя: RFC822Message

Этот компонент используется для создания изображения почтового сообщения - сообщения, хранящегося в папке или для создания изображения MIME части message/rfc822 какого-либо другого сообщения.

Результирующий Набор Данных

RFC822Header
этот строковый элемент содержит представление на языке разметки для RFC822 заголовка.
RFC822Body
этот строковый элемент содержит представление на языке разметки для RFC822/MIME тела сообщения.
isSubPart
этот элемент существует и имеет строковое значение YES, если сообщение является MIME-частью какого-либо другого сообщения.

Имя: RFC822Header

Этот компонент используется для построения изображения RFC822 заголовка почтового сообщения.

Результирующий Набор Данных

RFC822Fields
этот элемент является массивом с одним элементом типа словарь для каждого "видимого" поля в заголовке. Каждый словарь содержит следующие элементы:
name
этот строковый элемент содержит имя поля заголовка.
value
этот строковый элемент содержит MIME-декодированное значение поля.

Имя: AttachmentPart, ImagePart

Этот компонент используется для построения изображения картинки или файла с приложением. Изображения и приложения могут быть как отдельными частями MIME, так и встроенными в текстовую часть при помощи UUENCODE кодирования.

Результирующий Набор Данных

attachmentName
Эта строка содержит имя файла, так, как оно хранится в данных сообщения.
fileName
Эта строка содержит "очищенное" имя файла (с удалённым путём и добавленным, при необходимости, суффиксом для файла с изображением).
embeddedPart
если этот строковый параметр существует, то в данные UUENCODE "вложен" файл и строка указывает номер встроенного компонента внутри MIME части.
decodedSize
этот строковый элемент содержит "приблизительный" размер декодированных данных файла.

Имя: DeliveryReportPart

Этот компонент используется для построения изображения MIME части message/report.

Результирующий Набор Данных

MessageFields
а этом массиве содержится по одному элементу типа словарь для каждого поля уведомления уровня сообщения. Каждый словарь содержит следующие элементы:
name
этот строковый элемент содержит имя поля уведомления.
value
этот строковый элемент содержит MIME-декодированное значение поля уведомления.
Reports
в этом массиве содержится по одному элементу типа массив для каждого уведомления получателя. Каждое уведомление получателя является массивом, в котором содержится по одному элементу типа словарь для каждого поля уведомления уровня получателя. Каждый словарь содержит следующие элементы:
name
этот строковый элемент содержит имя поля уведомления.
value
этот строковый элемент содержит MIME-декодированное значение поля уведомления.

Имя: DispositionReportPart

Этот компонент используется для построения изображения MIME части message/disposition-notification.

Результирующий Набор Данных

fields
а этом массиве содержится по одному элементу типа словарь для каждого поля уведомления уровня сообщения. Каждый словарь содержит следующие элементы:
name
этот строковый элемент содержит имя поля уведомления.
value
этот строковый элемент содержит MIME-декодированное значение поля уведомления.

Имя: EncryptedPart

Этот компонент используется для построения изображения зашифрованной MIME части.

Результирующий Набор Данных

decryptedPart
этот массив содержит представленное при помощи языка разметки расшифрованное содержимое. Этот элемент существует, только если расшифровка прошла успешно.
decryptionErrorCode
если этот строковый элемент существует, то в нём содержится сообщение об ошибке, объясняющее причину неуспешной расшифровки.
cipherName
Этот строковый элемент содержит название шифра, использованного для зашифровки содержимого.
keyLength
Этот строковый элемент содержит размер ключа шифрования (в битах).

Имя: SignedPart

Этот компонент используется для построения изображения подписанной MIME части.

Результирующий Набор Данных

signedPart
этот массив содержит представленное при помощи языка разметки подписанное содержимое. Этот элемент существует, только если проверка подписи прошла успешно.
encoding
этот строковый элемент содержит слова "Binary" или "Text", в зависимости от формата подписанной части.
decryptionErrorCode
если этот строковый элемент существует, то в нём содержится сообщение о ошибке, объясняющее причину неуспешного декодирования подписи.
digesterName
Этот строковый элемент содержит название алгоритма, используемого для создания "дайджеста" сообщения (цифровой подписи сообщения).
signatures
Если этот массив существует, то подписанное содержимое было проверено при помощи как минимум одной цифровой подписи. Каждый элемент этого массива является словарём с данными подписи. Эти словари содержат следующие элементы:
contact
этот строковый элемент содержит адрес электронной почты подписавшего
commonName
этот строковый элемент содержит "настоящее имя" подписавшего.
Country, Province, Organization, Unit
эти опциональные строковые элементы содержат дополнительную информацию о подписавшем.

Имя: CalendarPart

Этот компонент используется для построения изображения iCalendar части.

Результирующий Набор Данных

Summary, Location, Comment
эти строковые элементы содержат данные атрибутов iCalendar.
Priority
эта числовая строка содержит элемент iCalendar со значением атрибута PRIORITY.
dateFrom
этот элемент с датой содержит элемент iCalendar со значением атрибута DTSTART.
method
этот строковый элемент содержит объект параметр METHOD объекта iCalendar.
description
этот строковый элемент содержит форматированное значение атрибута DESCRIPTION.
organizer
в этом опциональном элементе типа словарь содержится атрибут ORGANIZER. Этот словарь может содержать различные параметры, заданные для этого атрибута ("cn" и т.д.). Адрес электронной почты (значение) атрибута доступно как элемент theValue этого словаря.
attendees
этот опциональный массив содержит элементы типа словарь для каждого атрибута ATTENDEE. Каждый словарь может содержать различные параметры, заданные для этого атрибута ("cn", "role" и т.д.). Адрес электронной почты (значение) атрибута доступно как элемент theValue этого словаря.
isEvent
этот строковый элемент существует и содержит строку YES, если элементом iCalendar является VEVENT. Следующие опциональные элементы могут существовать только если этот элемент isEvent существует:
allDayEvent
этот опциональный элемент существует и содержит строку YES, если VEVENT является Встречей На Весь День.
recurrence
этот опциональный элемент существует и содержит строку YES, если VEVENT является повторяющимся Событием (Встречей).
duration
этот опциональный числовой элемент существует и содержит продолжительность События (Встречи) в секундах, если VEVENT является повторяющимся Событием (Встречей).
dateTill
этот опциональный элемент существует и содержит строку "последнюю дату" События (Встречи), если Событие (Встреча) не является повторяющимся и если оно не является однодневным Событием (Встречей) На Весь День.
busyStatus
этот опциональный элемент с типом строка содержит статус События (Встречи), если методом iCalendar является PUBLISH.
isTask
этот строковый элемент существует и содержит строку YES, если элемент iCalendar является VTODO. Следующие опциональные элементы могут существовать, только если существует элемент isTask:
dateTill
этот опциональный элемент содержит "срок" для VTODO.
percentComplete
эта числовая строка содержит значение атрибута VTODO PERCENT-COMPLETE.

Имя: vCardPart

Этот компонент используется для построения изображения vCard части.

Результирующий Набор Данных

FN
этот строковый элемент содержит форматированное значение атрибута vCard Name.
UID
этот строковый элемент содержит значение атрибута vCard UID.
REV
этот элемент с датой содержит значение атрибута vCard REV.
elements
этот опциональный массив содержит элементы типа словарь для других атрибутов vCard. Каждый словарь содержит следующие элементы:
name
строка с именем атрибута vCard
value
значение элемента vCard. Значение может быть словарём или массивом с элементами типа словарь, если vCard имеет несколько атрибутов с одинаковым именем. Каждый словарь содержит параметры атрибута и значение атрибута как элемент theValue.

Ответ типа Redirect

Сессионные запросы и запросы, независимые от Состояния, обрабатываются с использованием WSSP файлов, создающих документы на языке разметки. До отправки этих документов браузеру клиента, проверяются их первые строки. Если первая строка документа начинается с тэга <REDIRECT>, то остальная часть документа интерпретируется как URL.

Сервер возвращает код ответа 301 ("Передвинуто") с заголовком Location, содержащим указанный URL.

Сервер также обрабатывает тэг <RELREDIRECT> в начале документа. Он обрабатывается так же, как тэг <REDIRECT>, но URL, помещаемый в заголовок Location, имеет префикс http или https, а имя сервера (опционально с номером порта) берётся из URL запроса.


Руководство CommuniGate® Pro. Copyright © 1998-2007, Stalker Software, Inc.