Анализатор прав и ролей



«Достали!» — именно с такой фразы началась разработка)
Все кто сталкивались с последними мега конфигурациями (не будем показывать пальцем на ERP) и видели этот нереальный список ролей, от которого даже скролл дымился, то вам однозначно пригодится эта обработка. Основной целью было дополнить типовой функционал «Все роли» отборами для быстрого поиска нужных доступов.
Возможности: просмотр по метаданным список их ролей и прав, просмотр по роли ее список метаданных, просмотр по правам ограничения (RLS).

Данная обработка построена по привычному в конфигураторе функционалу "Все роли". Но в дереве присутствуют только метаданные (нет реквизитов, ТЧ и прочего). Дополнительно в дереве есть ветка с ролями, она нужна для того чтобы найти нужную роль и отобрать по ней (также отбор можно сделать из любого метаданного). Сверху есть строка поиска, вводим что нить, нажимаем ентер, и в дереве останутся только нужные метаданные (поиск идет по имени и представлению).

Таблица прав и ролей отображается при активации строки дерева. По умолчанию выводятся только роли, которые выдают какие нибудь права. Но есть и режим "хардкор", активируется флажком "Все роли".

Отбор метаданных по роли делается из контекстного меню в колонке роли (строка значения не имеет). При этом сама роль выделится красным цветом. Чтобы снять отбор надо нажать на соответствующую кнопку над таблицей прав и ролей:

Чтобы подгрузить ограничения (RLS) нужно сначала их выгрузить из конфигурации. Для начала получаем все ограничения доступа:

Далее выводим список в таблицу (Действия—>Вывести список) и сохраняем. В обработке нажимаем кнопку RLS и выбираем файл с ограничениями. Ограничения будут отображаться под таблицей прав и ролей:

В итоге получаем "Все роли" в предприятии с возможностью дополнительного анализа.

Немного цифр: при запуске обработки на ERP сама инициализация занимает около 7 минут, при этом приложение съедает чуть больше 2гб оперативы, но спустя время высвобождается до 400мб. Количество строк в основной таблице прав и ролей составило что то около 65000, но поиск по ней работает довольно шустро, хотя сомневаюсь что платформа делает индексы. Тестил в основном на файловой базе, но на серверной тоже работает, хотя не вижу смысла в серверной для данной обработки.

Советую обработку запускать в отдельном приложении на постоянной основе (касается только больших увесистых конф) и желательно на файловой версии, так отклик будет пошустрее. 

6 Comments

  1. Shalnov

    Супер! Именно такую хотел написать! Спасибо!

    Реально упрощает работы по правам.

    Reply
  2. z-alexey

    Спасибо!

    Из пожеланий: добавить возможность выбора пользователя (или профиля), чтобы накладывался фильтр и показывались объекты и роли, которые проставлены у выбранного пользователя или профиля.

    Reply
  3. denacid

    (2) Не думаю что это упростит анализ. Все равно выкатится 100500 объектов на которые есть доступ. Тут вдогонку надо бы еще и по правам фильтровать, скажем выкатить список объектов которые можно менять. Но пока что настолько я не планировал расширять функционал. Тем более БСП вроде как уже имеет какие то отчеты по данной теме.

    Reply
  4. z-alexey

    (3) Ну вот пример. Нужно понять почему у пользователя не фильтруется организации по RLS.

    С помощью Вашей обработки смотрю справочник Организации, отчет показывает какие роли имеют право чтения спр. организации и какие из них RLS.

    Теперь нужно вручную проверить какие из ролей (без ограничений RLS) включены у нужного пользователя и убрать их.

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

    Reply
  5. denacid

    (4) Ну если судить по erp, для которой я все это и затеял, то в 99% случаев будет всего 2 роли дающие право: роль позволяющая добавлять/менять и роль позволяющая читать. В большинстве случаев все сводится к проверке всего 1 подозрительной роли, которая и дает расширенные права. И проверить у пользователя наличие такой роли не займет много времени, тем более это не нужно прям так часто. И на моей практике была проблема, которую не решить даже такой обработкой: у пользователя было 2 группы доступа, одна ограничивала организации, другая нет) в итоге вроде бы нет ролей, дающих доп права, но тем не менее доступ открыт на все организации.

    Reply
  6. bogdan_sukonnov

    Отличная обработка! Поиск объекта конфигурации заслуживает трех плюсов, к сожалению, могу поставить только один…

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *