Отчет для анализа прав доступа в разрезах Право/Объект/Роль/Профиль/Пользователь






Удобный анализ прав доступа в различных разрезах, с промежуточным кэшированием набора данных. Только для конфигураций на БСП.

Выбирайте вариант анализа и соответствующий объект, делайте отбор по правам доступа с помощью кнопки «Права…», и анализируйте результат, представленный с помощью СКД. Для каждого варианта анализа предусмотрена своя настройка варианта, это отображено на скриншотах.

Также вы можете изменить текущую настройку варианта (например, изменить настройку группировок), и переформировать отчет. Благодаря тому, что набор данных кэшируется, переформирования отчета не будет, т.е. можно быстро проанализировать данные в различных разрезах. Управление кэшем — вынес на кнопку, т.е. если после формирования отчета что-то изменилось, и нужно проанализировать тот же объект — установите перед формированием пометку «Очищать кэш».

Очень важная фишка этого отчета: работает расшифровка. Т.е. в сформированном отчете по роли можно двойным кликом по группировке вызвать формирование нового экземпляра отчета для объекта, из него — профиля и т.п.

Т.к. отчет применяется мной для разработки новых профилей, вынес две важные команды на форму:

  • Обновить ИОМ — вызывает команды обновления справочника «Идентификаторы объектов метаданных», а также значения связанной с ним константы «ПараметрыРаботыПользователей»
  • Открыть справочник — открывает формы списка часто используемых справочников — см. скриншот.

 

Если вам необходимо проверить доступ пользователя к определенным объектам, установите перед формированием флажок «Отключить анализ ролей» — отчет сформируется быстрее.

При написании отчета пользовался своей публикацией «Кнопки управления группировками табличного документа для управляемых форм».

p.s.

Отчет построен вокруг метода глобального контекста «ПравоДоступа()». Т.к. из свойства «Метаданные» невозможно понять у какого объекта какие существуют права доступа — я описал эту таблицу вручную, и при формировании проверяются только корректные права. Никаких «Попытка/Исключение» — за счет этого отчет формируется быстрее.

Была мысль — формировать с учетом иерархии прав доступа. Ведь если у пользователя есть право доступа например для справочника — «ИнтерактивноеДобавление» — то права «Добавление», «Редактирование», «Просмотр» и проч. — уже проверять не надо, их доступность и так обеспечена. Столкнулся с интересной деталью — поиск кешируемой строки в массиве работает дольше, чем метод ПравоДоступа — поэтому в итоге свой кэш отключил. Думаю, что платформа сама это дело кеширует именно по такому алгоритму — так что знайте вот такую особенность метода «ПравоДоступа».

 

+ Добавлено 2024.06.19

Формирование мини-отчета по участию объекта в составе подсистем. Во время ковыряния УТ-шки замучался искать объект в базе. Решил немного облегчить себе жизнь, и теперь при анализе объекта — отчет покажет также иерархический список подсистем, в состав которых он входит. В скриншоте показано, что справочник «Наборы упаковок» нужно искать в НСИ, т. к. он входит в состав подчиненной ей подсистемы «Номенклатура», которая учавствует в формировании командного интерфейса. Команды не отображал, возможно позже сделаю.

 

13 Comments

  1. nkp14108

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

    Reply
  2. unichkin

    (1) nkp14108, спасибо за комментарий.

    Вы имеете в виду, что необходим доп. разрез по пользователям? Я думал об этом. Но такая доработка увеличит анализируемый массив, следовательно чтобы сократить время формирования до комфортного, потребуются возможность дополнительных отборов, а это уже потребует больше времени. Добавлю, т.к. и самому иногда нужно. Правда вот когда — сказать не могу 🙂

    Кстати тоже момент: если добавляем разрез по пользователю, то в каком виде компоновать результат? Там (имхо) наглядно будет видеть сразу разрезы «Профиль/Роли» , «Объекты/Права» (наподобие скрина «Объект.png»).

    Reply
  3. unichkin

    2015_06_03 Отчет улучшил, многое изменил, — в частности добавлена возможность анализа пользователя.

    Reply
  4. Lok`Tar

    Спасибо! В ЕРП замаялся искать роли.

    Reply
  5. unichkin

    (4) Lok`Tar, Самое лучшее спасибо — это все-же плюс.

    Reply
  6. AlexSvt

    Великолепный отчет! Благодарю.

    Reply
  7. IT_Avito

    Спасибо большое за отчет, очень помог в работе.

    Reply
  8. Spacer

    Хороший отчет, наконец нашел то что искал.

    Похожих много, но как то все не то.

    Reply
  9. mkvmkv

    Очень полезно для настройки нестандартных профилей. Для анализа какую роль добавить.

    Reply
  10. Brawler

    Начал задумываться, о том как же сложно жить будет с 1200+ ролями в ERP.

    Хотел что-то делать с этим и лень сделала свое дело.

    Добавьте в модуль обработки что-то типа.

    // Возвращает сведения о внешней обработке.
    Функция СведенияОВнешнейОбработке() Экспорт
    
    ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке(«2.1.3.1»);
    
    ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительныйОтчет();
    ПараметрыРегистрации.Версия = «0.1»;
    ПараметрыРегистрации.БезопасныйРежим = Ложь;
    ПараметрыРегистрации.Наименование = ЭтотОбъект.Метаданные().Представление();
    ПараметрыРегистрации.Информация = «Автор:  Уничкин Р. А. 16 января 2015 г. 20:40:39»;
    
    НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
    НоваяКоманда.Представление = ЭтотОбъект.Метаданные().Представление();
    НоваяКоманда.Идентификатор = «1»;
    НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы();
    НоваяКоманда.ПоказыватьОповещение = Истина;
    
    Возврат ПараметрыРегистрации;
    
    КонецФункции
    

    Показать

    Чтобы ее можно было добавить во внешние обработки/отчеты.

    Reply
  11. Dimel

    Спасибо огромное!

    У меня было много обработок по анализу прав и ролей. Но почему то стал замечать, что использую постоянно только ваш отчет.

    Были какие то сложности с расшифровкой и добавлением пары объектов метаданных которых у вас не было (общие формы, команды и т.д.), но исправить недочеты, проще чем писать с 0.

    Рекомендации: добавить объекты которые вы упустили (общие формы, команды).

    Если возможно добавить возможность анализа до табличных частей (справочников и документов) и их реквизитов. В последних типовых редакциях настройка бывает до них (даже до полей табличной части) .

    Возможно добавить новые права из 8.3.11 (по чтению истории)

    Поставить признаки, что у объекта существуют RLS.

    Reply
  12. o.nikolaev

    Толково сделано, спасибо. Пригодилось в работе.

    Reply
  13. o.nikolaev

    Reply

Leave a Comment

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