Библиотека 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. Не обязательный параметр.

В качестве результата возвращается пара значений:

  1. XML::LibXML::Document (документ XML)
  2. 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 и т.д. Не обязательный параметр.

В качестве результата возвращается пара значений:

  1. xml.dom.minidom.Document (документ XML)
  2. 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, напечатать строчку отказа в авторизации.

Была ли эта информация полезной? Да | Нет
Личные инструменты