Namespace isp api

Материал из ISPWiki
Перейти к: навигация, поиск

Пространство имён isp_api

Классы и функции для работы с действиями (Action) и событиями (Event)

Описание:

namespace isp_api

Классы и функции для регистрации проблем

Классы и функции для построения элементов интерфейса на основе объектов баз данных

Классы и функции для обработки входящих соединений

Классы и функции для авторизации пользователей

Содержание

Классы

struct isp_api::_RestartRequest
class isp_api::Action

Абстрактный класс, представляющий собой действие, выполняемое при вызове функции


class isp_api::ActionForm2Wizard

Класс для включения обычной формы в состав мастера


class isp_api::Authen

Класс для хранения информации о сессии


class isp_api::AuthMethod

Класс описывающий метод авторизации


class isp_api::BackupBalancer
class isp_api::BaseConnection

Базовый класс описывающий соединение


class isp_api::BaseHistory

Базовый абстракный класс для отображения истории изменений


class isp_api::CheckValue

Класс для валидации значений


class isp_api::Connection

Класс для описания физического соединения


class isp_api::ConstAction

Не модифицирующая функция


class isp_api::Converter

Функции для обработки отрибута .


class isp_api::CustomIdHistory

Класс для отображения истории изменений


class isp_api::CustomNameHistory

Класс для отображения истории изменений


class isp_api::DbFilterAction

Класс для работы с фильтрами


class isp_api::Event

Класс-обработчик события


class isp_api::EventEntry

Особый тип действия, которое никогда не может быть вызвано пользователем


class isp_api::ExtListAction

Расширение класса StdListAction - реализует функции включения/выключения элементов списка


class isp_api::ExtTableIdListAction

Расширение класса TableIdListAction реализующее включение/выключение записей


class isp_api::ExtTableNameListAction

Расширение класса TableNameListAction реализующее включение/выключение записей


class isp_api::FilterAction
class isp_api::Fix

Класс для отслеживания примененых заплаток


class isp_api::FormAction

Класс для работы с формами


class isp_api::GlobalEvent

Класс, представляющий собой глобальное событие


class isp_api::GroupAction

Класс для выполнения действия над группой элементов


class isp_api::HistoryAction

Класс для отображения истории изменений


class isp_api::ListAction

Класс для работы со списками


class isp_api::Messages

Класс для доступа к сообщениям


class isp_api::ModuleAction

Класс для работы с модулем


class isp_api::OutputFormat

Класс для описания формата вывода


class isp_api::Problem

Базовый класс для описания проблем, имеющих возможность решения


class isp_api::ProblemForm

Базовый класс для описания проблем, имеющих возможность решения c с вызовом формы


class isp_api::ProblemParams

Класс для быстрого доступа к параметрам проблемы по их именам


class isp_api::RegisterProblem

Класс для регистрации проблем


class isp_api::ReportAction

Класс для работы с отчетами


class isp_api::ReportSource

Интерфейс источника данных для отчетов


class isp_api::RightsCallback

Класс для работы с правами доступа


class isp_api::Session

Пользовательская сессия


class isp_api::SessionConnection
class isp_api::StdListAction

Расширение класса ListAction - реализует стандартные функции редактирования списка


class isp_api::TableIdListAction

Класс для работы с таблицами баз данных как со списками


class isp_api::TableListAction
class isp_api::TableNameListAction

Класс для работы с таблицами баз данных как со списками


class isp_api::Wizard

Класс для создания мастера


namespace isp_api::email_notify
namespace isp_api::gdpr
namespace isp_api::ipdb
namespace isp_api::rights
namespace isp_api::stat
namespace isp_api::task
namespace isp_api::totp
namespace isp_api::vault

Открытые типы (кратко)

typedef std::list<const Event *> EventList

Перечисления (кратко)

Перечисление SkipDepth { skipTotal , skipAction , skipOne , }

Функции, позволяющие пропускать часть дествий по обработке запроса

Перечисление SingleFlowType { sfAlways = -1, sfNone = 0, sfEdit = 1, }

Тип поведения для стандартной реализации метода Action::FlowId.

Перечисление GroupModeType { gmSameThread = 0, gmOnePerProc = 1, gmSameForInternal = 2, } Перечисление ProblemLevel { plWarning = 0, plError = 1, plCritical = 2, plMessage = 3, }

Уровень проблемы

Открытые члены (кратко)

void RestartRequest ( bool countIt = true )

