ModuleRbac_EntityRole

Package application.modules.rbac
Inheritance class ModuleRbac_EntityRole » EntityORM » Entity » LsObject
Since 2.0
Source Code /application/classes/modules/rbac/entity/Role.entity.class.php
Сущность роли, которая назначается пользователям

Protected Properties

Hide inherited properties

PropertyTypeDescriptionDefined By
_aBehaviors Список поведений в виде готовых объектов, формируется автоматически LsObject
_aData array Данные сущности, на этот массив мапятся методы set* и get* Entity
_aManyToManyRelations array Объекты связей many_to_many EntityORM
_aOriginalData array Массив исходных данных сущности EntityORM
aBehaviors array Список поведений LsObject
aFields array Список полей таблицы сущности EntityORM
aRelations array Связи ORM ModuleRbac_EntityRole
aRelationsData array Список данных связей EntityORM
aValidateErrors array Список ошибок валидации в разрезе полей, например Entity
aValidateRules array Определяем правила валидации ModuleRbac_EntityRole
bIsNew bool Флаг новая или нет сущность EntityORM
sPrimaryKey null|string Имя поля с первичным ключом в БД Entity
sValidateScenario string Сценарий валиадции полей Entity

Public Methods

Hide inherited methods

MethodDescriptionDefined By
Add() Добавление сущности в БД EntityORM
AddBehaviorHook() Добавляет хук поведения LsObject
AttachBehavior() Присоединяет поведение к объекту LsObject
Delete() Удаление сущности из БД EntityORM
DetachBehavior() Отсоединяет поведение от объекта LsObject
GetBehavior() Возвращает объект поведения по его имени LsObject
GetBehaviors() Возвращает все объекты поведения LsObject
Init() Метод инициализации сущности, вызывается при её создании Entity
Reload() Обновляет данные сущности из БД EntityORM
RemoveBehaviorHook() Удаляет хук поведения LsObject
RunBehaviorHook() Запускает хук поведения на выполнение LsObject
Save() Сохранение сущности в БД (если новая то создается) EntityORM
ShowColumns() Возвращает список полей сущности EntityORM
ShowPrimaryIndex() Возвращает primary индекс сущности EntityORM
Update() Обновление сущности в БД EntityORM
ValidateCheckCode() Валидация кода ModuleRbac_EntityRole
ValidateParentRole() Проверка родительской роли ModuleRbac_EntityRole
_SetIsNew() Установка флага "новая" EntityORM
_Validate() Выполняет валидацию данных сущности Entity
__call() Ставим хук на вызов неизвестного метода и считаем что хотели вызвать метод какого либо модуля EntityORM
__clone() При клонировании сбрасываем поведения LsObject
__construct() Установка связей EntityORM
__get() Используется для доступа к связанным данным типа MANY_TO_MANY EntityORM
_addValidateError() Добавляет для поля ошибку в список ошибок Entity
_clearValidateErrors() Очищает список всех ошибок или для конкретного поля Entity
_createValidators() Создает и возвращает список валидаторов для сущности Entity
_getData() Получает массив данных сущности Entity
_getDataArray() Рекурсивное преобразование объекта и вложенных объектов в массив Entity
_getDataFields() Возвращает данные для списка полей сущности EntityORM
_getDataOne() Возвращает данные по конкретному полю Entity
_getField() Возвращает поле в нужном формате EntityORM
_getFields() Возвращает список полей сущности EntityORM
_getManyToManyRelationEntity() Возвращает сущность связи при many to many EntityORM
_getOriginalData() Возвращает все данные сущности EntityORM
_getOriginalDataOne() Возвращает "оригинальные" данные по конкретному полю EntityORM
_getPrimaryKey() Получение primary key из схемы таблицы EntityORM
_getPrimaryKeyValue() Получение значения primary key EntityORM
_getRelations() Возвращает список связей EntityORM
_getRelationsData() Возвращает список данный связей EntityORM
_getTreeParentKey() Переопределяем имя поля с родителем ModuleRbac_EntityRole
_getTreeParentKeyValue() Получение значения родителя. Используется в связи RELATION_TYPE_TREE EntityORM
_getValidateError() Возвращает первую ошибку для поля или среди всех полей Entity
_getValidateErrors() Возвращает список ошибок для всех полей или одного поля Entity
_getValidateRules() Возвращает список правил для валидации Entity
_getValidateScenario() Возвращает текущий сценарий валидации Entity
_getValidators() Возвращает список валидаторов с учетом текущего сценария Entity
_hasValidateErrors() Проверяет есть ли ошибки валидации Entity
_isNew() Новая или нет сущность EntityORM
_setData() Устанавливает данные сущности EntityORM
_setDataSafe() Устанавливает данные, но только те, которые есть в $this->aValidateRules Entity
_setManyToManyRelations() Устанавливает вспомогательные объекты для связи many_to_many EntityORM
_setRelationsData() Устанавливает данные связей EntityORM
_setValidateScenario() Устанавливает сценарий валидации Entity
getAncestors() Для сущности со связью RELATION_TYPE_TREE возвращает список всех предков EntityORM
getChildren() Для сущности со связью RELATION_TYPE_TREE возвращает список прямых потомков EntityORM
getCountUsers() Возвращает количество пользователей с данной ролью ModuleRbac_EntityRole
getDescendants() Для сущности со связью RELATION_TYPE_TREE возвращает список всех потомков EntityORM
getParent() Для сущности со связью RELATION_TYPE_TREE возвращает предка EntityORM
getUrlAdminAction() Возвращает URL админки для различных действий над ролью, например, редактирование ModuleRbac_EntityRole
resetRelationsData() Сбрасывает данные необходимой связи EntityORM
setAncestors() Для сущности со связью RELATION_TYPE_TREE устанавливает предков EntityORM
setChildren() Для сущности со связью RELATION_TYPE_TREE устанавливает потомков EntityORM
setDescendants() Для сущности со связью RELATION_TYPE_TREE устанавливает потомков EntityORM
setParent() Для сущности со связью RELATION_TYPE_TREE устанавливает предка EntityORM

