From 06c1548a92767365aa31a7af539475d535a33da3 Mon Sep 17 00:00:00 2001 From: Maxim Mamontov Date: Mon, 22 Nov 2010 18:34:14 +0200 Subject: [PATCH] =?utf8?q?=D0=94=D0=BE=D0=BA=D1=83=D0=BC=D0=B5=D0=BD=D1=82?= =?utf8?q?=D0=B0=D1=86=D0=B8=D1=8F=20=D0=BF=D0=BE=D0=BC=D0=B5=D1=89=D0=B5?= =?utf8?q?=D0=BD=D0=B0=20=D0=B2=20=D0=BA=D0=B0=D1=82=D0=B0=D0=BB=D0=BE?= =?utf8?q?=D0=B3=20doc?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- proto_client.gif => doc/proto_client.gif | Bin proto_server.gif => doc/proto_server.gif | Bin doc/xmlrpc-doc/API-admins.xml | 418 +++++++++ doc/xmlrpc-doc/API-messages.xml | 102 +++ doc/xmlrpc-doc/API-system.xml | 179 ++++ doc/xmlrpc-doc/API-tariffs.xml | 639 +++++++++++++ doc/xmlrpc-doc/API-user.xml | 1060 ++++++++++++++++++++++ doc/xmlrpc-doc/API.xml | 33 + doc/xmlrpc-doc/Makefile | 5 + doc/xmlrpc.php | 36 + 10 files changed, 2472 insertions(+) rename proto_client.gif => doc/proto_client.gif (100%) rename proto_server.gif => doc/proto_server.gif (100%) create mode 100644 doc/xmlrpc-doc/API-admins.xml create mode 100644 doc/xmlrpc-doc/API-messages.xml create mode 100644 doc/xmlrpc-doc/API-system.xml create mode 100644 doc/xmlrpc-doc/API-tariffs.xml create mode 100644 doc/xmlrpc-doc/API-user.xml create mode 100644 doc/xmlrpc-doc/API.xml create mode 100644 doc/xmlrpc-doc/Makefile create mode 100644 doc/xmlrpc.php diff --git a/proto_client.gif b/doc/proto_client.gif similarity index 100% rename from proto_client.gif rename to doc/proto_client.gif diff --git a/proto_server.gif b/doc/proto_server.gif similarity index 100% rename from proto_server.gif rename to doc/proto_server.gif diff --git a/doc/xmlrpc-doc/API-admins.xml b/doc/xmlrpc-doc/API-admins.xml new file mode 100644 index 00000000..c8aaa9b9 --- /dev/null +++ b/doc/xmlrpc-doc/API-admins.xml @@ -0,0 +1,418 @@ + + + Управление админами + В этом разделе собраны вызовы API для управления с администраторами системы: удаление, добавление, изменение прав и т.д. + + + stargazer.get_admin + + + stargazer.get_admin + Получает информацию об администраторе системы + + + + + stargazer.get_admin + string cookie + string login + + + + + Description + Метод stargazer.get_admin получает информацию об администраторе системы. + + + string cookie + + Авторизационный cookie. Для авторизации в системе используется метод stargazer.login + + + + string login + + Логин администратора + + + + + Return Value + + Возвращает структуру: + + + boolean result + + Результат операции. true - успешно, false - неудача (неправильный или устаревший cookie, неправильное название тарифа). + + + + string login + + Логин администратора + + + + boolean user_stat + + Право на изменение статистики пользователя (включая состояние счета) + + + + boolean user_conf + + Право на изменение конфигурации пользователя (включая пароль) + + + + boolean user_cash + + Право на изменение состояния счета пользователя + + + + boolean user_passwd + + Право на изменение пароля пользователя + + + + boolean user_add_del + + Право на добавление и удаление пользователей + + + + boolean admin_chg + + Право на управление администраторами + + + + boolean tariff_chg + + Право на управление тарифами + + + + + + + + See also + + stargazer.get_admins, + stargazer.add_admin, + stargazer.del_admin, + stargazer.chg_admin + + + + + + stargazer.get_admins + + + stargazer.get_admins + Получает информацию об админах + + + + + stargazer.get_admins + string cookie + + + + + Description + Метод stargazer.get_admins получает информацию об админах, зарегистрированных в системе. + + + string cookie + + Авторизационный cookie. Для авторизации в системе используется метод stargazer.login + + + + + Return Value + + Возвращает массив структур: + + + boolean result + + Результат операции. true - успешно, false - неудача (неправильный или устаревший cookie, неправильное название тарифа). + + + + string login + + Логин администратора + + + + boolean user_stat + + Право на изменение статистики пользователя (включая состояние счета) + + + + boolean user_conf + + Право на изменение конфигурации пользователя (включая пароль) + + + + boolean user_cash + + Право на изменение состояния счета пользователя + + + + boolean user_passwd + + Право на изменение пароля пользователя + + + + boolean user_add_del + + Право на добавление и удаление пользователей + + + + boolean admin_chg + + Право на управление администраторами + + + + boolean tariff_chg + + Право на управление тарифами + + + + + + + + See also + + stargazer.get_admin, + stargazer.add_admin, + stargazer.del_admin, + stargazer.chg_admin + + + + + + stargazer.del_admin + + + stargazer.del_admin + Удаляет администратора из системы + + + + + stargazer.del_admin + string cookie + string login + + + + + Description + Метод stargazer.del_admin удаляет администратора из системы. + + + string cookie + + Авторизационный cookie. Для авторизации в системе используется метод stargazer.login + + + + string login + + Логин удаляемого администратора + + + + + Return Value + Возвращает true в случае успеха и false в случае неудачи + + + + See also + + stargazer.get_admins, + stargazer.get_admin, + stargazer.add_admin, + stargazer.chg_admin + + + + + + stargazer.add_admin + + + stargazer.add_admin + Добавляет администратора в систему + + + + + stargazer.add_admin + string cookie + string login + + + + + Description + Метод stargazer.add_admin добавляет администратора в систему. + + + string cookie + + Авторизационный cookie. Для авторизации в системе используется метод stargazer.login + + + + string login + + Логин добавляемого администратора + + + + + Return Value + Возвращает true в случае успеха и false в случае неудачи + + + + See also + + stargazer.get_admins, + stargazer.get_admin, + stargazer.del_admin, + stargazer.chg_admin + + + + + + stargazer.chg_admin + + + stargazer.chg_admin + Изменяет права и/или пароль администратора + + + + + stargazer.chg_admin + string cookie + string login + struct info + + + + + Description + Метод stargazer.chg_admin изменяет права и/или пароль администратора системы. Допустимо частичное указание параметров в структуре info. В этом случае изменение затронет только указанные параметры. Дополнительные поля структуры (не входящие в описание) будут проигнорированы. + + + string cookie + + Авторизационный cookie. Для авторизации в системе используется метод stargazer.login + + + + string login + + Логин изменяемого администратора + + + + struct info + + + Структура с информацией об админе: + + + string login + + Логин администратора + + + + boolean user_stat + + Право на изменение статистики пользователя (включая состояние счета) + + + + boolean user_conf + + Право на изменение конфигурации пользователя (включая пароль) + + + + boolean user_cash + + Право на изменение состояния счета пользователя + + + + boolean user_passwd + + Право на изменение пароля пользователя + + + + boolean user_add_del + + Право на добавление и удаление пользователей + + + + boolean admin_chg + + Право на управление администраторами + + + + boolean tariff_chg + + Право на управление тарифами + + + + + + + + + Return Value + Возвращает true в случае успеха и false в случае неудачи + + + + See also + + stargazer.get_admins, + stargazer.get_admin, + stargazer.del_admin, + stargazer.add_admin + + + + diff --git a/doc/xmlrpc-doc/API-messages.xml b/doc/xmlrpc-doc/API-messages.xml new file mode 100644 index 00000000..0a16d524 --- /dev/null +++ b/doc/xmlrpc-doc/API-messages.xml @@ -0,0 +1,102 @@ + + + Управление сообщениями пользователю + В этом разделе собраны вызовы API для отправки сообщений пользователям. + + + stargazer.send_message + + + stargazer.send_message + Отправляет сообщение пользователям + + + + + stargazer.send_message + string cookie + array of strings logins + struct info + + + + + Description + Метод stargazer.send_message отправляет сообщение пользователям, логины которых перечислены в списке. + + + string cookie + + Авторизационный cookie. Для авторизации в системе используется метод stargazer.login + + + + array of strings logins + + Список логинов пользователей + + + + struct info + + + Структура с параметрами сообщения: + + + int version + + Версия системы сообщений (не обязательный параметр, по умолчанию - 1) + + + + + + int type + + Тип сообщения (не обязательный параметр, по умолчанию - 1) + + + + + + int repeat + + Количество показов сообщеня + + + + + + int repeat_period + + Период повторения показа сообщений (в минутах) + + + + + + int show_time + + Время отображения сообщения (в секундах) + + + + + + string text + + Текст сообщения в кодировке CP1251 + + + + + + + + + Return Value + Возвращает true в случае успеха и false в случае неудачи + + + + diff --git a/doc/xmlrpc-doc/API-system.xml b/doc/xmlrpc-doc/API-system.xml new file mode 100644 index 00000000..27529177 --- /dev/null +++ b/doc/xmlrpc-doc/API-system.xml @@ -0,0 +1,179 @@ + + + Авторизация в системе + В этом разделе собраны функции, не относящиеся к манипулированию сущностями системы. А именно: отвечающие за авторизацию в системе, получение информации о системе и т.д. + + + stargazer.login + + + stargazer.login + Авторизация администратора в системе + + + + + stargazer.login + string login + string password + + + + + Description + Метод stargazer.login авторизует администратора в системе. Если логин и пароль корректные - создается cookie и открывается сессия. В дальнейшем все вызовы API получают этот cookie. Если указаный администратор в системе не найден или его пароль не совпадает - сессия не открывается и cookie не создается. + + + string login + + Логин администратора + + + + string password + + Пароль администратора + + + + + Return Value + + Возвращает структуру: + + + bool result + + Результат операции. true - авторизация прошла успешно, false - авторизация завершилась неудачей. + + + + string cookie + + Авторизационный cookie. В случе успешной авторизации представляет собой строку из 64 символов, передаваемую во все вызовы API. В случае неудачи - пустая строка. + + + + + + + + See also + stargazer.logout + + + + + stargazer.logout + + + stargazer.logout + Завершение сессии администратора в системе + + + + + stargazer.logout + string cookie + + + + + Description + Метод stargazer.logout завершает сеанс работы авторизатора в системе. + + + string cookie + + Авторизационный cookie + + + + + Return Value + Возвращает true в случае успеха и false в случае неудачи. + + + + See also + stargazer.login + + + + + stargazer.info + + + stargazer.info + Информация о сервере + + + + + stargazer.info + + + + + Description + Метод stargazer.info возвращает информацию о сервере Stargazer. Не требует авторизации. + + Return Value + + Возвращает структуру: + + + string version + + Версия Stargazer + + + + int tariff_num + + Количество тарифов в системе + + + + int tariff + + Версия тарифов (обычно 2) + + + + int users_num + + Количество зарегистрированных пользователей в системе + + + + string uname + + Строка uname + + + + int dir_num + + Количество тарифицируемых направлений + + + + int day_fee + + День снятия абонплаты + + + + array of strings dir_names + + Названия направлений + + + + + + + + + diff --git a/doc/xmlrpc-doc/API-tariffs.xml b/doc/xmlrpc-doc/API-tariffs.xml new file mode 100644 index 00000000..fadc20b3 --- /dev/null +++ b/doc/xmlrpc-doc/API-tariffs.xml @@ -0,0 +1,639 @@ + + + Управление тарифами + В этом разделе собраны вызовы для манипулирования тарифными планами. Тарифный план включает в себя: + + название; + абонплата; + количество бесплатных мегабайт, включенных в абонплату; + стоимость "заморозки" пользователя; + + тип подсчета трафика: + + только входящий, + только исходящий, + входящий и исходящий суммарно, + максимум из входящего и исходящего + + + + информацию о тарификации направлений: + + время начала дня; + конца дня; + цена за мегабайт трафика до порога днем; + цена за мегабайт трафика после порога днем; + цена за мегабайт трафика до порога ночью; + цена за мегабайт трафика после порога ночью; + пороговый объем трафика в мегабайтах; + флаг игнорирования времени суток; + флаг игнорирования порога. + + + + + + stargazer.get_tariff + + + stargazer.get_tariff + Получает информацию о тарифном плане + + + + + stargazer.get_tariff + string cookie + string tariff + + + + + Description + Метод stargazer.get_tariff получает информацию о тарифном плане. + + + string cookie + + Авторизационный cookie. Для авторизации в системе используется метод stargazer.login + + + + string tariff + + Название тарифа + + + + + Return Value + + Возвращает структуру: + + + boolean result + + Результат операции. true - успешно, false - неудача (неправильный или устаревший cookie, неправильное название тарифа). + + + + string tariff + + Название тарифа + + + + double fee + + Абонплата + + + + double freemb + + Количество бесплатных мегабайт включенных в абонплату + + + + double passivecost + + Стоимость "заморозки" пользователя + + + + int trafftype + + Тип подсчета трафика: + + 0 — подсчитывать только исходящий трафик + 1 — подсчитывать только входящий трафик + 2 — подсчитывать суммарно входящий и исходящий трафик + 3 — подсчитывать максимальный из входящего и исходящего трафика + + + + + + array of struct dirprices + + Массив стурктур, описывающих тарификацию направлений: + + + int hday + + Часы начала дня + + + + int mday + + Минуты начала дня + + + + int hnight + + Часы начала ночи + + + + int mnight + + Минуты начала ночи + + + + double pricedaya + + Цена 1 мегабайта трафика днем до превышения порогового значения + + + + double pricedayb + + Цена 1 мегабайта трафика днем после превышения порогового значения + + + + double pricenighta + + Цена 1 мегабайта трафика ночью до превышения порогового значения + + + + double pricenightb + + Цена 1 мегабайта трафика ночью после превышения порогового значения + + + + int threshold + + Величина порога в мегабайтах + + + + boolean singleprice + + Цена не зависит от времени суток + + + + boolean nodiscount + + Цена не зависит от порога + + + + + + + + + + + + See also + + stargazer.get_tariffs, + stargazer.add_tariff, + stargazer.del_tariff, + stargazer.chg_tariff + + + + + + stargazer.get_tariffs + + + stargazer.get_tariffs + Получает информацию о тарифных планах + + + + + stargazer.get_tariffs + string cookie + + + + + Description + Метод stargazer.get_tariffs получает информацию о тарифных планах. + + + string cookie + + Авторизационный cookie. Для авторизации в системе используется метод stargazer.login + + + + + Return Value + + Возвращает массив структур: + + + boolean result + + Результат операции. true - успешно, false - неудача (неправильный или устаревший cookie, неправильное название тарифа). + + + + string tariff + + Название тарифа + + + + double fee + + Абонплата + + + + double freemb + + Количество бесплатных мегабайт включенных в абонплату + + + + double passivecost + + Стоимость "заморозки" пользователя + + + + int trafftype + + Тип подсчета трафика: + + 0 — подсчитывать только исходящий трафик + 1 — подсчитывать только входящий трафик + 2 — подсчитывать суммарно входящий и исходящий трафик + 3 — подсчитывать максимальный из входящего и исходящего трафика + + + + + + array of struct dirprices + + Массив стурктур, описывающих тарификацию направлений: + + + int hday + + Часы начала дня + + + + int mday + + Минуты начала дня + + + + int hnight + + Часы начала ночи + + + + int mnight + + Минуты начала ночи + + + + double pricedaya + + Цена 1 мегабайта трафика днем до превышения порогового значения + + + + double pricedayb + + Цена 1 мегабайта трафика днем после превышения порогового значения + + + + double pricenighta + + Цена 1 мегабайта трафика ночью до превышения порогового значения + + + + double pricenightb + + Цена 1 мегабайта трафика ночью после превышения порогового значения + + + + int threshold + + Величина порога в мегабайтах + + + + boolean singleprice + + Цена не зависит от времени стуок + + + + boolean nodiscount + + Цена не зависит от порога + + + + + + + + + + + + See also + + stargazer.get_tariff, + stargazer.add_tariff, + stargazer.del_tariff, + stargazer.chg_tariff + + + + + + stargazer.add_tariff + + + stargazer.add_tariff + Добавляет в систему новый тарифный план + + + + + stargazer.add_tariff + string cookie + string tariff + + + + + Description + Метод stargazer.add_tariff добавляет в систему новый "пустой" тарифный план. Для его настройки используется метод stargazer.chg_tariff. + + + string cookie + + Авторизационный cookie. Для авторизации в системе используется метод stargazer.login + + + + string tariff + + Название тарифа + + + + + Return Value + Возвращет true в случае успеха и false в случае неудачи + + + + See also + + stargazer.get_tariffs, + stargazer.get_tariff, + stargazer.del_tariff, + stargazer.chg_tariff + + + + + + stargazer.del_tariff + + + stargazer.del_tariff + Удаляет из системы тарифный план + + + + + stargazer.del_tariff + string cookie + string tariff + + + + + Description + Метод stargazer.del_tariff удаляет из системы тарифный план + + + string cookie + + Авторизационный cookie. Для авторизации в системе используется метод stargazer.login + + + + string tariff + + Название тарифа + + + + + Return Value + Возвращет true в случае успеха и false в случае неудачи + + + + See also + + stargazer.get_tariffs, + stargazer.get_tariff, + stargazer.add_tariff, + stargazer.chg_tariff + + + + + + stargazer.chg_tariff + + + stargazer.chg_tariff + Изменяет информацию о тарифном плане + + + + + stargazer.chg_tariff + string cookie + string tariff + struct info + + + + + Description + Метод stargazer.chg_tariff изменяет информацию о тарифном плане. Допустимо частичное указание параметров в структуре info. В этом случае изменение затронет только указанные параметры. Дополнительные поля структуры (не входящие в описание) будут проигнорированы. + + + string cookie + + Авторизационный cookie. Для авторизации в системе используется метод stargazer.login + + + + string tariff + + Название тарифа + + + + struct info + + + Структура с информацией о тарифном плане: + + + string tariff + + Название тарифа + + + + double fee + + Абонплата + + + + double freemb + + Количество свободных мегабайт, включенных в абонплату + + + + double passivecost + + Стоимость заморозки пользователя + + + + int trafftype + + Тип подсчета трафика: + + 0 — подсчитывать только исходящий трафик + 1 — подсчитывать только входящий трафик + 2 — подсчитывать суммарно входящий и исходящий трафик + 3 — подсчитывать максимальный из входящего и исходящего трафика + + + + + + array of struct dirprices + + Массив стурктур, описывающих тарификацию направлений: + + + int hday + + Часы начала дня + + + + int mday + + Минуты начала дня + + + + int hnight + + Часы начала ночи + + + + int mnight + + Минуты начала ночи + + + + double pricedaya + + Цена 1 мегабайта трафика днем до превышения порогового значения + + + + double pricedayb + + Цена 1 мегабайта трафика днем после превышения порогового значения + + + + double pricenighta + + Цена 1 мегабайта трафика ночью до превышения порогового значения + + + + double pricenightb + + Цена 1 мегабайта трафика ночью после превышения порогового значения + + + + int threshold + + Величина порога в мегабайтах + + + + boolean singleprice + + Цена не зависит от времени стуок + + + + boolean nodiscount + + Цена не зависит от порога + + + + + + + + + + + + + Return Value + Возвращет true в случае успеха и false в случае неудачи + + + + See also + + stargazer.get_tariffs, + stargazer.get_tariff, + stargazer.add_tariff, + stargazer.del_tariff + + + + diff --git a/doc/xmlrpc-doc/API-user.xml b/doc/xmlrpc-doc/API-user.xml new file mode 100644 index 00000000..975b48ef --- /dev/null +++ b/doc/xmlrpc-doc/API-user.xml @@ -0,0 +1,1060 @@ + + + Управление пользователями + + + stargazer.get_user + + + stargazer.get_user + Получение информации о пользователе + + + + + stargazer.get_user + string cookie + string login + + + + + Description + Метод stargazer.get_user возвращает информацию о пользователе системы. + + + string cookie + + Авторизационный cookie. Для авторизации в системе используется метод stargazer.login + + + + string login + + Логин пользователя + + + + + Return Value + + Возвращает структуру: + + + bool result + + Результат операции. true - успешно, false - неудача (неправильный или устаревший cookie, неправильный логин пользователя). + + + + string login + + Логин пользователя + + + + string password + + Пароль пользователя + + + + double cash + + Количество денег на счету + + + + double freemb + + Количество свободных мегабайт на счету + + + + double credit + + Размер кредита + + + + int creditexpire + + Время истечения срока кредита в формате Unix-timestamp + + + + string tariff + + Текущий тариф пользователя. В случае, если заказано изменение тарифа в следующем месяце возвращаются оба тарифа, разделенные символом "/" (косая черта) + + + + string note + + Примечания + + + + string phone + + Контактный телефон + + + + string address + + Адрес пользователя + + + + string email + + E-Mail пользователя + + + + array of strings userdata + + Набор полей UserData + + + + string name + + Реальное имя пользователя + + + + string group + + Группа пользователя + + + + boolean status + + Статус пользователя. true - подключен, false - отключен + + + + boolean aonline + + Признак "Always Online" + + + + boolean down + + Пользователь отключен + + + + boolean passive + + Пользователь "заморожен" + + + + boolean disabledetailstat + + Для пользователя отключено ведение детальной статистики + + + + string currip + + Текущий IP-адрес пользователя в формате A.B.C.D + + + + string ips + + IP-адреса, назначенные пользователю, разделенные символом "," (запятая) + + + + double lastcash + + Последнее пополнение счета + + + + double lasttimecash + + Время последнего пополнения счета в формате Unix-timestamp + + + + int lastactivitytime + + Время последней активности пользователя в формате Unix-timestamp + + + + int pingtime + + Время последнего пинга пользователя в формате Unix-timestamp + + + + struct traff + + Информация о трафике + + + array of i8 mu + + Исходяий трафик за месяц (по направлениям) + + + + array of i8 md + + Входящий трафик за месяц (по направлениям) + + + + array of i8 su + + Исходяий трафик за сессию (по направлениям) + + + + array of i8 sd + + Входящий трафик за сессию (по направлениям) + + + + + + + + + + + See also + + stargazer.get_users, + stargazer.add_user, + stargazer.chg_user, + stargazer.del_user, + stargazer.add_cash, + stargazer.set_cash, + stargazer.change_tariff + stargazer.get_online_ips + + + + + + stargazer.get_users + + + stargazer.get_users + Получение информации о пользователях + + + + + stargazer.get_users + string cookie + + + + + Description + Метод stargazer.get_users возвращает информацию о пользователях системы. + + + string cookie + + Авторизационный cookie. Для авторизации в системе используется метод stargazer.login + + + + + Return Value + + Возвращает массив структур: + + + bool result + + Результат операции. true - успешно, false - неудача (неправильный или устаревший cookie, неправильный логин пользователя). + + + + string login + + Логин пользователя + + + + string password + + Пароль пользователя + + + + double cash + + Количество денег на счету + + + + double freemb + + Количество свободных мегабайт на счету + + + + double credit + + Размер кредита + + + + int creditexpire + + Время истечения срока кредита в формате Unix-timestamp + + + + string tariff + + Текущий тариф пользователя. В случае, если заказано изменение тарифа в следующем месяце возвращаются оба тарифа, разделенные символом "/" (косая черта) + + + + string note + + Примечания + + + + string phone + + Контактный телефон + + + + string address + + Адрес пользователя + + + + string email + + E-Mail пользователя + + + + array of strings userdata + + Набор полей UserData + + + + string name + + Реальное имя пользователя + + + + string group + + Группа пользователя + + + + boolean status + + Статус пользователя. true - подключен, false - отключен + + + + boolean aonline + + Признак "Always Online" + + + + boolean down + + Пользователь отключен + + + + boolean passive + + Пользователь "заморожен" + + + + boolean disabledetailstat + + Для пользователя отключено ведение детальной статистики + + + + string currip + + Текущий IP-адрес пользователя в формате A.B.C.D + + + + string ips + + IP-адреса, назначенные пользователю, разделенные символом "," (запятая) + + + + double lastcash + + Последнее пополнение счета + + + + double lasttimecash + + Время последнего пополнения счета в формате Unix-timestamp + + + + int lastactivitytime + + Время последней активности пользователя в формате Unix-timestamp + + + + int pingtime + + Время последнего пинга пользователя в формате Unix-timestamp + + + + struct traff + + Информация о трафике + + + array of i8 mu + + Исходяий трафик за месяц (по направлениям) + + + + array of i8 md + + Входящий трафик за месяц (по направлениям) + + + + array of i8 su + + Исходяий трафик за сессию (по направлениям) + + + + array of i8 sd + + Входящий трафик за сессию (по направлениям) + + + + + + + + + + + See also + + stargazer.get_user, + stargazer.add_user, + stargazer.chg_user, + stargazer.del_user, + stargazer.add_cash, + stargazer.set_cash, + stargazer.change_tariff + stargazer.get_online_ips + + + + + + stargazer.add_user + + + stargazer.add_user + Регистрация нового пользователя + + + + + stargazer.add_user + string cookie + string login + + + + + Description + Метод stargazer.add_user регистрирует в системе нового "пустого" пользователя. Для изменения регистрационной информации сразу после создания используется метод stargazer.chg_user + + + string cookie + + Авторизационный cookie. Для авторизации в системе используется метод stargazer.login + + + + string login + + Логин пользователя + + + + + Return Value + Возвращает true в случае успеха и false в случае неудачи + + + + See also + + stargazer.get_users, + stargazer.get_user, + stargazer.chg_user, + stargazer.del_user, + stargazer.add_cash, + stargazer.set_cash, + stargazer.change_tariff + stargazer.get_online_ips + + + + + + stargazer.chg_user + + + stargazer.chg_user + Изменение регистрационной информации и данных о трафике пользователя + + + + + stargazer.chg_user + string cookie + struct info + + + + + Description + Метод stargazer.chg_user сохраняет регистрационную информацию и данные о трафике пользователя. Допустимо частичное указание параметров в структуре info. В этом случае изменение затронет только указанные параметры. Дополнительные поля структуры (не входящие в описание) будут проигнорированы. + + + string cookie + + Авторизационный cookie. Для авторизации в системе используется метод stargazer.login + + + + struct info + + + Регистрационная информация и данные о трафике. + + + bool result + + Результат операции. true - успешно, false - неудача (неправильный или устаревший cookie, неправильный логин пользователя). + + + + string login + + Логин пользователя + + + + string password + + Пароль пользователя + + + + double freemb + + Количество свободных мегабайт на счету + + + + double credit + + Размер кредита + + + + int creditexpire + + Время истечения срока кредита в формате Unix-timestamp + + + + string note + + Примечания + + + + string phone + + Контактный телефон + + + + string address + + Адрес пользователя + + + + string email + + E-Mail пользователя + + + + array of strings userdata + + Набор полей UserData + + + + string name + + Реальное имя пользователя + + + + string group + + Группа пользователя + + + + boolean status + + Статус пользователя. true - подключен, false - отключен + + + + boolean aonline + + Признак "Always Online" + + + + boolean down + + Пользователь отключен + + + + boolean passive + + Пользователь "заморожен" + + + + boolean disabledetailstat + + Для пользователя отключено ведение детальной статистики + + + + string ips + + IP-адреса, назначенные пользователю, разделенные символом "," (запятая) + + + + struct traff + + Информация о трафике + + + array of i8 mu + + Исходяий трафик за месяц (по направлениям) + + + + array of i8 md + + Входящий трафик за месяц (по направлениям) + + + + + + + + + + + + Return Value + Возвращает true в случае успеха и false в случае неудачи + + + + See also + + stargazer.get_users, + stargazer.get_user, + stargazer.add_user, + stargazer.del_user, + stargazer.add_cash, + stargazer.set_cash, + stargazer.change_tariff + stargazer.get_online_ips + + + + + + stargazer.del_user + + + stargazer.del_user + Удаление пользователя + + + + + stargazer.del_user + string cookie + string login + + + + + Description + Метод stargazer.del_user удаляет из системы пользователя с указанным логином. + + + string cookie + + Авторизационный cookie. Для авторизации в системе используется метод stargazer.login + + + + string login + + Логин пользователя + + + + + Return Value + Возвращает true в случае успеха и false в случае неудачи + + + + See also + + stargazer.get_users, + stargazer.get_user, + stargazer.add_user, + stargazer.chg_user, + stargazer.add_cash, + stargazer.set_cash, + stargazer.change_tariff + stargazer.get_online_ips + + + + + + stargazer.add_cash + + + stargazer.add_cash + Добавление денег на счет пользователя + + + + + stargazer.add_cash + string cookie + string login + double amount + string comment + + + + + Description + Метод stargazer.add_cash позволяет добавить деньги на счет указанного пользователя. + + + string cookie + + Авторизационный cookie. Для авторизации в системе используется метод stargazer.login + + + + string login + + Логин пользователя + + + + double amount + + Добавляемая сумма + + + + string comment + + Коментарий + + + + + Return Value + Возвращает true в случае успеха и false в случае неудачи + + + + See also + + stargazer.get_users, + stargazer.get_user, + stargazer.add_user, + stargazer.chg_user, + stargazer.del_user, + stargazer.set_cash, + stargazer.change_tariff + stargazer.get_online_ips + + + + + + stargazer.set_cash + + + stargazer.set_cash + Установка состояния счета пользователя + + + + + stargazer.set_cash + string cookie + string login + double cash + string comment + + + + + Description + Метод stargazer.set_cash позволяет установить состояние счета пользователя. + + + string cookie + + Авторизационный cookie. Для авторизации в системе используется метод stargazer.login + + + + string login + + Логин пользователя + + + + double cash + + Устанавливаемая сумма + + + + string comment + + Коментарий + + + + + Return Value + Возвращает true в случае успеха и false в случае неудачи + + + + See also + + stargazer.get_users, + stargazer.get_user, + stargazer.add_user, + stargazer.chg_user, + stargazer.del_user, + stargazer.add_cash, + stargazer.change_tariff + stargazer.get_online_ips + + + + + + stargazer.change_tariff + + + stargazer.change_tariff + Изменение тарифного плана пользователя + + + + + stargazer.change_tariff + string cookie + string login + string tariff + boolean delayed + string comment + + + + + Description + Метод stargazer.change_tariff позволяет изменить тарифный план пользователя или запланировать его изменение на начало нового месяца. + + + string cookie + + Авторизационный cookie. Для авторизации в системе используется метод stargazer.login + + + + string login + + Логин пользователя + + + + string tariff + + Название нового тарифа + + + + boolean delayed + + Отложенное изменение тарифа (в начале следующего месяца) + + + + string comment + + Коментарий + + + + + Return Value + Возвращает true в случае успеха и false в случае неудачи + + + + See also + + stargazer.get_users, + stargazer.get_user, + stargazer.add_user, + stargazer.chg_user, + stargazer.del_user, + stargazer.add_cash, + stargazer.set_cash + stargazer.get_online_ips + + + + + + stargazer.get_online_ips + + + stargazer.get_online_ips + Получение списка IP-адресов online-пользователей + + + + + stargazer.get_online_ips + string cookie + array of strings subnets + + + + + Description + Метод stargazer.get_online_ips позволяет получить список IP-адресов авторизованных пользователей системы для указанного списка подсетей. + + + string cookie + + Авторизационный cookie. Для авторизации в системе используется метод stargazer.login + + + + array of strings subnets + + Список подсетей в CIDR-нотации + + + + + Return Value + Возвращает структуру: + + + bool result + + Результат операции. true - успешно, false - неудача (неправильный или устаревший cookie). + + + + array of strings ips + + Список IP-адресов авторизованных пользователей из этих подсетей + + + + + + + See also + + stargazer.get_users, + stargazer.get_user, + stargazer.add_user, + stargazer.chg_user, + stargazer.del_user, + stargazer.add_cash, + stargazer.set_cash + stargazer.change_tariff + + + + + diff --git a/doc/xmlrpc-doc/API.xml b/doc/xmlrpc-doc/API.xml new file mode 100644 index 00000000..173c65c9 --- /dev/null +++ b/doc/xmlrpc-doc/API.xml @@ -0,0 +1,33 @@ + + + + Описание XML-RPC API биллинговой системы Stargazer + i + Maxim + Mamontov + faust@stg.dp.ua + + 22.05.2009 + + + Предисловие + XML-RPC API предоставляется посредством плагина mod_conf_rpc.so. Для его использования необходимо установить библиотеку xmlrpc-c версии не ниже 1.16.0. + Все API-вызовы сгруппированы по 4 категориям: + + Системные (авторизация, информация о системе и т.д.) + Управление пользователями + Управление тарифами + Управление админами + + Имя каждого вызова начинается с префикса "stargazer." (точка в конце обязательна). Обычно состоит из глагола, обозначающего дейстиве, и существительного, обозначающего объект. Например: stargazer.get_user или stargazer.add_tariff. + Работа с системой имеет сессионный характер. При авторизации администратора в системе для него открывается сессия, идентифицируемая по сессионному cookie. Сессионный cookie — уникальная строка, длиной в 64 символа, передаваемая во все API-вызовы в качетсве одного из параметров. Время жизни сессионного cookie ограничено вызовом stargazer.logout и тайм-аутом. Тайм-аут отсчитывается с момента последнего вызова API и конфигурируется на стороне сервера. Количество одновременно открытых сессий ограничено только ресурсами системы. + Вызовы stargazer.login и stargazer.info не требуют сессионного cookie. + Вызовы не предусматривающие возвращение какой-либо информации (например, stargazer.add_tariff или stargazer.chg_admin) возвращают результат типа boolean. true в случае успеха и false в случае неудачи. Если вызов возвращает какую-нибуть информацию (например, stargazer.get_user) то в нее добавляется поле result типа boolean. Оно принимает значение true в случае успешного вызова и false в случае неудачи. Это поле является обязательным для всех возвращаемых структур. + + + + + + + diff --git a/doc/xmlrpc-doc/Makefile b/doc/xmlrpc-doc/Makefile new file mode 100644 index 00000000..652db396 --- /dev/null +++ b/doc/xmlrpc-doc/Makefile @@ -0,0 +1,5 @@ +all: + xsltproc --xinclude --xincludestyle /usr/share/sgml/docbook/xsl-ns-stylesheets/html/chunk.xsl API.xml + +clean: + rm -f *html diff --git a/doc/xmlrpc.php b/doc/xmlrpc.php new file mode 100644 index 00000000..6edce81f --- /dev/null +++ b/doc/xmlrpc.php @@ -0,0 +1,36 @@ + 'markup', 'encoding' => 'utf-8')); + $context = stream_context_create( + array('http' => array( + 'method' => 'POST', + 'header' => 'Content-Type: text/xml', + 'content' => $request))); + + $file = file_get_contents('http://localhost:8080/RPC2', false, $context); + $response = xmlrpc_decode($file); + + if (is_array($response) && xmlrpc_is_fault($response)) { + trigger_error("xmlrpc: {$response['faultString']} ({$response['faultCode']})"); + } + + return $response; +} + +// Usage samples + +print_r(__call('stargazer.info')); +$data = __call('stargazer.login', array('admin', '123456')); +if (isset($data['cookie'])) { + $cookie = $data['cookie']; + print_r($data); + print_r(__call('stargazer.get_tariffs', array($cookie))); + print_r(__call('stargazer.logout', array($data['cookie']))); +} + +?> + -- 2.44.2