Команды для управления группами

Управлять группами пользователей  можно с помощью следующих команд:

groups-set client-group [settings] - создание или обновление группы с именем group, заданной в client-group. Если группа не существует, то она будет создана. Если в settings указаны не все настройки, то для отсутствующих будет установлено значение по умолчанию.

groups-remove client-group - удаление группы с именем group, заданной в client-group. Если заданная группа не существует, то выводится ошибка. Для каждого из пользователей, входивших в удаляемую группу, данная группа будет удалена из списка групп, в которые пользователь входит.

groups-rename client-group group - переименование группы, указанной в качестве первого параметра, с использованием имени, указанного в качестве второго параметра. Если указанной группы не существует или группа с новым именем уже существует, то выводится ошибка и никакие действия не выполняются.

groups-get-rules [group-list] - получение Правил для всех групп из списка group-list. Если какая-либо группа из group-list не существует, то выводится ошибка, но операция продолжается.

Формат вывода:

[client-id1/]group1
1: rule1
2: rule2
...
[client-id2/]group2
1: rule21
2: rule22
...

groups-insert-rule client-group index RULE - вставка нового Правила перед Правилом с порядковым номером index для группы с именем group, заданной в client-group. Если группы с таким именем нет, то выводится ошибка. Нумерация (index) начинается с 1. Если значение index больше максимального числа Правил для указанной группы, то новое Правило RULE добавляется в конец списка Правил. При этом ему присваивается index по порядку.

Пример:

Если для группы задано всего два Правила, то при попытке добавить новое Правило с index, равным 10, правило добавится в конец списка с index, равным 3).

Если index ≤ 0, то выводится ошибка. Если RULE пустое (т.е. Правило не указано), то выводится ошибка. После успешной модификации выводятся Правила для данной группы в формате вывода groups-get-rules.

groups-remove-rule client-group index - удаление Правила с порядковым номером index для группы group, заданной в client-group. Нумерация (index) начинается с 1. Если group не существует, то выводится ошибка. Если значение index больше максимального числа Правил для указанной группы или index ≤ 0, то выводится ошибка. После успешной модификации выводятся Правила для данной группы в формате вывода groups-get-rules.

groups-info [ext-group-list] - вывод всех пользователей, которые входят в группы из списка ext-group-list, а также информации об активности и произвольной информации. Если какая-либо группа из ext-group-list не существует, то выдается ошибка, но операция продолжается. Если ext-group-list не указано, то выводится информация по всем имеющимся группам. Алиасы в списках адресов не выводятся.

Формат вывода:

[client-id1/]group1 A=active1 S=stat1
emails:
email1
email2
...
custom:
tag1: info1..
tag2: info2..
...
[client-id2/]group2 A=active2 S=stat2
emails:
email21
email22
...
custom:
tag21: info21..
tag22: info22..
...

groups-count [ext-group-list] – команда работает аналогично groups-info, только выводит число найденных групп.

groups-get-custom -|tag group-list - получение информации с тегом tag, связанной с каждой группой, перечисленной в group-list. Если какая-либо группа из group-list не существует, то выводится ошибка, но операция продолжается. Если информации, связанной с тегом tag не существует, то выводится пустая строка. Информация по каждой группе разделяется переводом строки. Если вместо тега указан символ "-", то выводится информация по всем тегам.

Формат вывода:

[client-id1/]group1
tag: info..
[client-id2/]group2
tag2: info2..

groups-set-custom tag client-group [info] - установка текста info, связанного с тегом tag для группы client-group. Если группа не найдена, то выводится ошибка. Если info не указано, то тег со всей информацией, связанной с ним, удаляется.