Повторно выполнить запрос


bool IsModify ( const Session &ses )

Проверяет, происходит ли модификация данных


bool HasAction ( const string &name )

Проверяет наличие действия с заданным именем


string ExtAction ( const string &name )

Возвращает URL действия ExtAction.


const Action & GetAction ( const string &name )

Возвращает ссылку на действие по его имени


void DropAction ( const string &name )

Выгружает функцию


Xml InternalCall ( const BaseConnection &conn , const Authen &auth , const Action &action )

Выполняет заданное действие


Xml InternalCall ( const string &func , const string &params = "" )

Выполняет заданную функцию с правами lvInternal.


Xml InternalCall ( const string &func , const StringMap &params )

Выполняет заданную функцию с правами lvInternal.


Xml InternalCall ( const Session &ses , const string &func , const string &params = "" )

Выполняет заданную функцию


Xml InternalCall ( const BaseConnection &conn , const Authen &auth , const string &func , const string &params = "" )

Выполняет заданную функцию


int SetAuthenLifeTime ( int seconds = -1 )

Установить время жизни сессий


void RefreshDesktop ( const string &username = "" )

Обновить содержимое рабочего стола


void RefreshNotify ( const string &username = "" )

Обновить содержимое списка оповещений


bool IsOwner ( const Authen & , const string &username )

Проверить, является ли пользователь владельцем дргого


string LicValue ( const string &value )

Получить значение из лицензии по ключу


void SimpleCheck ( const string &licdata )

Начальная проверка лицензии


bool LicCheckLimit ( const string &name , int value )

Проверить ограничение


bool LicCheckValue ( const string &name , const string &value )

Проверить параметр


bool LicCheckUpdate ()

Доступны ли обновления для данного продукта


bool ForceDownload ()

Перекачать лицензию


bool LoadModule ( const string &name )

Загрузить библиотеку (.so или .dll файл)


const OutputFormat & GetFormat ( const string &name )

Получить формат вывода из списка зарегистрированных


bool HasProblem ( const string &type )

Поиск проблемы по типу


bool HasProblem ( const string &type , const string &id )

Поиск проблемы по типу и идентификатору


void GetProblems ( const string &types , StringSet &ids )

Получить список идентификаторов проблем по типам.


bool DeleteProblem ( const string &type , const string &id )

Удаление проблемы по типу и идентификатору


string GetProblemDescription ( const string &type , const string &id , const string &lang )

Получение строки с описанием проблемы


string GetProblemInfo ( const string &type , const string &id )

Получение дополнительной информации проблемы


ProblemParams GetProblemParams ( const string &type , const string &id )

GetProblemParams Получение параметров проблемы


string GetVerifiedEmail ( const string &user )

Получить подтвержденный электронный адрес пользователя


string GetNotifyLang ( const string &user , const string &default_lang )

Получить язык для почтовых уведомлений


string GetNotifyMgrUrl ( const Session &ses )

Получить URL панели для использования в почтовых уведомлениях


bool CanSendEmail ()

Проверка настройки почтового сервера


void SendEmail ( mgr_email::Message &message )

Отправка почтового сообщения


mgr_db::JobCache * GetDb ()

Получить указатель на базу данных


void SetDb ( mgr_db::JobCache * db )

Установить указатель на базу данных


mgr_xml::Xml GetMetadata ( const string &function )

Получить метаданные для указанной функции


string GetMetadataLevel ( const string &function )

Получить уровень доступа для функции


mgr_xml::Xml GetMessages ( const string &lang , const string &function )

Получить сообщения для указанной функции


void ClearMessagesCache ()

Сбросить кэш сообщений


mgr_xml::Xml GetMenu ( int level )

Получить метаданные для основного меню


void MergeXml ( mgr_xml::Xml &res , mgr_xml::Xml add )

Объединяет метаданные


void AddFeature ( const string &name )

Добавить новую возможность


bool HasFeature ( const string &name )

Проверить, зарегитсрированна ли возможность с указанным именем


string GetFeatureHash ()

Получить строку уникальную для текущего набора возможностей


string GetDefaultLang ()

Получить аббривиатуру языка по умолчанию


void SetDefaultLang ( const string &name )

Установить аббривиатуру языка по умолчанию

void FillupErrorXml ( int level , const mgr_err::Error &e , const string &lang , const string &action )

Заполняет xml с информацией об ошибке