Protected Methods

Hide inherited methods

MethodDescriptionDefined By
PrepareBehaviors() Инициализация поведений LsObject
_Method() Проксирует вызов методов в модуль сущности EntityORM
afterDelete() Хук, срабатывает после удаления сущности EntityORM
afterSave() Хук, срабатывает после сохранением сущности EntityORM
beforeDelete() Выполняется перед удалением ModuleRbac_EntityRole
beforeSave() Выполняется перед сохранением ModuleRbac_EntityRole

Property Details

aRelations property
protected array $aRelations;

Связи ORM

aValidateRules property
protected array $aValidateRules;

Определяем правила валидации

Method Details

ValidateCheckCode() method
public bool|string ValidateCheckCode()
{return} bool|string
Source Code: /application/classes/modules/rbac/entity/Role.entity.class.php#109 (show)
public function ValidateCheckCode()
{
    if (
$oObject $this->Rbac_GetRoleByCode($this->getCode())) {
        if (
$this->getId() != $oObject->getId()) {
            return 
'Код должен быть уникальным';
        }
    }
    return 
true;
}

Валидация кода

ValidateParentRole() method
public bool ValidateParentRole(string $sValue, array $aParams)
$sValue string Валидируемое значение
$aParams array Параметры
{return} bool
Source Code: /application/classes/modules/rbac/entity/Role.entity.class.php#126 (show)
public function ValidateParentRole($sValue$aParams)
{
    if (
$this->getPid()) {
        if (
$oRole $this->Rbac_GetRoleById($this->getPid())) {
            if (
$oRole->getId() == $this->getId()) {
                return 
'Попытка вложить роль в саму себя';
            }
        } else {
            return 
'Неверная роль';
        }
    } else {
        
$this->setPid(null);
    }
    return 
true;
}

Проверка родительской роли

_getTreeParentKey() method
public string _getTreeParentKey()
{return} string
Source Code: /application/classes/modules/rbac/entity/Role.entity.class.php#64 (show)
public function _getTreeParentKey()
{
    return 
'pid';
}

Переопределяем имя поля с родителем Т.к. по дефолту в деревьях используется поле parent_id

beforeDelete() method
protected bool beforeDelete()
{return} bool
Source Code: /application/classes/modules/rbac/entity/Role.entity.class.php#89 (show)
protected function beforeDelete()
{
    if (
$bResult parent::beforeDelete()) {
        
/**
         * Запускаем удаление дочерних ролей
         */
        
if ($aCildren $this->getChildren()) {
            foreach (
$aCildren as $oChildren) {
                
$oChildren->Delete();
            }
        }
    }
    return 
$bResult;
}

Выполняется перед удалением

beforeSave() method
protected bool beforeSave()
{return} bool
Source Code: /application/classes/modules/rbac/entity/Role.entity.class.php#74 (show)
protected function beforeSave()
{
    if (
$bResult parent::beforeSave()) {
        if (
$this->_isNew()) {
            
$this->setDateCreate(date("Y-m-d H:i:s"));
        }
    }
    return 
$bResult;
}

Выполняется перед сохранением

getCountUsers() method
public mixed getCountUsers()
{return} mixed
Source Code: /application/classes/modules/rbac/entity/Role.entity.class.php#147 (show)
public function getCountUsers()
{
    return 
$this->Rbac_GetCountUsersByRole($this);
}

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

getUrlAdminAction() method
public string getUrlAdminAction($sAction $sAction)
$sAction $sAction
{return} string
Source Code: /application/classes/modules/rbac/entity/Role.entity.class.php#159 (show)
public function getUrlAdminAction($sAction)
{
    return 
Router::GetPath('admin/users/rbac/role-' $sAction '/' $this->getId());
}

Возвращает URL админки для различных действий над ролью, например, редактирование