Сокрытие системных ролей от пользователей

Добрый день.

Столкнулся с небольшой проблемой.
В проекте через атрибуты сессии была настроена система фильтрации ролей, которая подразумевает, что пользователь определенной группы будет видеть только роли, принадлежащие своим группам.
проверка

Скрипт сработал, расчет был на то, чтобы пользователь при редактировании и создании не смог не только удалить, но и даже увидеть минимальную системную роль. Однако при создании нового пользователя минимальная системная роль всё так же видна, по причине того, что новый пользователь еще не был записан в таблицу sec$UserRole, на которую накладывается указанное выше ограничение.
test
В то время, как при редактировании роль действительно не видна:
редактирование

Вопрос, возможно как-либо скрыть отображение системных ролей для пользователей?

PS. Придумал несколько костылей, вроде добавления дефолтных ролей при закрытии экрана или отключении кнопки удалить при выделении в таблице system-minimal. Однако они пока меня не устраивают.

Здравствуйте,

Экран пользователя проектировался с учетом того, что администратор должен иметь возможность увидеть роли назначенные по умолчанию и иметь возможность их удалить.

При этом группы доступа не закрывают случаи по только что созданным и не сохраненным сущностям.

Данную проблему, кроме как расширением экрана пользователя не решить. Предложенные вами решения не являются костылями. Решение когда мы не показываем дефолтные роли при создание объекта, а создаем их позже при сохранение кажется наиболее допустимым.

Если в экране расширения переопределить метод addDefaultRoles (чтобы он ничего не делал) и проставлять флаг setDisabledDefaultRoles(false) в методе initNewItem, то дефолтные роли не должны отображаться в экране создания пользователя и будут заполняться при помощи entity listener: UserListener.

1 симпатия

Благодарю за исчерпывающий ответ.