void NotConfigured ( const string &desc , const string &func , const string &params = "" )

Запросить дополнительные данные

Авторизовать пользователя на основании различных параметров

Набор функций позволяющий получить экземпляр объекта Authen.

Аргументы:
[in] - conn Параметры для авторизации будут взяты из параметров соединения. Например, это может быть авторизация по COOKIE, IP адресу или SSL сертификату. Авторизация по этому параметру возвращает константный объек Authen, т.к. он может использоваться одновременно для обслуживания нескольких запросов.
[in] - username Имя пользователя
[in] - password Пароль пользователя
[in] - id Номер сессии
Returned: Заполненный объект Authen или exception если такой объект не доступен или не может быть создан

Authen Nobody ()

Бесправный пользователь с нулевым уровнем доступа lvNobody


Authen Authenticate ()

Администратор сервера с максимальным уровнем доступа lvInternal


Authen AuthenByName ( const BaseConnection &conn , const string &username )

Авторизация пользователя с указанным именем (пароль пользователя не проверяется)


Authen AuthenByPassword ( const BaseConnection &conn , const string &username , const string &password )

Авторизация пользователя по имени и паролю


const Authen AuthenById ( const string &id )

Авторизация по session id


bool UserExists ( const string &username )

Проверка имени пользователя. Возвращает true, если такой пользователь зарегистрирован в системе

Удалить сессии

Данная операция никак не повлияет на активные запросы.

  • Если задано имя пользователя - удалить сессии этого пользователя.
  • Если пользователь не задан - удалить все сессии.
  • LiveMeAlone - удалет все сессии пользователя, которому принадлежит объект authen, кроме самой [authen]

Функции формирования даннах и элементов интерфейса на основе имен объектов баз данных

void DbTuneForm ( Session &ses , std::shared_ptr<mgr_db::CustomTable> table )

Изменить форму согласно объекту table.


void DbGetProps ( Session &ses , std::shared_ptr<mgr_db::CustomTable> table )

Отобазить значения полей


void DbSetProps ( Session &ses , std::shared_ptr<mgr_db::CustomTable> table )

Устаноить значения полей

Сформировать список из запроса

В первом случае все днные запроса попадают в список. Во втором, проверяет уровень доступа пользователя к полям таблицы, и отдает в списке только те поля, которые пользователю разрешено читать

void List(Session &ses) const 
{ 
   DbList(ses, db->Query("select id, name, level, level as access  from mgruser")); 
} 

Сформировать select по запросу

Формирует содержимое <slist>. Второй варант формирует и сам тэг <slist>.

Аргументы:
[name] имя slist (атрибут name)
[query] запрос первое поле будет использовано в качестве ключевого, второе - как значение, а третье, если оно есть, в качестве значения атрбута depend
[def] если не пусто, то задает дополнительное значение (тэг <msg>), которое будет добавлено в slist

DbSelect(ses, "mgruser", db->Query("select id, name from mgruser order by level desc, name"), "null"); 

Returned: возвращает количество элементов, добавленных в slist (включая [def], если он был задан)

Установть источник данных для отчетов

See also: ReportSource

   mgr_db::ConnectionParams params; 
   //заполним параметры подключения 
   //... 
//Создадим экземпляр подключения к БД или кэша 
mgr_db::ConnectionPtr conn = mgr_db::Connect(params); 
mgr_db::Cache cache(params); 
 
//Инициализируем источник данных 
SetReportSource(conn); //с помощью подключения к БД или 
SetReportSource(cache); //с помощью кэша 

Проверить доступ к записи таблицы

Вызывает виртуальный метод CustomTable::CheckAccess передавая ему в качестве параметров уровень доступа пользователя и поле значение дополнительного поля "id". Если оно пустое, используется имя пользователя. Первая функция возвращает true, если у пользователя есть доступ к записи. Вторая - выбрасывает исключение.

See also: Authen

Набор функций для получения информации о панели

string GetMgrName ()

Получить имя панели


string GetFullMgrName ( string name = "" )

Получить полное имя панели


string GetCopyright ()

Получить строку copyright


void SetCopyright ( const string &value )

Установить строку copyright


string GetSessionCookieName ()

Получить версию панели


string GetLangCookieName ()

Получить имя COOKIE, в котором хранится выбранный язык и тема


string ManagerInfo ( char type )

Получить информацию о панели


string CoreInfo ( char type )

Получить информацию о COREmanager


