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

Администрирование - Защита, права, пароли

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

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

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

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

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

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

 

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

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

p.s.

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

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

 

+ Добавлено 2015.06.19

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

 

44

Скачать файлы

Наименование Файл Версия Размер
Анализатор ролей.erf
.erf 64,85Kb
19.06.15
279
.erf 64,85Kb 279 Скачать

См. также

Комментарии
Сортировка: Древо
1. nkp14108 74 22.04.15 12:45 Сейчас в теме
Начало не плохое. На практике чуть переделал вашу обработку. С практической точки зрения понадобилось по отбору пользователя узнать какие у него права(роли или группы доступа(ограничения)), а применительно к документообороту, к каким он имеет доступ папкам, кому делегированы права, в каких документах он допущен в составе рабочей группы, но потеряна универсальность.
2. unichkin 988 22.04.15 23:14 Сейчас в теме
(1) nkp14108, спасибо за комментарий.
Вы имеете в виду, что необходим доп. разрез по пользователям? Я думал об этом. Но такая доработка увеличит анализируемый массив, следовательно чтобы сократить время формирования до комфортного, потребуются возможность дополнительных отборов, а это уже потребует больше времени. Добавлю, т.к. и самому иногда нужно. Правда вот когда - сказать не могу :)
Кстати тоже момент: если добавляем разрез по пользователю, то в каком виде компоновать результат? Там (имхо) наглядно будет видеть сразу разрезы "Профиль/Роли" , "Объекты/Права" (наподобие скрина "Объект.png").
3. unichkin 988 03.06.15 20:54 Сейчас в теме
2015_06_03 Отчет улучшил, многое изменил, - в частности добавлена возможность анализа пользователя.
4. Lok`Tar 29 14.03.16 13:14 Сейчас в теме
Спасибо! В ЕРП замаялся искать роли.
5. unichkin 988 14.03.16 13:24 Сейчас в теме
(4) Lok`Tar, Самое лучшее спасибо - это все-же плюс.
6. AlexSvt 14 25.05.16 12:05 Сейчас в теме
Великолепный отчет! Благодарю.
7. IT_Avito 15.06.16 12:37 Сейчас в теме
Спасибо большое за отчет, очень помог в работе.
8. Spacer 278 24.01.17 10:54 Сейчас в теме
Хороший отчет, наконец нашел то что искал.
Похожих много, но как то все не то.
9. mkvmkv 31.10.17 10:37 Сейчас в теме
Очень полезно для настройки нестандартных профилей. Для анализа какую роль добавить.
10. Brawler 387 18.06.18 09:54 Сейчас в теме
Начал задумываться, о том как же сложно жить будет с 1200+ ролями в ERP.
Хотел что-то делать с этим и лень сделала свое дело.

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


Чтобы ее можно было добавить во внешние обработки/отчеты.
11. Dimel 04.07.18 17:36 Сейчас в теме
Спасибо огромное!

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

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

Рекомендации: добавить объекты которые вы упустили (общие формы, команды).
Если возможно добавить возможность анализа до табличных частей (справочников и документов) и их реквизитов. В последних типовых редакциях настройка бывает до них (даже до полей табличной части) .
Возможно добавить новые права из 8.3.11 (по чтению истории)
Поставить признаки, что у объекта существуют RLS.
12. o.nikolaev 228 20.07.18 11:59 Сейчас в теме
Толково сделано, спасибо. Пригодилось в работе.
13. o.nikolaev 228 20.07.18 11:59 Сейчас в теме
Оставьте свое сообщение