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>

CODE

Пример:

Запрос: 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>
CODE

Ответ:

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>
CODE

Если пароль не соответсвует требоваеиям безопасности:

<?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>
CODE


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>
CODE

Пример:

Запрос: 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>
CODE

Ответ:

204

Запрос на удаление несуществующего пользователя

<in
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="cocon_del_user.xsd">
    <user name="test-sveta"/>
</in>
CODE

Ответ:

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>
CODE

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>

CODE

Примеры:

Запрос: 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>
CODE

Ответ:

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>
CODE

Запрос на добавление пользователя в несуществующую группу:

<?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>
CODE

Ответ:

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>
CODE

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>
CODE

Пример:

Запрос: 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>
CODE

Ответ:

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>
CODE

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>
CODE

Пример:

Запрос: 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>
CODE

Ответ:

<?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>
CODE

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>

CODE

Пример:

Запрос: 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>
CODE

Ответ:

  • в случае успеха: 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>
CODE

Пример:

Запрос: 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>
CODE

Ответ: 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>
CODE

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>
CODE

Пример:

Запрос: 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>
CODE

Ответ:

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>
CODE

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>
CODE

Пример:

Запрос: 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>
CODE

Ответ:

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>
CODE

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>
CODE

Пример

Запрос: 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>
CODE

Ответ:

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>
CODE

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>
CODE

Пример 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>
XML

Код ответа:

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>
CODE

Код ответа:

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>
CODE

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>
CODE

Пример 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>
CODE

Ответ:

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>
CODE

Пример 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>
CODE


Ответ:

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>
CODE

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>
CODE

Пример 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>
CODE

Код ответа:

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>
CODE

Код ответа:

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>
CODE