string CompileTime ( const char * time )

Преобразует строку DATE " " TIME в версию

template <class Type>

Type *

RegisterComponent ( Type * ptr )

Зарегистрировать компонент модуля


void StartupProgress ()

Подтвеждение, что загрузка панели идет успешно

Получить список доступных языков

Если панель имеет собственные файлы сообщений, функция вернет список аббривиатур языков панели. Если нет, список языков, на которые переведен COREmanager. GetAllLangs возвращает список языков без учета etc/access.lang

Warning: Аббривиатуры берутся из имен файлов.

Перечисления (подробно)

SkipDepth

Функции, позволяющие пропускать часть дествий по обработке запроса

  • SkipAll После вызова данной функции прекращается обработка действий/событий текущей функции. Если это был внутренний вызов, полученная на этот момент XML возвращается в качестве результата, если нет из получившегося XML документа формируется результат в указанном формате для передачи клиенту. Форматы html, devel на этапе формирования результата могут вызвать повторное выполнение запроса с измененными параметрами
  • SkipOne Пропускает обработку одного элемента при групповой операции
  • Skip Пропускает укзанные действия
Аргументы:
depth Указывает какие именно дествия должны быть пропущены
Returned: Эти функции всегда генерируют исключение

  • skipTotal

    в xml документе содержится готовый результат, который должен быть передан клиенту

  • skipAction

    аналог вызова функции SkipAll (формирование результата может вызвать повторное выполнение запроса)

  • skipOne

    аналог вызова функции SkipOne.


SingleFlowType

Тип поведения для стандартной реализации метода Action::FlowId.

  • sfAlways= -1

    всегда выполнять функцию в один поток

  • sfNone= 0

    позволяет выполнять параллельно любое количество обращений к функции

  • sfEdit= 1

    выполнять функцию в отдельном потоке, только если нажата кнопка Ok.


GroupModeType

  • gmSameThread= 0

    выполнять операции над всеми элементами в одном потоке

  • gmOnePerProc= 1

    создавать отдельный поток (запрос) на каждый элемент

  • gmSameForInternal= 2

    для внутренних запросов аналогичен gmSameThread, для внешних - gmOnePerProc.


ProblemLevel

Уровень проблемы

  • plWarning= 0

    Предупреждение

  • plError= 1

    Ошибка

  • plCritical= 2

    Критическая ошибка

  • plMessage= 3

    Сообщение

Функции

void FillupErrorXml ( int level , const mgr_err::Error &e , const string &lang , const string &action )

Заполняет xml с информацией об ошибке

Аргументы:
[in] - level уровень доступа пользователя выполняющего запрос
[in] - e Объект класса mgr_err::Error
See also: mgr_err::Error
Аргументы:
[in] - lang Код языка ("ru", "en" и т.д.)
[in] - action Имя действия
Returned: FillupErrorXml частично локализует ошибку, используя сообщения указанной функции. GetErrorMessage дополняет локализацию общими сообщениями и возврящает локализованное опивание ошибки

void NotConfigured ( const string &desc , const string &func , const string &params = "" )

Запросить дополнительные данные

Может возникнуть ситуация, когда при формировании формы вы вдруг обнаруживаете, что список, из которого должен выбирать пользователь, пуст. Вместо того, чтобы показать ошибку, вы можете открыть другую форму, при помощи которой пользователь сможет добавить недостающие данные. После чего, его автоматически вернут на начальную форму. NotConfiguredAlternate - не возвращает пользователя в оригинальную форму NeedExtraConfirm - запросить дополнительные данные при групповой операции. В этом случае в функцию будут переданы дополнительные параметры:

  • elid - список значений elid. Их может быть более одного, если NeedExtraConfirm был вызван для нескольких элементов с одинаковыми параметрами. Вы можете добавить в дополнительный параметр, например: id=, чтобы избежать нежелательной группировки
  • plid - значение plid, использованное при групповой операции
  • action - имя групповой операции
  • listaction - имя функции сформировавшей список

// Например, у вас есть форма для заведения новых сотрудников в базе. 
// В методе Get вы можете проверить, а создан ли в базе хоть один отдел. 
// И, если нет, отправить пользователя создавать отдел, после чего, 
// автоматически вернуть его на форму создания сотрудника 
class Сотрудник : public FormAction { 
public: 
   .... 
   virtual void Get(Session &ses, const string &elid) const { 
       if (список отделов пуст) 
           NotConfigured("dep_empty", "dep.edit"); 
       ... 
   } 
}; 

