1
0
Fork 0
mirror of https://github.com/Oreolek/ifhub.club.git synced 2024-06-26 03:30:48 +03:00

Доработка управления правами

This commit is contained in:
Mzhelskiy Maxim 2014-08-25 17:47:45 +07:00
parent fd1bafac78
commit b93dbc048c
3 changed files with 44 additions and 0 deletions

View file

@ -68,6 +68,24 @@ class ModuleRbac_EntityGroup extends EntityORM {
}
return $bResult;
}
/**
* Выполняется перед удалением сущности
*
* @return bool
*/
protected function beforeDelete() {
if ($bResult=parent::beforeDelete()) {
/**
* Нужно сбросить группу у разрешений
*/
$aPermissionItems=$this->Rbac_GetPermissionItemsByGroupId($this->getId());
foreach($aPermissionItems as $oPermission) {
$oPermission->setGroupId(null);
$oPermission->Update();
}
}
return $bResult;
}
/**
* Возвращает URL админки для редактирования
*

View file

@ -36,6 +36,14 @@ class ModuleRbac_EntityPermission extends EntityORM {
array('group_id','check_group'),
);
/**
* Связи ORM
*
* @var array
*/
protected $aRelations=array(
'roles' => array(self::RELATION_TYPE_MANY_TO_MANY,'ModuleRbac_EntityRole', 'role_id', 'ModuleRbac_EntityRolePermission', 'permission_id'),
);
/**
* Валидация группы
*

View file

@ -68,6 +68,24 @@ class ModuleRbac_EntityRole extends EntityORM {
}
return $bResult;
}
/**
* Выполняется перед удалением
*
* @return bool
*/
protected function beforeDelete() {
if ($bResult=parent::beforeDelete()) {
/**
* Запускаем удаление дочерних ролей
*/
if ($aCildren=$this->getChildren()) {
foreach($aCildren as $oChildren) {
$oChildren->Delete();
}
}
}
return $bResult;
}
/**
* Валидация кода
*