oDb = BxDolStudioRolesQuery::getInstance(); $this->aNonDeletable = array( BX_DOL_STUDIO_ROLE_MASTER, BX_DOL_STUDIO_ROLE_OPERATOR ); } protected function _delete($mixedId) { $iId = (int)$mixedId; $aRole = $this->oDb->getRoles(array('type' => 'by_id', 'id' => $iId)); if(empty($aRole) || !is_array($aRole)) return false; if(in_array($iId, $this->aNonDeletable) || $this->oDb->isRoleUsed($iId)) return false; $isStopDeletion = false; bx_alert('roles', 'before_delete', $iId, 0, array('role' => $aRole, 'stop_deletion' => &$isStopDeletion, 'stop_deletion_ref' => &$isStopDeletion)); if($isStopDeletion) return false; $oLanguage = BxDolStudioLanguagesUtils::getInstance(); $oLanguage->deleteLanguageString($aRole['title']); $oLanguage->deleteLanguageString($aRole['description']); if(!parent::_delete($mixedId)) return false; bx_alert('roles', 'deleted', $iId, 0, array('role' => $aRole)); return true; } } /** @} */