' Эта логика работает только при запросе из браузера (out=html или out=devel) При запросах через API вы получите ошибку с типом: notconfigured.
Аргументы:
[desc] имя сообщения из секции wizard.auto, которое будет показано пользователю перед тем, как его перенаправят на указанную форму
[func] имя функции, на которую будет перенаправлен пользователь. Это обязательно должны быть форма. И она должна быть доступна пользователю
[params] Дополнительные параметры, которые необходимо передать функции [func]

Authen Nobody ()

Бесправный пользователь с нулевым уровнем доступа lvNobody

Authen Authenticate ()

Администратор сервера с максимальным уровнем доступа lvInternal

Authen AuthenByName ( const BaseConnection &conn , const string &username )

Авторизация пользователя с указанным именем (пароль пользователя не проверяется)

Authen AuthenByPassword ( const BaseConnection &conn , const string &username , const string &password )

Авторизация пользователя по имени и паролю

const Authen AuthenById ( const string &id )

Авторизация по session id

bool UserExists ( const string &username )

Проверка имени пользователя. Возвращает true, если такой пользователь зарегистрирован в системе

void DbTuneForm ( Session &ses , std::shared_ptr<mgr_db::CustomTable> table )

Изменить форму согласно объекту table.

Проверяет уровень доступа пользователя к полям формы, имена которых совпадают с полями таблицы table.

  • Если у пользователя нет прав ни на чтение, ни на запить поля - это поле будет вырезано из формы
  • Если у пользователя есть права только на чтение поля - полю будет выставлен атрибут readonly Так же для полей формы будет выставлен атрибут maxlength в соответствии с свойствани полей таблицы.

void DbGetProps ( Session &ses , std::shared_ptr<mgr_db::CustomTable> table )

Отобазить значения полей

Проверяет уровень доступа пользователя к полям таблицы, и добавляет в ses только те поля, которые пользователю разрешено читать

void Get(Session& ses, const string& elid) const{ 
    auto ip_table = db->Get<IpTable>(); 
    DbGetProps(ses, ip_table); 
} 

void DbSetProps ( Session &ses , std::shared_ptr<mgr_db::CustomTable> table )

Устаноить значения полей

Проверяет уровень доступа пользователя к полям таблицы, и выставляет в курсоре table только те поля, которые пользователю разрешено менять

void Set(Session &ses, const string& elid) const{ 
    auto ip_table = db->Get<IpTable>(); 
    DbSetProps(ses, ip_table); 
} 

string GetMgrName ()

Получить имя панели

string GetFullMgrName ( string name = "" )

Получить полное имя панели

string GetCopyright ()

Получить строку copyright

void SetCopyright ( const string &value )

Установить строку copyright

string GetSessionCookieName ()

Получить версию панели

Получить имя COOKIE, в котором хранится номер сессии

string GetLangCookieName ()

Получить имя COOKIE, в котором хранится выбранный язык и тема

string ManagerInfo ( char type )

Получить информацию о панели

string CoreInfo ( char type )

Получить информацию о COREmanager

string CompileTime ( const char * time )

Преобразует строку DATE " " TIME в версию

Type * RegisterComponent ( Type * ptr )

Данная функция/метод является inline функцией

Зарегистрировать компонент модуля

Компонент - любой объект, который создает библиотека, и, следовательно, который необходимо уничтожить, когда библиотека выгружается. Компоненты уничтожаются в обратном порядке, т.е. последний созданый будет уничтожен первым. Все модули, на самом деле, тоже реализованы, как компоненты. Большая часть классов isp_api самостоятельно регистрируются как компонент. Поэтому нет необходимости при создании Action или Event регистрировать их вручную.

Аргументы:
[data] shared_ptr избавляет нам от необходимости думать о том, как удалить компонент, предоставляя полную свободу выбора разработчику
[ptr] если для удаления подойдет обычный delete, то можно использовать шаблон
See also: Action
See also: Event

void StartupProgress ()

Подтвеждение, что загрузка панели идет успешно

Данную функцию необходимо вызывать не реже чам раз в (STARTUP_FRACTION / 10) секунд, в случае, если в момент запуска панели необходимо выполнить долгую операцию (которая может длится дольше) Данный вызов сообщает клиентам, ожидающим запуска панели, что она не зависла

See also: RegisterComponent

