Фильтр контроля в CIBlockElement::Delete()

Рейтинг: 1.6932  
На голосовании
Предложил Пользователь 2795 16.03.2012 15:28:07

Фильтр контроля в CIBlockElement::Delete()

В интерактивных механизмах для самостоятельного удаления элементов пользователями я часто использую ссылки с "зашитым" в них ID удаляемого элемента.
Скрипт обрабатывает GET-запрос и проверяет: имеет ли право пользователь удалять элемент, относится ли ID к тому инфоблоку, элементы которого можно удалить этой операцией и т.д. После чего, собственно, удаляет элемент.

Применение CIBlockElement::Delete() без такой проверки чревато тем, что злодей простым перебором ID может удалить ВСЕ элементы инфоблоков подчистую. Но для проверки приходится применять CIBlockElement::GetList() с фильтрацией.

Предлагаю добавить параметров в функцию CIBlockElement::Delete() для контроля параметров элемента перед его удалением. Например, стандартный $arFilter позволил бы удалять только тот элемент, который удовлетворяет заранее прописанным параметрам.

Рейтинг: 2.0906  
Пользователь 14039 19.03.2012 10:02:13
В идеале этот метод должен понимать фильтрацию по полям, чтобы можно было сделатьdelete fr om b_user wh ere .... and ... limit 10