<?xml version='1.0' encoding='UTF-8'?>
<chapter xmlns="http://docbook.org/ns/docbook">
    <title>Авторизация в системе</title>
    <para>В этом разделе собраны функции, не относящиеся к манипулированию сущностями системы. А именно: отвечающие за авторизацию в системе, получение информации о системе и т.д.</para>
    <refentry id="stargazer.login">
        <refmeta>
            <refentrytitle>stargazer.login</refentrytitle>
        </refmeta>
        <refnamediv>
            <refname>stargazer.login</refname>
            <refpurpose>Авторизация администратора в системе</refpurpose>
        </refnamediv>
        <refsynopsisdiv>
            <funcsynopsis>
                <funcprototype>
                    <funcdef><function>stargazer.login</function></funcdef>
                    <paramdef>string <parameter>login</parameter></paramdef>
                    <paramdef>string <parameter>password</parameter></paramdef>
                </funcprototype>
            </funcsynopsis>
        </refsynopsisdiv>
        <refsect1>
            <title>Description</title>
            <para>Метод <function>stargazer.login</function> авторизует администратора в системе. Если логин и пароль корректные - создается cookie и открывается сессия. В дальнейшем все вызовы API получают этот cookie. Если указаный администратор в системе не найден или его пароль не совпадает - сессия не открывается и cookie не создается.</para>
            <variablelist>
                <varlistentry>
                    <term>string <parameter>login</parameter></term>
                    <listitem>
                        <para>Логин администратора</para>
                    </listitem>
                </varlistentry>
                <varlistentry>
                    <term>string <parameter>password</parameter></term>
                    <listitem>
                        <para>Пароль администратора</para>
                    </listitem>
                </varlistentry>
            </variablelist>
            <refsect2>
                <title>Return Value</title>
                <para>
                    Возвращает структуру:
                    <variablelist>
                        <varlistentry>
                            <term>bool <structfield>result</structfield></term>
                            <listitem>
                                <para>Результат операции. true - авторизация прошла успешно, false - авторизация завершилась неудачей.</para>
                            </listitem>
                        </varlistentry>
                        <varlistentry>
                            <term>string <structfield>cookie</structfield></term>
                            <listitem>
                                <para>Авторизационный cookie. В случе успешной авторизации представляет собой строку из 64 символов, передаваемую во все вызовы API. В случае неудачи - пустая строка.</para>
                            </listitem>
                        </varlistentry>
                    </variablelist>
                </para>
            </refsect2>
        </refsect1>
        <refsect1>
            <title>See also</title>
            <para><link linkend="stargazer.logout">stargazer.logout</link></para>
        </refsect1>
    </refentry>
    <refentry id="stargazer.logout">
        <refmeta>
            <refentrytitle>stargazer.logout</refentrytitle>
        </refmeta>
        <refnamediv>
            <refname>stargazer.logout</refname>
            <refpurpose>Завершение сессии администратора в системе</refpurpose>
        </refnamediv>
        <refsynopsisdiv>
            <funcsynopsis>
                <funcprototype>
                    <funcdef><function>stargazer.logout</function></funcdef>
                    <paramdef>string <parameter>cookie</parameter></paramdef>
                </funcprototype>
            </funcsynopsis>
        </refsynopsisdiv>
        <refsect1>
            <title>Description</title>
            <para>Метод <function>stargazer.logout</function> завершает сеанс работы авторизатора в системе.</para>
            <variablelist>
                <varlistentry>
                    <term>string <parameter>cookie</parameter></term>
                    <listitem>
                        <para>Авторизационный cookie</para>
                    </listitem>
                </varlistentry>
            </variablelist>
            <refsect2>
                <title>Return Value</title>
                <para>Возвращает true в случае успеха и false в случае неудачи.</para>
            </refsect2>
        </refsect1>
        <refsect1>
            <title>See also</title>
            <para><link linkend="stargazer.login">stargazer.login</link></para>
        </refsect1>
    </refentry>
    <refentry id="stargazer.info">
        <refmeta>
            <refentrytitle>stargazer.info</refentrytitle>
        </refmeta>
        <refnamediv>
            <refname>stargazer.info</refname>
            <refpurpose>Информация о сервере</refpurpose>
        </refnamediv>
        <refsynopsisdiv>
            <funcsynopsis>
                <funcprototype>
                    <funcdef><function>stargazer.info</function></funcdef>
                </funcprototype>
            </funcsynopsis>
        </refsynopsisdiv>
        <refsect1>
            <title>Description</title>
            <para>Метод <function>stargazer.info</function> возвращает информацию о сервере Stargazer. Не требует авторизации.</para>
            <refsect2>
                <title>Return Value</title>
                <para>
                    Возвращает структуру:
                    <variablelist>
                        <varlistentry>
                            <term>string <structfield>version</structfield></term>
                            <listitem>
                                <para>Версия Stargazer</para>
                            </listitem>
                        </varlistentry>
                        <varlistentry>
                            <term>int <structfield>tariff_num</structfield></term>
                            <listitem>
                                <para>Количество тарифов в системе</para>
                            </listitem>
                        </varlistentry>
                        <varlistentry>
                            <term>int <structfield>tariff</structfield></term>
                            <listitem>
                                <para>Версия тарифов (обычно 2)</para>
                            </listitem>
                        </varlistentry>
                        <varlistentry>
                            <term>int <structfield>users_num</structfield></term>
                            <listitem>
                                <para>Количество зарегистрированных пользователей в системе</para>
                            </listitem>
                        </varlistentry>
                        <varlistentry>
                            <term>string <structfield>uname</structfield></term>
                            <listitem>
                                <para>Строка uname</para>
                            </listitem>
                        </varlistentry>
                        <varlistentry>
                            <term>int <structfield>dir_num</structfield></term>
                            <listitem>
                                <para>Количество тарифицируемых направлений</para>
                            </listitem>
                        </varlistentry>
                        <varlistentry>
                            <term>int <structfield>day_fee</structfield></term>
                            <listitem>
                                <para>День снятия абонплаты</para>
                            </listitem>
                        </varlistentry>
                        <varlistentry>
                            <term>array of strings <structfield>dir_names</structfield></term>
                            <listitem>
                                <para>Названия направлений</para>
                            </listitem>
                        </varlistentry>
                    </variablelist>
                </para>
            </refsect2>
        </refsect1>
    </refentry>
</chapter>