void RestartRequest ( bool countIt = true )

Повторно выполнить запрос

Функция выбрасывает исключение _RestartRequest, сигнализирующее о том, что выполнение запроса необходимо повторить. Система позволяет перезапускать запрос трижды. Параметр [countIt] может быть использован, чтобы обойти ограничение на количество попыток выполнить запрос.

Аргументы:
[countIt] если false, счетчик перезапусков увеличен не будет

bool IsModify ( const Session &ses )

Проверяет, происходит ли модификация данных

Аргументы:
[in] - ses Сессия для проверки
See also: isp_api::Session
Returned: Возвращает true, если имеет место модификация данных, в противном случае - false

bool HasAction ( const string &name )

Проверяет наличие действия с заданным именем

Аргументы:
[in] - name Имя действия
Returned: Возвращает true, если действие с заданным именем существует, в противном случае - false

string ExtAction ( const string &name )

Возвращает URL действия ExtAction.

See also: isp_api::ExtAction
Аргументы:
[in] - name Имя действия
Returned: Возвращает URL, если действие с заданным именем существует, в противном случае - пустую строку

const Action &GetAction ( const string &name )

Возвращает ссылку на действие по его имени

Аргументы:
[in] - name Имя действия
Returned: Возвращает ссылку на действие, если оно существует, в противном случае генерирует исключение mgr_err::Missed
See also: mgr_err::Missed

void DropAction ( const string &name )

Выгружает функцию

Аргументы:
[in] - name Имя действия

Xml InternalCall ( const BaseConnection &conn , const Authen &auth , const Action &action )

Выполняет заданное действие

Аргументы:
[in] - conn Текущее соединение
[in] - auth Информация о пользователе
[in] - action Действие, которое необходимо выполнить
Returned: Возвращает xml-ответ сервера
See also: mgr_xml::Xml

Xml InternalCall ( const string &func , const string &params = "" )

Выполняет заданную функцию с правами lvInternal.

Аргументы:
[in] - func Имя функции
[in] - params Список параметров
Returned: Возвращает xml-ответ сервера
See also: mgr_xml::Xml

Xml InternalCall ( const string &func , const StringMap &params )

Выполняет заданную функцию с правами lvInternal.

Аргументы:
[in] - func Имя функции
[in] - params Список параметров
Returned: Возвращает xml-ответ сервера
See also: mgr_xml::Xml

Xml InternalCall ( const Session &ses , const string &func , const string &params = "" )

Выполняет заданную функцию

Аргументы:
[in] - ses Сессия
[in] - func Имя функции
[in] - params Список параметров
Returned: Возвращает xml-ответ сервера
See also: mgr_xml::Xml

Xml InternalCall ( const BaseConnection &conn , const Authen &auth , const string &func , const string &params = "" )

Выполняет заданную функцию

Аргументы:
[in] - conn Текущее соединение
[in] - auth Информация о пользователе
[in] - func Имя функции
[in] - params Список параметров
Returned: Возвращает xml-ответ сервера
See also: mgr_xml::Xml

int SetAuthenLifeTime ( int seconds = -1 )

Установить время жизни сессий

Если в течении устновленного времени в рамках сессии небыло ни одного запроса такая сессия удаляется. По умолчанию, время жизни сессий равно одному часу.

Аргументы:
[seconds] Новое время жизни сессии в секундах. Если <= 0, текущее значение не меняется. Функция возвращает текущее время жизни сессий
Returned: Старое значение

void RefreshDesktop ( const string &username = "" )

Обновить содержимое рабочего стола

Иногда изменения могут повлиять на отображение списков и меню для пользователя Данная операция устанавливает флаг, информирующий о онеобходимости обновить содержимое рабочего стола пользователя. Если имя пользователя не задано - обновится содержимое рабочих столов всех пользователей.

void RefreshNotify ( const string &username = "" )

Обновить содержимое списка оповещений

Аналогично RefreshDesktop, но для списка оповещений

See also: RefreshDesktop

bool IsOwner ( const Authen & , const string &username )

Проверить, является ли пользователь владельцем дргого

string LicValue ( const string &value )

Получить значение из лицензии по ключу

void SimpleCheck ( const string &licdata )

Начальная проверка лицензии

bool LicCheckLimit ( const string &name , int value )

Проверить ограничение

bool LicCheckValue ( const string &name , const string &value )

Проверить параметр

bool LicCheckUpdate ()

Доступны ли обновления для данного продукта

