Библиотека Mgr
Материал из ISPWiki
Содержание |
Введение
Библиотека создана для работы с нашими продуктами из пользовательских скриптов.
Использование в Perl
Начните программу со строк:
BEGIN { push @INC, '/usr/local/ispmgr/lib/perl' }
use Mgr;
Теперь можно использовать функции библиотеки.
Запросы к панели управления (функция query)
Чтобы сделать запрос к панели управления, используйте функцию query:
($xmldoc, $xmlroot) = Mgr::query (имя_функции, список_параметров [, тип_вывода]);
Где:
- имя_функции
- Имя функции панели управления, которая должна быть вызвана.
- список_параметров
- Параметры, которые необходимо передать панели управления. Это список списков. Например: [['elid', 'root'], ['su', 'admin']]
- тип_вывода
- В каком виде получить XML. Возможные значения: xml (по умолчанию), devel. Не обязательный параметр.
В качестве результата возвращается пара значений:
- XML::LibXML::Document (документ XML)
- XML::LibXML::Node (корневой элемент XML)
Примеры использования
($xmldoc, $xmlroot) = Mgr::query ('user', []);
Получить список пользователей.
($xmldoc, $xmlroot) = Mgr::query ('user.edit', [ ['elid', 'someuser'] ]);
Получить данные пользователя someuser.
($xmldoc, $xmlroot) = Mgr::query ('user.edit', [ ['elid', 'someuser'] ], 'devel');
Получить данные пользователя someuser в формате 'devel'.
Получение данных текущего пользователя (функция session)
Для получения данных текущего пользователя (сделавшего запрос к вашему расширению), используется функция session.
$ses = Mgr::session (имя_cookie, объект_CGI);
Где:
- имя_cookie
- Название cookie панели управления. Например, 'ispmgr4'.
- объект_CGI
- Объект стандартного модуля Perl CGI: $Q = new CGI.
Функция возвращает либо undef (пользователь не найден), либо ссылку на хэш с ключами:
- skin
- Текущая тема оформления.
- lang
- Текущий выбранный язык.
- sesid
- Идентификатор сессии пользователя.
- username
- Имя пользователя.
- ip
- IP пользователя.
В случае, если запрос был сделан через mgrctl, выставляется только username.
Примеры использования
my $Q = new CGI;
my $ses = Mgr::session ('ispmgr4', $Q);
if (!defined $ses || $ses->{username} ne 'root') {
print "Authentication failed!\n";
exit;
}
Если пользователь не авторизован, или пользователь не root, напечатать строчку отказа в авторизации.
Использование в Python
Начните программу со строк:
from sys import path
path.append('/usr/local/ispmgr/lib/python')
import mgr
Теперь можно использовать функции модуля mgr.
Запросы к панели управления (функция query)
Чтобы сделать запрос к панели управления, используйте функцию query:
xmldoc, xmlroot = mgr.query(имя_функции, список_параметров [, тип_вывода] [, mgrname]);
Где:
- имя_функции
- Имя функции панели управления, которая должна быть вызвана.
- список_параметров
- Параметры, которые необходимо передать панели управления. Это список списков. Например: [['elid', 'root'], ['su', 'admin']]
- тип_вывода
- В каком виде получить XML. Возможные значения: xml (по умолчанию), devel. Не обязательный параметр.
- mgrname
- К какой панели управление происходит обращение. Возможные значения: ispmgr (по умолчанию), billmgr и т.д. Не обязательный параметр.
В качестве результата возвращается пара значений:
- xml.dom.minidom.Document (документ XML)
- xml.dom.minidom.Element (корневой элемент XML)
Примеры использования
xmldoc, xmlroot = mgr.query('user', [])
Получить список пользователей.
xmldoc, xmlroot = mgr.query('user.edit', [ ['elid', 'someuser'] ])
Получить данные пользователя someuser.
xmldoc, xmlroot = mgr.query('user.edit', [ ['elid', 'someuser'] ], out='devel')
Получить данные пользователя someuser в формате 'devel'.
Получение данных текущего пользователя (функция session)
Для получения данных текущего пользователя (сделавшего запрос к вашему расширению) используется функция session.
ses = mgr.session(имя_cookie, [, объект_CGI] [, mgrname]);
Где:
- имя_cookie
- Название cookie панели управления. Например, 'ispmgr4'.
- объект_CGI
- Объект, который будет использован для получения cookie. По умолчанию используется переменная окружения HTTP_COOKIE. Не обязательный параметр.
- mgrname
- К какой панели управление происходит обращение. Возможные значения: ispmgr (по умолчанию), billmgr и т.д. Не обязательный параметр.
Функция возвращает либо None (пользователь не найден), либо ссылку на хэш с ключами:
- skin
- Текущая тема оформления.
- lang
- Текущий выбранный язык.
- sesid
- Идентификатор сессии пользователя.
- username
- Имя пользователя.
- ip
- IP пользователя.
- level
- Уровень доступа пользователя.
В случае, если запрос был сделан через mgrctl, выставляется только username.
Примеры использования
ses = mgr.session('ispmgr4')
if ses is None or ses['username'] != 'root':
print "Authentication failed!\n"
Если пользователь не авторизован, или пользователь не root, напечатать строчку отказа в авторизации.
