Namespace mgr access

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

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

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

Описание:

namespace mgr_access

Права доступа используются для ограничения доступа к функциям (action), таким как формы, списки, кнопки.

Проверка прав на action для конкретного пользователя проверяется функцией has(int level), в которую передается level пользователя хранящийся в session.auth

See also: isp_api::Authen
В заголовочном файле auth.h содержится перечисление уровней пользователей, доступных по умолчанию, например lvAdmin, lvUser.

Следующий пример показывает, как разрешить action только для пользователей (lvUser)

class ActionUserOnly : public Action { 
public: 
  ActionUserOnly() : Action("useronly", EqLevel(lvUser)) {} 
}; 

Следующий пример показывает, как разрешить action для всех, у кого уровень пользователя и выше

class ActionAboveUser : public Action { 
public: 
    ActionAboveUser() : Action("aboveuser", MinLevel(lvUser)) {} 
}; 

Классы

class mgr_access::AccessMask
class mgr_access::EqLevel

Класс для создания масок, разрешающих доступ всем у кого уровень допуска в точности равен заданному


class mgr_access::MaxLevel

Класс для создания масок, разрешающих доступ всем у кого уровень допуска ниже заданного


class mgr_access::MinLevel

Класс для создания масок, разрешающих доступ всем у кого уровень допуска не ниже заданного

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

Перечисление @0 { lvNobody = 0, lvPublic = 1, lvRegistered = 2, lvUser = 16, lvReseller = 24, lvAdmin = 29, lvSuper = 30, lvInternal = 31, }

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

void AddAccessName ( const string &name , AccessMask level )

Присваивает заданному уровню доступа символьное имя


AccessMask GetAccessByName ( const string &name )

Возвращает уровень доступа, соответствующий имени

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

@0

  • lvNobody= 0

    неавторизованный пользователь

  • lvPublic= 1

    любой пользователь прошедший регистрацию. В отличие от lvRegistered, доступ к таким функциям не может быть ограничен через модуль прав. Такие функции доступны, даже если в политиках пользователя стоит "Все запрещено".

  • lvRegistered= 2

    любой пользователь прошедший регистрацию

  • lvUser= 16

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

  • lvReseller= 24

    рекомендованый уровень доступа для реселлера

  • lvAdmin= 29

    администратор панели

  • lvSuper= 30

    администратор сервера

  • lvInternal= 31

    внутренний запрос (уровень доступа панели к себе самой)

Функции

void AddAccessName ( const string &name , AccessMask level )

Присваивает заданному уровню доступа символьное имя

Существует ряд предустановленных имен:

  • nobody доступ для неавторизованных пользователей
  • super доступ для пользователей lvSuper
  • admin доступ для пользователей lvAdmin
  • reseller доступ для пользователей lvReseller
  • user доступ для пользователей lvUser
  • all доступ для всех (в том числе неавторизованных пользователей)
  • registered доступ для всех авторизованных пользователей
  • public доступ для всех авторизованных пользователей (см. lvPublic)
Аргументы:
[in] - name Имя уровня доступа
[in] - level Уровень доступа

AccessMask GetAccessByName ( const string &name )

Возвращает уровень доступа, соответствующий имени

Кроме имен заданных через AddAccessName могут быть использованны:

  • числа - указывающие конкретный уровень доступа
  • символ '+' после имени или числа указывает на доступ для всех пользователей указанного уровня или с уровнем выше указанного. Не применимо для имен, описывающих набор уровней (такие как all, registered, public)
  • символ '-' после имени или числа указывает на доступ для всех пользователей указанного уровня или с уровнем ниже указанного. Не применимо для имен, описывающих набор уровней (такие как all, registered, public)
  • несколько уровней (в том числе с симоволоми - или +) могут быть перечисленны через запятую. В этом члучае их действие складывается. Например, запись "admin,super+" аналогична записи "admin+"
Аргументы:
[in] - name Имя уровня доступа
Returned: Возвращает уровень доступа, соответствующий заданному имени
See also: mgr_access::AccessMask

Данные

const AccessMask AccessNone

Все нули или никаких прав

const AccessMask AccessAll

Все единицы или полный доступ

const AccessMask AccessAdmin

Доступ только для администратора