bool ForceDownload ()

Перекачать лицензию

bool LoadModule ( const string &name )

Загрузить библиотеку (.so или .dll файл)

Загрузить файл и выполнить инициализацию всех его модулей В случае возникновение ошибки (exception) все модули и компоненты, которые успели проинициализироваться будут выгружены затем будет выгружен из памяти и сам файл

Аргументы:
[name] имя файла без расширения В UNIX системах файл будут искать в каталоге lib В Windows файл будут искать в текущем каталоге
Returned: true, если модуль был успешно загружен
See also: MODULE_INIT
See also: RegisterComponent

const OutputFormat &GetFormat ( const string &name )

Получить формат вывода из списка зарегистрированных

bool HasProblem ( const string &type )

Поиск проблемы по типу

Аргументы:
[in] - type Наименование типа проблемы
Returned: В случае, если проблема с указанным типом существует и не решена, возвращает true; иначе - false

bool HasProblem ( const string &type , const string &id )

Поиск проблемы по типу и идентификатору

Аргументы:
[in] - type Наименование типа проблемы
[in] - id Идентификатор проблемы
Returned: В случае, если проблема с указанным типом и идентификатором существует и не решена, возвращает true; иначе - false

void GetProblems ( const string &types , StringSet &ids )

Получить список идентификаторов проблем по типам.

Аргументы:
[in] - type Наименования тип проблем перечисленных через ","
[out] - ids Контейнер для получения идентификаторов проблем

bool DeleteProblem ( const string &type , const string &id )

Удаление проблемы по типу и идентификатору

Аргументы:
[in] - type Наименование типа проблемы
[in] - id Идентификатор проблемы
Returned: В случае, если проблема с указанным типом и идентификатором удалена, возвращает true; иначе - false

string GetProblemDescription ( const string &type , const string &id , const string &lang )

Получение строки с описанием проблемы

Изначально строка описывается сообщением в секции <messages name="problem_тип">, где тип - наименование типа проблемы. Сообщение должно иметь имя msg_desc. Текст сообщения может содержать параметры (в виде - имя, где имя - имя параметра), данная функция автоматически заменяет параметры на их значения. Если параметр ссылается на другое сообщение, то он будет заменен на текст этого сообщения.

Аргументы:
[in] - type Наименование типа проблемы
[in] - id Идентификатор проблемы
[in] - lang Язык описания проблемы
Returned: Возвращает строку с описанием проблемы
Пример описания сообщений:

<messages name="problem_ipdb_ipallocation"> 
  <msg name="title">Выделение IP-адреса</msg> 
  <msg name="msg_desc">Ошибка при выделении IP-адреса. Причина: __reason__</msg> 
  <msg name="remotenofree">в IPmanager нет свободных IP-адресов</msg> 
  <msg name="remotealloc">во время выделения IP-адреса в IPmanager возникла ошибка - "__msg__"</msg> 
  <msg name="remoteipempty">IPmanager вернул пустой адрес</msg> 
</messages> 

Пример использования функции:

isp_api::RegisterProblem("ipdb_ipallocation", "127.0.0.1") 
        .add_message("reason", "remotealloc") 
        .add_param("msg", "bad_ip"); 
 
string s = GetProblemDescription("ipdb_ipallocation", "127.0.0.1", ses.conn.lang()); 
 
//  строка s содержит следующий текст: 
//  Ошибка при выделении IP-адреса. Причина: во время выделения IP-адреса в IPmanager возникла ошибка - "bad_ip" 

string GetProblemInfo ( const string &type , const string &id )

Получение дополнительной информации проблемы

Аргументы:
[in] - type Наименование типа проблемы
[in] - id Идентификатор проблемы
Returned: Возвращает строку с дополнительной информацией

ProblemParams GetProblemParams ( const string &type , const string &id )

GetProblemParams Получение параметров проблемы

Аргументы:
[in] - type Наименование типа проблемы
[in] - id
Returned: Возвращает экземпляр для быстрого доступа к параметрам проблемы

string GetVerifiedEmail ( const string &user )

Получить подтвержденный электронный адрес пользователя

Аргументы:
[in] - user Имя пользователя
Returned: Возвращает адрес почты для уведомлений. Если почтовый адрес не указан или не подтвержден, возвращается пустая строка

string GetNotifyLang ( const string &user , const string &default_lang )

Получить язык для почтовых уведомлений

