Class isp api::Action

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

Класс isp_api::Action

Данный класс является абстрактным

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

#include <action.h> 

Описание:

class isp_api::Action

Класс позволяет выполнять произвольные действия при вызове функции; имя функции передается в качестве параметра в конструктор класса; при этом в xml должны присутствовать метаданные с именем, соответствующим имени функции Для реализации действия написать собственный класс, наследуемый от данного, и реализовать в нем метод Execute().

Warning: Не надо вручную удалять объекты унаследованные от класса Action. Они будут удалены автоматически при выгрузке модуля, который их создал

//описание класса: 
class ActionMenu : public Action { 
public: 
    ActionMenu() : Action("menu", MinLevel(lvRegistered)) {} 
    virtual void Execute(Session& ses) const { 
        ses.xml.GetRoot().AppendChild(isp_api::GetMenu(ses.auth.level()).GetRoot()); 
    } 
}; 
//создание объекта класса 
MODULE_INIT(desktop, "") { 
    new ActionMenu(); 
} 

Потомки:


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

Action ( const string &name , const Action * action )

Конструктор класса


Action ( const string &name , AccessMask accessMask , const Action * action = nullptr )

Конструктор класса


string name () const

Возвращает имя действия (функции, к которой привязано данное действие)


const Action * parent () const

Возвращает указатель на родительское действие


AccessMask access () const

Возвращает маску уровня доступа


virtual string type () const

Возвращает тип реализуемой функции


virtual bool IsModify ( const Session &ses )

Изменит ли эта функция какие-нибудь данные


virtual bool IsInMenu ( int level )

Находится ли данное действие в основном меню


void Run ( Session & )

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


virtual bool Authorize ( const Authen & )

Проверка авторизации


virtual void Validate ( Session & )

Валидация действия


const EventList & events () const

Возвращает список зарегистрированных на данное действие событий


void SetInMenu ( int level )

Выставить признак IsInMenu.

virtual string FlowId ( const BaseConnection & )

Однопоточное действие

Приватные члены (кратко)

virtual bool CheckAccess ( const Authen & )

Метод, вызываемый при выполнении авторизации

Конструкторы

Action ( const string &name , const Action * action )

Конструктор класса

Аргументы:
[in] - name Имя функции, к которой привязано данное действие
[in] - action Указатель на родительское действие

Action ( const string &name , AccessMask accessMask , const Action * action = nullptr )

Конструктор класса

Аргументы:
[in] - name Имя функции, к которой привязано данное действие
[in] - accessMask Уровень доступа пользователя
See also: mgr_access::AccessMask
Аргументы:
[in] - action Указатель на родительское действие

Методы

virtual string FlowId ( const BaseConnection & )

Однопоточное действие

Метод FlowId возвращает идентификатор - панель обрабатывает запросы с заданным иеднтификатором только в один поток Данный метод вызывается до авторизации, таким образом мы гарантируем, что никакие ресурсы системы не будут заблокированы до вызова этого метода set_flow_flags позволяет задать поведение стандартной реализации FlowId

Аргументы:
flow_id Идентификатор потока. Если не задан или пустой - берется имя функции
flags Битовая маска флагов из SingleFlowType
Returned: Идентификатор потока. Если идентификатор пустой - действие выполняется без ограничений SingleFlowType

string name () const

Возвращает имя действия (функции, к которой привязано данное действие)

const Action * parent () const

Возвращает указатель на родительское действие

AccessMask access () const

Возвращает маску уровня доступа

virtual string type () const

Возвращает тип реализуемой функции

Может переопределяться в дочерних классах для сообщения типа реализуемой функции, например: "list", "form"

Returned: Должен возвращать тип функции в строковом виде (например: "list", "form")

virtual bool IsModify ( const Session &ses )

Изменит ли эта функция какие-нибудь данные

По умолчанию считается, что изменит. Если функция возвращает false при ее вызове игнорируется REFERER запроса

virtual bool IsInMenu ( int level )

Находится ли данное действие в основном меню

void Run ( Session & )

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

Выполняет действие, фактически вызывая метод Execute(); перед и после вызова Execute() происходит выполнение зарегистрированных на данное действие событий; метод Run() вызывается автоматически - в большинстве случаев нет необходимости в ручном вызове данного метода

virtual bool Authorize ( const Authen & )

Проверка авторизации

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

Returned: Возвращает true в случае успеха, иначе возвращает false

virtual void Validate ( Session & )

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

Валидация действия

const EventList &events () const

Возвращает список зарегистрированных на данное действие событий

void SetInMenu ( int level )

Выставить признак IsInMenu.

При первом обращении к методу IsInMenu заполняется автоматически

virtual bool CheckAccess ( const Authen & )

Данный метод является приватным

Метод, вызываемый при выполнении авторизации

Вызывается из стандартной реализации метода Authorize(), стандартная реализация данного метода возвращает true. Может быть переопределен в класе-потомке для реализации более сложной логики.

Аргументы:
[in] - Authen Информация о текущем пользователе
See also: isp_api::Authen
Returned: Должен возвращать true в случае успеха, в противном случае - false