Появилась необходимость облегчить настройку прав доступа для различных пользователей, работающих в системе. В системе существовали большие, неповоротливые роли и если возникал вопрос, что необходимо кому-то дать права на тот или иной объект, приходилось лезть в конфигуратор, править роль, выгонять пользователей, обновлять конфигурацию. Процесс выдачи прав мог затянуться.
И однажды было принято решение создать много мелких ролей на каждый объект, на каждое право. В дальнейшем из которых можно собирать профили, включая в него разные мелкие роли не прибегая к конфигуратору. И вот, казалось бы счастье, но в конфигурации очень много объектов и создавать роль на каждый объект затратное по времени дело.
Родилась обработка, которая автоматически генерирует роли на выбранные объекты.
Алгоритм использования:
1. Необходимо выгрузить всю конфигурацию в фалы XML (Конфигурация-Выгрузить конфигурацию в файлы).
2. Запустить обработку, указать путь к выгруженной конфигурации, выбрать объекты, на которые необходимо сгенерировать роли.
3. Собрать конфигурацию из файлов (Конфигурация-Загрузить конфигурацию из файлов).
После сборки новой конфигурации появятся новые сгенерированные роли. На каждый объект на каждое право:
- Чтение
- Просмотр
- Интерактивное добавление
- Редактирование
- …
На основе сгенерированных ролей можно создавать различные профили через платформу.
Если немного переделать данную обработку, то ее с легкость можно использовать для добавления реквизитов в объекты.
Интересное решение.
Универсальное решение для контор, в которых пользователи очень часто просят настроить уникальный профиль для новых сотрудников.
Т.е. у обычного пользователя будут десятки или даже сотни ролей.
Нет ли проблем с быстродействием?
У нас было создано более 1000 ролей. Пользователю в профиль накидывали до 100 ролей, падение производительности не наблюдалось.
На нашем внедрении(УПП) куча ролей у пользователя не взлетела, появились дикие тормоза. В итоге, от такого отказались. А если ещё и RLS будет, то система нагнется ещё раньше. Вот,например
а RLS включен?