Аргументы:
[in] - user Имя пользователя
[in] - default_lang Язык по умолчанию
Returned: Возвращает язык для почтовых уведомлений. Если язык не задан, то возвращается значение, заданное параметром default_lang

string GetNotifyMgrUrl ( const Session &ses )

Получить URL панели для использования в почтовых уведомлениях

Аргументы:
[in] - user Сессия
Returned: Возвращает "безопасный" URL панели в зависимости от хедеров и настроек почтовых уведомлений

bool CanSendEmail ()

Проверка настройки почтового сервера

Проверяет настроен ли внешний почтовый сервер

Returned: Возвращает true, если используетcя внешний почтовый сервер, false - если сервер ISPsystem или не настроен

void SendEmail ( mgr_email::Message &message )

Отправка почтового сообщения

Осуществляет отправку почтового сообщения только в том случае, если настроен внешний почтовый сервер. Если используется сервер ISPsystem письмо отправлено не будет

Аргументы:
[in] - message Контейнер с данными письма

mgr_db::JobCache * GetDb ()

Получить указатель на базу данных

Данная база будет использована для хранения внутренних данных панели. Таких как различные настройки пользователей, вторияных серверов имен, информации об уведомлениях ... По умолчанию используется БД sqlite с именем etc/<manager>_core.db

Warning: Первый вызов GetDb должен быть сделан в однопоточном режиме
See also: SetDb

void SetDb ( mgr_db::JobCache * db )

Установить указатель на базу данных

Выставляет значение возвращаемое функцией GetDb. Данная функция должна быть вызвана до первого вызова GetDb. Вызовы SetDb после вызова GetDb приведут к критической ошибке

See also: GetDb

mgr_xml::Xml GetMetadata ( const string &function )

Получить метаданные для указанной функции

При первом вызове просматривает все xml файлы панели и сохраняет метаданные по отдельным файлам. Вслучае изменения метаданных вам необходимо перезапустить панель. При загрузке метаданные проходят обработку. Их узлы могут быть переставлены или удалены в соответствии со значениями определенных аттрибутов.

See also: AddFeature

string GetMetadataLevel ( const string &function )

Получить уровень доступа для функции

Аналогично функции GetMetadata. Возвращает значение атрибута узла metadata. При этом не производится сотрировка и удаление "лишних" узлов

See also: GetMetadata

mgr_xml::Xml GetMessages ( const string &lang , const string &function )

Получить сообщения для указанной функции

При первом вызове просматривает все xml файлы панели и сохраняет сообщения для заданного языка по отдельным файлам. Вслучае изменения сообщений вам необходимо перезапустить панель.

void ClearMessagesCache ()

Сбросить кэш сообщений

Кэш сообщений строится каждый раз при первом обращении и сбрасывается при перезапуске панели. Данная функция позволяет перестроить кэш без перезапуска

mgr_xml::Xml GetMenu ( int level )

Получить метаданные для основного меню

При первом вызове просматривает все xml файлы панели и сохраняет все описания основного меню в один файл. Затем, на основании этого файла строит меню для заданного уровня пользователя. Вслучае изменения метаданных вам необходимо перезапустить панель.

Аргументы:
[level] уровень пользователя

void MergeXml ( mgr_xml::Xml &res , mgr_xml::Xml add )

Объединяет метаданные

Добавляет метаданные из XML документа [add] к метаданным XML документа [res]. При этом объединяет все узлы, имеющие одинаковые ключевые аттрибуты. При объединении аттрибуты XML документа [add] заменяют соответствующие аттрибуты из докумета [res].

void AddFeature ( const string &name )

Добавить новую возможность

При загруке, узлы имеющие атрибут if, значению которого не соответствует ни одной зарегистрированной возможности, будут удалены

bool HasFeature ( const string &name )

Проверить, зарегитсрированна ли возможность с указанным именем

string GetFeatureHash ()

Получить строку уникальную для текущего набора возможностей

string GetDefaultLang ()

Получить аббривиатуру языка по умолчанию

Это значение используется, когда аббривиатура языка не задана явно. Например, при первом входе в систему или при обращении через API, когда в запросе не передан параметр lang. По умолчанию используется английский или первый язык из списка доступных. Может быть измененино через параметр конфига DefaultLang.

See also: GetLangs

void SetDefaultLang ( const string &name )

Установить аббривиатуру языка по умолчанию

Типы

typedef std::list<const Event *> EventList