Hc_cocon - Управление пользователями системы
Hc_cocon_add_user
Команда добавляет нового пользователя в систему, позволяет добавить его в группы пользователей/администраторов системы ECSS-10, определенных виртуальных АТС (доменов).
Аналог команды в CoCon:
cocon/add-user
Метод HTTP-запроса:
POST
Шаблон HTTP-запроса:
http://host:port/commands/cocon_add_user
Код HTTP-ответа:
При выполнении команды HTTP-терминал может ответить следующими сообщениями:
- 200 – в случае успеха;
- 404 – в случае ошибки.
XSD-схема XML-файла запроса/ответа:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<!-- okType-->
<xs:complexType name="okType">
<xs:attribute name="name" type="xs:string" use="required"/>
</xs:complexType>
<!-- warningType-->
<xs:complexType name="warningType">
<xs:all>
<xs:element name="error_groups">
<xs:complexType>
<xs:sequence>
<xs:element name="group" type="warningGroupType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:all>
<xs:attribute name="name" type="xs:string" use="required"/>
</xs:complexType>
<!-- weakPasswordType-->
<xs:complexType name="weakPasswordType">
<xs:all>
<xs:element name="failed_restrictions" minOccurs="1" maxOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element name="restriction" type="restrictionType" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:all>
</xs:complexType>
<!-- domainType-->
<xs:complexType name="domainType">
<xs:attribute name="name" type="xs:string" use="required"/>
</xs:complexType>
<!-- warningGroupType-->
<xs:complexType name="warningGroupType">
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="cause" type="xs:string" use="required"/>
</xs:complexType>
<!-- restrictionType-->
<xs:complexType name="restrictionType">
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="args" type="xs:string" use="required"/>
<xs:attribute name="msg" type="xs:string" use="required"/>
</xs:complexType>
<!-- in-->
<xs:element name="in">
<xs:complexType>
<xs:all>
<xs:element name="user">
<xs:complexType>
<xs:all>
<xs:element name="udomains">
<xs:complexType>
<xs:sequence>
<xs:element name="domain" type="domainType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="adomains">
<xs:complexType>
<xs:sequence>
<xs:element name="domain" type="domainType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:all>
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="password" type="xs:string" use="required"/>
<xs:attribute name="is_user" type="xs:boolean" default="false"/>
<xs:attribute name="is_admin" type="xs:boolean" default="false"/>
<xs:attribute name="is_password_expired" type="xs:boolean" default="false"/>
</xs:complexType>
</xs:element>
</xs:all>
</xs:complexType>
</xs:element>
<!-- out-->
<xs:element name="out">
<xs:complexType>
<xs:choice>
<!-- ok -->
<xs:element name="ok" type="okType" minOccurs="0"/>
<!-- already_exists -->
<xs:element name="already_exists" type="okType" minOccurs="0"/>
<!-- weak_password -->
<xs:element name="weak_password" type="weakPasswordType" minOccurs="0"/>
<!-- warning -->
<xs:element name="warning" type="warningType" minOccurs="0"/>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
Пример:
Запрос: http://192.168.1.21:9999/commands/cocon_add_user
<?xml version="1.0" encoding="UTF-8"?>
<in
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="cocon_add_user.xsd">
<user is_user="true" password="test123" is_admin="false" name="test_user">
<udomains>
<domain name="biysk.local"/>
<domain name="ct.office"/>
</udomains>
<adomains>
<domain name="ct.office"/>
</adomains>
</user>
</in>
Ответ:
200. Если пользователь с таким именем уже существует - выдается ошибка 404
<?xml version="1.0"?>
<out
xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="cocon_add_user.xsd">
<ok name="test_user"/>
</out>
Если пароль не соответсвует требоваеиям безопасности:
<?xml version="1.0"?>
<out
xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="cocon_add_user.xsd">
<weak_password>
<failed_restrictions>
<restriction name="min_length" args="8" msg="Passwords must be at least 8 characters in length"/>
</failed_restrictions>
</weak_password>
</out>
Hc_cocon_del_user
Команда позволяет удалить пользователя из системы.
Аналог команды в CoCon:
cocon/del-user
Метод HTTP-запроса:
POST
Шаблон HTTP-запроса:
http://host:port/commands/cocon_del_user
Код HTTP-ответа:
При выполнении команды HTTP-терминал может ответить следующими сообщениями:
- 204 – в случае успеха;
- 404 – в случае ошибки.
XSD-схема XML-файла запроса/ответа:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<!-- errorType-->
<xs:complexType name="errorType">
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="reason" type="xs:string" use="required"/>
</xs:complexType>
<!-- in-->
<xs:element name="in">
<xs:complexType>
<xs:all>
<xs:element name="user">
<xs:complexType>
<xs:attribute name="name" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
</xs:all>
</xs:complexType>
</xs:element>
<!-- out-->
<xs:element name="out">
<xs:complexType>
<xs:choice>
<!-- error -->
<xs:element name="error" type="errorType" minOccurs="0"/>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
Пример:
Запрос: http://192.168.1.21:9999/commands/cocon_del_user
<in
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="cocon_del_user.xsd">
<user name="test_sveta"/>
</in>
Ответ:
204
Запрос на удаление несуществующего пользователя
<in
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="cocon_del_user.xsd">
<user name="test-sveta"/>
</in>
Ответ:
404
<?xml version="1.0" encoding="UTF-8"?>
<out
xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="common_error.xsd">
<error cmd="cocon_del_user" reason="error" body="<?xml version="1.0"?><out
xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="cocon_del_user.xsd"><error name="undefined" reason="Error: {undefined_state,exists}"/></out>"/>
</out>
Hc_cocon_add_user_to_group
Команда добавляет пользователя в указанную группу доступа.
Аналог команды в CoCon:
cocon/add-user-to-group
Метод HTTP-запроса:
POST
Шаблон HTTP-запроса:
http://host:port/commands/cocon_add_user_to_group
Код HTTP-ответа:
При выполнении команды HTTP-терминал может ответить следующими сообщениями:
- 200 – в случае успеха;
- 404 – в случае ошибки.
XSD-схема XML-файла запроса/ответа:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<!-- okType-->
<xs:complexType name="okType">
<xs:attribute name="user" type="xs:string" use="required"/>
<xs:attribute name="group" type="xs:string" use="required"/>
</xs:complexType>
<!-- errorType-->
<xs:complexType name="errorType">
<xs:attribute name="user" type="xs:string" use="required"/>
<xs:attribute name="group" type="xs:string" use="required"/>
<xs:attribute name="reason" type="xs:string" use="required"/>
</xs:complexType>
<!-- groupType-->
<xs:complexType name="groupType">
<xs:attribute name="name" type="xs:string" use="required"/>
</xs:complexType>
<!-- groupsType-->
<xs:complexType name="groupsType">
<xs:sequence>
<xs:element name="group" type="groupType" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<!-- userType-->
<xs:complexType name="userType">
<xs:all>
<xs:element name="groups" type="groupsType"/>
</xs:all>
<xs:attribute name="name" type="xs:string" use="required"/>
</xs:complexType>
<!-- resultType-->
<xs:complexType name="resultType">
<xs:sequence>
<!-- ok -->
<xs:element name="ok" type="okType" minOccurs="0" maxOccurs="unbounded"/>
<!-- error -->
<xs:element name="error" type="errorType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<!-- in-->
<xs:element name="in">
<xs:complexType>
<xs:sequence>
<xs:element name="user" type="userType" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- out-->
<xs:element name="out">
<xs:complexType>
<xs:all>
<xs:element name="result" type="resultType" minOccurs="1" maxOccurs="1"/>
</xs:all>
</xs:complexType>
</xs:element>
</xs:schema>
Примеры:
Запрос: http://192.168.1.21:9999/commands/cocon_add_user_to_group
<?xml version="1.0" encoding="UTF-8"?>
<in
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="cocon_add_user_to_group.xsd">
<user name="test_user">
<groups>
<group name="ecss-admin"/>
<group name="ecss-user"/>
</groups>
</user>
<user name="test2">
<groups>
<group name="ecss-biysk.local-domain-user"/>
<group name="ecss-user"/>
<group name="ecss-biysk.local-domain-admin"/>
</groups>
</user>
</in>
Ответ:
200
<?xml version="1.0"?>
<out
xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="cocon_add_user_to_group.xsd">
<result>
<ok user="test_user" group="ecss-admin"/>
<ok user="test_user" group="ecss-user"/>
<ok user="test2" group="ecss-biysk.local-domain-user"/>
<ok user="test2" group="ecss-user"/>
<ok user="test2" group="ecss-biysk.local-domain-admin"/>
</result>
</out>
Запрос на добавление пользователя в несуществующую группу:
<?xml version="1.0" encoding="UTF-8"?>
<in
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="cocon_add_user_to_group.xsd">
<user name="txtuser">
<groups>
<group name="ecss-ssw"/>
<group name="ecss-user"/>
</groups>
</user>
</in>
Ответ:
404
<?xml version="1.0" encoding="UTF-8"?>
<out
xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="common_error.xsd">
<error cmd="cocon_add_user_to_group" reason="error" body="{error,"Bad result: {undefined_state,noSuchObject}"}"/>
</out>
Hc_cocon_del_user_from_group
Команда позволяет удалить пользователя из указанной группы доступа.
Аналог команды в CoCon:
cocon/del-user-from-group
Метод HTTP-запроса:
POST
Шаблон HTTP-запроса:
http://host:port/commands/cocon_del_user_from_group
Код HTTP-ответа:
При выполнении команды HTTP-терминал может ответить двумя сообщениями:
- 200 – в случае успеха;
- 404 – в случае ошибки.
XSD-схема XML-файла запроса/ответа:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<!-- okType-->
<xs:complexType name="okType">
<xs:attribute name="user" type="xs:string" use="required"/>
<xs:attribute name="group" type="xs:string" use="required"/>
</xs:complexType>
<!-- errorType-->
<xs:complexType name="errorType">
<xs:attribute name="user" type="xs:string" use="required"/>
<xs:attribute name="group" type="xs:string" use="required"/>
<xs:attribute name="reason" type="xs:string" use="required"/>
</xs:complexType>
<!-- groupType-->
<xs:complexType name="groupType">
<xs:attribute name="name" type="xs:string" use="required"/>
</xs:complexType>
<!-- groupsType-->
<xs:complexType name="groupsType">
<xs:sequence>
<xs:element name="group" type="groupType" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<!-- userType-->
<xs:complexType name="userType">
<xs:all>
<xs:element name="groups" type="groupsType"/>
</xs:all>
<xs:attribute name="name" type="xs:string" use="required"/>
</xs:complexType>
<!-- resultType-->
<xs:complexType name="resultType">
<xs:sequence>
<!-- ok -->
<xs:element name="ok" type="okType" minOccurs="0" maxOccurs="unbounded"/>
<!-- error -->
<xs:element name="error" type="errorType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<!-- in-->
<xs:element name="in">
<xs:complexType>
<xs:sequence>
<xs:element name="user" type="userType" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- out-->
<xs:element name="out">
<xs:complexType>
<xs:all>
<xs:element name="result" type="resultType" minOccurs="1" maxOccurs="1"/>
</xs:all>
</xs:complexType>
</xs:element>
</xs:schema>
Пример:
Запрос: http://192.168.1.21:9999/commands/cocon_del_user_from_group
<?xml version="1.0" encoding="UTF-8"?>
<in
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="cocon_del_user_to_group.xsd">
<user name="test_user">
<groups>
<group name="ecss-admin"/>
</groups>
</user>
<user name="test2">
<groups>
<group name="ecss-biysk.local-domain-admin"/>
<group name="ecss-user"/>
<group name="ecss-admin"/>
</groups>
</user>
</in>
Ответ:
200
<?xml version="1.0"?>
<out
xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="cocon_del_user_to_group.xsd">
<result>
<ok user="test_user" group="ecss-admin"/>
<ok user="test2" group="ecss-biysk.local-domain-admin"/>
<ok user="test2" group="ecss-user"/>
<ok user="test2" group="ecss-admin"/>
</result>
</out>
Hc_my_groups
Команда позволяет вывести список групп доступа, разрешенных для текущего пользователя.
Аналог команды в CoCon:
cocon/my-groups
Метод HTTP-запроса:
POST
Шаблон HTTP-запроса:
http://host:port/commands/my_groups
Код HTTP-ответа:
При выполнении команды HTTP-терминал может ответить следующими сообщениями:
- 200 – в случае успеха;
- 404 – в случае ошибки.
XSD-схема XML-файла запроса/ответа:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<!-- groupType -->
<xs:complexType name="groupType">
<xs:attribute name="name" type="xs:string" use="required"/>
</xs:complexType>
<!-- in -->
<xs:element name="in">
<xs:complexType>
<xs:sequence>
<xs:element name="request">
<xs:complexType/>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- out -->
<xs:element name="out">
<xs:complexType>
<xs:sequence>
<xs:element name="groups">
<xs:complexType>
<xs:sequence>
<xs:element name="group" type="groupType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Пример:
Запрос: http://192.168.1.21:9999/commands/my_groups
<in
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="cocon_my_groups.xsd">
<request/>
</in>
Ответ:
<?xml version="1.0"?>
<out
xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="cocon_my_groups.xsd">
<groups>
<group name="ecss-admin"/>
<group name="ecss-biysk.local-domain-admin"/>
<group name="ecss-biysk.local-domain-user"/>
<group name="ecss-ct.office-domain-admin"/>
<group name="ecss-ct.office-domain-user"/>
<group name="ecss-user"/>
</groups>
</out>
Hc_cocon_passwd
Команда позволяет сменить пароль для текущего пользователя CoCon.
Аналог команды в CoCon:
cocon/passwd
Метод HTTP-запроса:
POST
Шаблон HTTP-запроса:
http://host:port/commands/cocon_passwd
Код HTTP-ответа:
При выполнении команды HTTP-терминал может ответить следующими сообщениями:
- 201 – в случае успеха;
- 200 – в случае ошибки, с описанием ошибки.
XSD-схема XML-файла запроса/ответа:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<!-- errorType-->
<xs:complexType name="errorType">
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="reason" type="xs:string" use="required"/>
<xs:attribute name="body" type="xs:string" use="optional"/>
</xs:complexType>
<!-- in-->
<xs:element name="in">
<xs:complexType>
<xs:all>
<xs:element name="user">
<xs:complexType>
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="password" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
</xs:all>
</xs:complexType>
</xs:element>
<!-- out-->
<xs:element name="out">
<xs:complexType>
<xs:all>
<!-- error -->
<xs:element name="error" type="errorType" minOccurs="1" maxOccurs="1"/>
</xs:all>
</xs:complexType>
</xs:element>
</xs:schema>
Пример:
Запрос: http://192.168.1.21:9999/commands/cocon_passwd
<?xml version="1.0" encoding="UTF-8"?>
<in
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="cocon_passwd.xsd">
<user password="test_user" name="test123"/>
</in>
Ответ:
- в случае успеха: 201;
в случае ошибки:
<?xml version="1.0"?> <out xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="cocon_passwd.xsd"> <error name="testSSW" reason="No such object"/> </out>
CODE
Hc_cocon_check_passwd
Команда позволяет проверить пароль для определенного пользователя CoCon.
Метод HTTP-запроса:
POST
Шаблон HTTP-запроса:
http://host:port/commands/cocon_check_passwd
Код HTTP-ответа:
При выполнении команды HTTP-терминал может ответить следующими сообщениями:
- 200 – в случае успеха. Если пароль неверный, возвращается 200 сообщение с result correct="false";
- 404 – в случае ошибки.
XSD-схема XML-файла запроса/ответа:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<!-- errorType-->
<xs:complexType name="resultType">
<xs:attribute name="correct" type="xs:boolean" use="required"/>
</xs:complexType>
<!-- in-->
<xs:element name="in">
<xs:complexType>
<xs:all>
<xs:element name="user">
<xs:complexType>
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="password" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
</xs:all>
</xs:complexType>
</xs:element>
<!-- out-->
<xs:element name="out">
<xs:complexType>
<xs:all>
<xs:element name="result" type="resultType" minOccurs="1" maxOccurs="1"/>
</xs:all>
</xs:complexType>
</xs:element>
</xs:schema>
Пример:
Запрос: http://192.168.23.34:9999/commands/cocon_check_passwd
<?xml version="1.0" encoding="UTF-8"?>
<in
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="cocon_check_passwd.xsd">
<user password="qwe123" name="test_user"/>
</in>
Ответ: 200
<?xml version="1.0"?>
<out
xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="cocon_check_passwd.xsd">
<result correct="true"/>
</out>
Hc_cocon_users_list
Команда возвращает список пользователей подсистемы управления CoCon с указанием групп доступа, в которые каждый пользователь входит.
Аналог команды в CoCon:
cocon/list users
Метод HTTP-запроса:
POST
Шаблон HTTP-запроса:
http://host:port/commands/cocon_users_list
Код HTTP-ответа:
При выполнении команды HTTP-терминал может ответить следующими сообщениями:
- 200 – в случае успеха;
- 404 – в случае ошибки.
XSD-схема XML-файла запроса/ответа:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<!-- groupType -->
<xs:complexType name="groupType">
<xs:attribute name="name" type="xs:string" use="required"/>
</xs:complexType>
<!-- groupsType -->
<xs:complexType name="groupsType">
<xs:sequence>
<xs:element name="group" type="groupType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<!-- userType -->
<xs:complexType name="userType">
<xs:sequence>
<xs:element name="groups" type="groupsType" minOccurs="1" maxOccurs="1"/>
</xs:sequence>
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="role" type="xs:string" use="optional"/>
</xs:complexType>
<!-- in -->
<xs:element name="in">
<xs:complexType>
<xs:sequence>
<xs:element name="request">
<xs:complexType/>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- out -->
<xs:element name="out">
<xs:complexType>
<xs:sequence>
<xs:element name="users">
<xs:complexType>
<xs:sequence>
<xs:element name="user" type="userType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Пример:
Запрос: http://192.168.1.21:9999/commands/cocon_users_list
<in xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="cocon_users_list.xsd">
<request/>
</in>
Ответ:
200
<?xml version="1.0"?>
<out
xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="cocon_users_list.xsd">
<users>
<user name="admin">
<groups>
<group name="ecss-admin"/>
<group name="ecss-biysk.local-domain-admin"/>
<group name="ecss-biysk.local-domain-user"/>
<group name="ecss-ct.office-domain-admin"/>
<group name="ecss-ct.office-domain-user"/>
<group name="ecss-user"/>
</groups>
</user>
<user name="support">
<groups>
<group name="ecss-admin"/>
<group name="ecss-user"/>
</groups>
</user>
<user name="test">
<groups>
<group name="ecss-biysk.local-domain-admin"/>
<group name="ecss-biysk.local-domain-user"/>
</groups>
</user>
<user name="test2">
<groups>
<group name="ecss-biysk.local-domain-user"/>
<group name="ecss-ct.office-domain-admin"/>
<group name="ecss-ct.office-domain-user"/>
</groups>
</user>
<user name="test3">
<groups/>
</user>
<user name="test_user">
<groups>
<group name="ecss-biysk.local-domain-admin"/>
<group name="ecss-biysk.local-domain-user"/>
<group name="ecss-user"/>
</groups>
</user>
<user name="tst3">
<groups/>
</user>
<user name="txtuser">
<groups>
<group name="ecss-admin"/>
<group name="ecss-biysk.local-domain-admin"/>
<group name="ecss-biysk.local-domain-user"/>
<group name="ecss-ct.office-domain-admin"/>
<group name="ecss-ct.office-domain-user"/>
<group name="ecss-user"/>
</groups>
</user>
</users>
</out>
Hc_cocon_groups_list
Команда возвращает список групп доступа подсистемы CoCon с указанием пользователей, которые входят в данные группы.
Аналог команды в CoCon:
cocon/list groups
Метод HTTP-запроса:
POST
Шаблон HTTP-запроса:
http://host:port/commands/cocon_groups_list
Код HTTP-ответа:
При выполнении команды HTTP-терминал может ответить следующими сообщениями:
- 200 – в случае успеха;
- 404 – в случае ошибки.
XSD-схема XML-файла запроса/ответа:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<!-- groupType -->
<xs:complexType name="userType">
<xs:attribute name="name" type="xs:string" use="required"/>
</xs:complexType>
<!-- groupsType -->
<xs:complexType name="usersType">
<xs:sequence>
<xs:element name="user" type="userType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<!-- userType -->
<xs:complexType name="groupType">
<xs:sequence>
<xs:element name="users" type="usersType" minOccurs="1" maxOccurs="1"/>
</xs:sequence>
<xs:attribute name="name" type="xs:string" use="required"/>
</xs:complexType>
<!-- in -->
<xs:element name="in">
<xs:complexType>
<xs:sequence>
<xs:element name="request">
<xs:complexType/>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- out -->
<xs:element name="out">
<xs:complexType>
<xs:sequence>
<xs:element name="groups">
<xs:complexType>
<xs:sequence>
<xs:element name="group" type="groupType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Пример:
Запрос: http://192.168.1.21:9999/commands/cocon_groups_list
<in xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="cocon_groups_list.xsd">
<request />
</in>
Ответ:
200
<?xml version="1.0"?>
<out
xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="cocon_groups_list.xsd">
<groups>
<group name="ecss-admin">
<users>
<user name="admin"/>
<user name="support"/>
<user name="test_user"/>
<user name="txtuser"/>
</users>
</group>
<group name="ecss-biysk.local-domain-admin">
<users>
<user name="admin"/>
<user name="test2"/>
<user name="txtuser"/>
</users>
</group>
<group name="ecss-biysk.local-domain-user">
<users>
<user name="admin"/>
<user name="test2"/>
<user name="test_user"/>
<user name="txtuser"/>
</users>
</group>
<group name="ecss-ct.office-domain-admin">
<users>
<user name="admin"/>
<user name="test_user"/>
</users>
</group>
<group name="ecss-ct.office-domain-user">
<users>
<user name="admin"/>
<user name="test_user"/>
</users>
</group>
<group name="ecss-user">
<users>
<user name="admin"/>
<user name="support"/>
<user name="test2"/>
<user name="test_user"/>
<user name="txtuser"/>
</users>
</group>
<group name="{ECSS-ROOT}">
<users/>
</group>
</groups>
</out>
Hc_cocon_roles_list
Команда возвращает список ролей подсистемы управления CoCon с указанием групп доступа, а также доменов, в которых данная роль видна.
Замечание: если роль входит во все домены, то в ответе присутствует ровно одна запись с доменом, имя которого равно "*".
Аналог команды в CoCon:
cocon/list roles
Метод HTTP-запроса:
POST
Шаблон HTTP-запроса:
http://host:port/commands/cocon_roles_list
Код HTTP-ответа:
- 200 – в случае успеха;
- 404 – в случае ошибки.
XSD-схема XML-файла запроса/ответа:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<!-- groupType -->
<xs:complexType name="groupType">
<xs:attribute name="name" type="xs:string" use="required"/>
</xs:complexType>
<!-- domainType -->
<xs:complexType name="domainType">
<xs:attribute name="name" type="xs:string" use="required"/>
</xs:complexType>
<!-- groupsType -->
<xs:complexType name="groupsType">
<xs:sequence>
<xs:element name="group" type="groupType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<!-- userType -->
<xs:complexType name="domainsType">
<xs:sequence>
<xs:element name="groups" type="domainType" minOccurs="1" maxOccurs="1"/>
</xs:sequence>
</xs:complexType>
<!-- in -->
<xs:element name="in">
<xs:complexType>
<xs:sequence>
<xs:element name="request">
<xs:complexType/>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- out -->
<xs:element name="out">
<xs:complexType>
<xs:sequence>
<xs:element name="roles">
<xs:complexType>
<xs:sequence>
<xs:element name="groups" type="groupsType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="domains" type="domainsType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Пример
Запрос: http://192.168.1.22:9999/commands/cocon_roles_list
<in xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="cocon_roles_list.xsd">
<request/>
</in>
Ответ:
200
<?xml version="1.0"?>
<out
xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="cocon_roles_list.xsd">
<roles>
<role name="cc-admin">
<groups/>
<domains>
<domain name="*"/>
</domains>
</role>
<role name="ecss-security">
<groups/>
<domains>
<domain name="*"/>
</domains>
</role>
<role name="pbx-10X-admin">
<groups/>
<domains>
<domain name="*"/>
</domains>
</role>
</roles>
</out>
Hc_cocon_user_property_clean
Команда позволяет удалять произвольные свойства CoCon пользователей.
Аналог команды в CoCon:
cocon/.properties/clean
Метод HTTP-запроса:
POST
Шаблон HTTP-запроса:
http://host:port/commands/cocon_user_property_clean
Код HTTP-ответа:
- 201 – в случае успеха;
- 200 - в случае, если определенное свойство нельзя изменить;
- 404 – в случае ошибки.
XSD-схема XML-файла запроса/ответа:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<!--requestType-->
<xs:complexType name="requestType">
<xs:sequence>
<xs:element name="property" type="propertyType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<!--propertyType-->
<xs:complexType name="propertyType">
<xs:attribute name="key" type="xs:string" use="required"/>
</xs:complexType>
<!--in-->
<xs:element name = "in">
<xs:complexType>
<xs:sequence>
<xs:element name="request" type="requestType"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Пример 1
Запрос:
http://192.168.1.21:9999/commands/cocon_user_property_clean
<in xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="cocon_user_property_clean.xsd">
<request>
<property key="test1"/>
<property key="test2"/>
</request>
</in>
Код ответа:
204
Пример 2
Запрос:
http://192.168.1.21:9999/commands/cocon_user_property_clean
<in xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="cocon_user_property_clean.xsd">
<request>
<property key="shell_history_size"/>
<property key="test2"/>
</request>
</in>
Код ответа:
200
Ответ:
<?xml version="1.0" encoding="UTF-8"?>
<out
xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="cocon_user_property_clean.xsd">
<error cmd="hc_cocon_user_property_clean" reason="restricted_property" body="shell_history_size"/>
</out>
Hc_cocon_user_property_info
Команда позволяет просматривать свойства CoCon пользователей.
Аналог команды в CoCon:
cocon/.properties/info
Метод HTTP-запроса:
POST
Шаблон HTTP-запроса:
http://host:port/commands/cocon_user_property_info
Код HTTP-ответа:
- 200 – в случае успеха;
- 404 – в случае ошибки.
XSD-схема XML-файла запроса/ответа:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<!--requestType-->
<xs:complexType name="requestType">
<xs:all/>
<xs:attribute name="property" type="xs:string" use="optional"/>
</xs:complexType>
<!--propertyType-->
<xs:complexType name="propertyType">
<xs:attribute name="key" type="xs:string" use="required"/>
<xs:attribute name="value" type="xs:string" use="required"/>
</xs:complexType>
<!--responseType-->
<xs:complexType name="responseType">
<xs:sequence>
<xs:element name="property" type="propertyType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<!--in-->
<xs:element name = "in">
<xs:complexType>
<xs:sequence>
<xs:element name="request" type="requestType"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!--out-->
<xs:element name = "out">
<xs:complexType>
<xs:sequence>
<xs:element name="response" type="responseType"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Пример 1
Запрос:
http://192.168.1.21:9999/commands/cocon_user_property_info
<in xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="cocon_user_property_info.xsd">
<request property="test1"/>
</in>
Ответ:
200
<?xml version="1.0"?>
<out
xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="cocon_user_property_info.xsd">
<response>
<property key="test1" value="value1"/>
</response>
</out>
Пример 2
Запрос:
http://192.168.1.21:9999/commands/cocon_user_property_info
<in xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="cocon_user_property_info.xsd">
<request/>
</in>
Ответ:
200
<?xml version="1.0"?>
<out
xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="cocon_user_property_info.xsd">
<response>
<property key="prompt_prop" value="\l@\n \p"/>
<property key="shell_history" value="system/zmq/status system/media/resource/list system/zmq/status domain/biysk.local/trace/show ls -la cocon/.properties/set shell_history_size 300 ls -la cocon/.properties/ ls -la cocon ls -la cocon/.properties/set cocon/.properties/info cocon/list users cocon/list domain/biysk.local/trace/show cluster/mediator/md1/alarms/list all domain/biysk.local/trace/show domain/biysk.local/trace/list domain/biysk.local/sorm/info sorm/info system/media/resource/list cluster/adapter/sip1/pcap-trace/stop all domain/biysk.local/restfs/list sounds records/2019_05_20/ domain/biysk.local/trace/show --Te 7aef338b domain/biysk.local/trace/list cluster/adapter/sip1/pcap-trace/start all any domain/biysk.local/restfs/list sounds records/2019_05_20/ domain/biysk.local/restfs/list sounds records/ cluster/core/core1/ai/info system-status cocon/my-groups domain/biysk.local/trace/list domain/biysk.local/cfc/info domain/biysk.local/cfc/clean domain/biysk.local/cfc/info restfs/list domain/biysk.local/trace/list cluster/mediator/md1/alarms/list all domain/biysk.local/ss/dialer/list domain/biysk.local/ss/dialer/remove 1 domain/biysk.local/ss/dialer/list system-status cocon/passwd test_user domain/biysk.local/cdr/make_finalize_cdr bsk3 domain/biysk.local/tts/properties/set sign_cdr_enabled true system-status cluster/mediator/md1/alarms/list all cluster/mediator/md1/alarms/clear all cluster/mediator/md1/alarms/list all system-status domain/biysk.local/ss/dialer/info 4 --show-options --active true domain/biysk.local/ss/dialer/info 4 --show-options cluster/core/core1/dialer/db/info domain/biysk.local/ss/dialer/info 4 --show-options domain/biysk.local/ss/dialer/info 4 domain/biysk.local/ss/dialer/declare test3 debt_tmpl_2 manual --group debt_rating_3 --calls_limit 2 --lines_limit 2 --recall_timeout 20 domain/biysk.local/ss/dialer/list domain/biysk.local/ss/dialer/info 3 --active true domain/biysk.local/trace/list system-status domain/biysk.local/ss/dialer/start 3 now domain/biysk.local/calls/list domain/biysk.local/ss/dialer/declare test2 debt_tmpl_2 manual --group debt_rating_3 --calls_limit 2 domain/biysk.local/ss/dialer/template/set debt_tmpl_2 --time_interval 07 00-23 00 domain/biysk.local/ss/dialer/template/list domain/biysk.local/ss/dialer/list system/media/resource/list all cluster/mediator/md1/alarms/clear all system-status system/media/resource/list all system/calls/domains учше system/media/resource/list all cocon/passwd test_user system-status node/core1@ecss1/log/config/rule-off ecss_zmq_transport_bin node/core1@ecss1/log/config/rule-on ecss_zmq_transport_bin node/core1@ecss1/log/config/show-rule system-status system/media/resource/list all system/media/resource/list system-status cocon/list users domain/biysk.local/ss/dialer/list domain/biysk.local/lists/declare debt_rating_3 default debt-3 240501 240502 416977 240464 240101 domain/biysk.local/ss/dialer/info 1 --active true domain/biysk.local/ss/dialer/start 1 now domain/biysk.local/ss/dialer/start 1 domain/biysk.local/ss/dialer/info 1 domain/biysk.local/ss/dialer/list system-status domain/biysk.local/trace/show --short-payload domain/biysk.local/trace/list domain/biysk.local/properties/restrictions/set dialer\channels 2 domain/biysk.local/properties/restrictions/info cocon/list users domain/biysk.local/tts/properties/info domain/biysk.local/tts/properties/info manual_cdr_columns cocon/list users node/core1@ecss1/log/config/show-rule domain/biysk.local/ss/dialer/info 2 --active true domain/biysk.local/trace/list "/>
<property key="shell_history_size" value="100"/>
<property key="test1" value="value1"/>
<property key="test2" value="value2"/>
<property key="test3" value="value31 value32"/>
</response>
</out>
Hc_cocon_user_property_set
Команда позволяет выставлять/изменять произвольные свойства CoCon пользователей.
Аналог команды в CoCon:
cocon/.properties/set
Метод HTTP-запроса:
POST
Шаблон HTTP-запроса:
http://host:port/commands/cocon_user_property_set
Код HTTP-ответа:
- 201 – в случае успеха;
- 200 – в случае, если определенное свойство нельзя изменить;
- 404 – в случае ошибки.
XSD-схема XML-файла запроса/ответа:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<!--requestType-->
<xs:complexType name="requestType">
<xs:sequence>
<xs:element name="property" type="propertyType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<!--propertyType-->
<xs:complexType name="propertyType">
<xs:attribute name="key" type="xs:string" use="required"/>
<xs:attribute name="value" type="xs:string" use="required"/>
</xs:complexType>
<!--in-->
<xs:element name = "in">
<xs:complexType>
<xs:sequence>
<xs:element name="request" type="requestType"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Пример 1
Запрос:
http://192.168.1.21:9999/commands/cocon_user_property_set
<in
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="cocon_user_property_set.xsd">
<request>
<property key="test1" value="value1"/>
<property key="test2" value="value2"/>
<property key="test3" value="value31 value32"/>
</request>
</in>
Код ответа:
201
Пример 2
Запрос:
http://192.168.1.21:9999/commands/cocon_user_property_set
<in xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="cocon_user_property_set.xsd">
<request>
<property key="shell_history_size" value="300"/>
</request>
</in>
Код ответа:
200
Ответ:
<?xml version="1.0" encoding="UTF-8"?>
<out xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:noNamespaceSchemaLocation="cocon_user_property_set.xsd">
<error cmd="hc_cocon_user_property_set" reason="restricted_property" body="shell_history_size"/>
</out>