Как настроить права на инфоблок, чтобы пользователь мог редактировать только свои записи?
Всем привет.
Подскажите пожалуйста, как правильно настроить права на инфоблок при следующей ситуации.
Есть группа пользователей "редакторы", у этой группы есть доступ в админку и доступ к инфоблоку "статьи". Как сделать так, чтобы пользователи из этой группы могли редактировать только свои записи, т.е. только те, которые они создали, а остальные были доступны на чтение? Нужно именно в админке.
В событии:
1) Проверяете принадлежность текущего пользователя к крупе Контент Редакторы. Можно с помощью CSite::InGroup
2) Если да, то по ID Элемента в $arParams события, делаете запрос CIBlockElement::GetByID.
3) Сравниваете CREATED_BY из запроса и глобальный $USER->GetID();
4) Если они не совпадают:
$APPLICATION->throwException("Элемент может генерировать только создатель");
return false;
В этом решении есть минусы. Во-первых, все записи в интерфейсе будут доступны на редактирование. Во-вторых, пользователь может начать редактировать чужую запись и при сохранении получит исключение и может потерять то, что он написал, т.е. до момента сохранения он не может понять, что прав у него нет.
А встроенными настройками прав не получится сделать?