Администрирование доступа к элементам управления форм

15.04.16

Администрирование - Информационная безопасность

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

Скачать исходный код

Наименование Файл Версия Размер
Обработка ВыборФормДляПривязок
.epf 13,43Kb
1
.epf 13,43Kb 1 Скачать
Файл конфигурации
.cf 2,08Mb
1
.cf 2,08Mb 1 Скачать
Демо версия
.dt 1,61Mb
1
.dt 1,61Mb 1 Скачать

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

Таким образом в любой момент времени документ имеет определенный статус, соответствующий определенному состоянию заказа в процессе его выполнения. Статус документа (реквизит СтатусЗаказа) своего рода индикатор для визуализации состояния заказа, а с другой стороны позволяет разграничить доступ на уровне всего документа - Редактирование / Просмотр.  

Но для удобства и надежности работы необходимо иметь возможность выполнить более тонкую настройку доступа к отдельным элементам управления.  Ведь даже если пользователь имеет права на редактирование документа, это не означает, что он должен иметь доступ ко всем элементам формы, а часть реквизитов он вообще не должен видеть. Конечно, можно все долго и нудно прописывать в коде - что кому можно, а что нельзя, но гораздо интереснее сделать это через универсальный интефейс, который можно будет затем использовать для любого документа, без дополнительного программирования

Вот для решения данного вопроса и разработан этот механизм.

 

рис. 1 Общая схема организации доступа

 

  На рис.1 представленна общая схема Разграничения доступа к ЭУ.   К типовому решению добавленно три справочника:

   - Т_СтатусыЗаказов -  Допустимые Статусы документа

   - Т_РеквизитыФорм - Содержит список Наименований элементов управления ФормыЭлемента документа

   - Т_РолиПользователей - Справочник определяет доступ по ролям в отраслевом решении, в данном случае в Полиграфии в соответствии со статусом документа.

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

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


рис. 2

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

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

 рис. 3


или в Иерархии:

рис. 4



После того как мы заполнили справочник  Т_РеквизитыФорм, можно переходить к созданию ролей доступа по отраслевому решению и разграничению доступа ЭУ в соответствии со статусом документа. Для этого мы используем справочник  Т_РолиПользователей. Создаем в справочнике нашей демонстрационной базы следующие роли

рис. 5


И выполним разграничение доступа для роли ПриемТовара. Этой Роли соответствуют Статусы - Принят, Задание Менеджера Создано. Вообще-то для каждой роли должно быть определено как минимум три статуса. Статус перехода с предыдущего этапа и два статуса, как уже говорилось выше для данного этапа. Но так как эта роль начальная, то ей соответствуют два статуса.

рис. 6

Как видно из рисунка, имеются две табличные части. Первая - (ПраваДоступа) определяет список достуных статусов для роли, а также определяет:

 - Возможность изменения статуса документа

 - Возможность редактирования элементов управления в принципе

- Способ разграничения по Доступности ЭУ

- Способ разграничения по Видимости ЭУ

С первыми двумя пунктами, я думаю, все понятно. Остановимся на двух следующих. Как для  разграничения по Доступности, так и для разграничения по Видимости имеется два способа организации разграничения:

- ИсключитьВсе (исключить все, что с этим признаком)
    Доступны все элементы за исключением указанных. Если список пуст - Доступны все элементы управления.

- ВключитьВсе (включить все, что с этим признаком)
    Доступны только элементы, указанные в списке. Если список пуст - НЕ Доступны все элементы управления.

   ДОСТУПНОСТЬ: По УМОЛЧАНИЮ Устанавливается признак <ИсключитьВсе>

   ВИДИМОСТЬ: По УМОЛЧАНИЮ Устанавливается признак <ИсключитьВсе>

 Ну и, наконец, колонка По Элементно - которая и открывает возможность разграничения по конкретному ЭУ, (только если задан флаг Редактирование).

А непосредственно разграничение по элементам осуществляется во второй ТЧ - которая так и называется ДоступПоЭлементам.

Итак, если мы обратися к нашему рисунку для роли ПриемТовара, то увидим, что для статуса Принят установлена возможность

 - ИзмененияСтатуса, Редактирования, ПоЭлементно, ИсключитьВсе

 Переходим во вторую таблицу. Для статуса Принят определен один ЭУ - %Оприходование. В следующей колонке  [Это Узел] установлен флаг - который говорит о том, что ЭУ %Оприходование содержит в себе какие-то вложенные элементы. Если мы зайдем в справочник РеквизитыФорм и найдем там элемент %Оприходование, то увидим, что это СтраницаПанели. Колонка [Это Узел] заполняется автоматически при выборе ЭУ. Следующая колонка [Разграничение по Доступности]  - в случае, если установлен флаг, определяет, что в данной строке задается Доступность ЭУ. Колонка [Разграничение по Видимости] - тоже самое только для Видимости ЭУ. В одной строке мы можем определять или только Доступность элемента или только Видимость. Если нам надо переопределить и Доступность и Видимость (что маловероятно, так как Доступность и Видимость ЭУ в форме задана по умолчанию), то по одному ЭУ у нас будет две строки. После выполнения данных действий мы получим следующий результат:

 В документе Приходная накладная будут доступны все элементы управления за исключением тех, что расположенны на вкладке %Оприходование.

 Если задать правило для Страницы панели, то это правило будет распространяться на все элементы Страницы

  Если на форме есть недоступные элементы управления, то доступные поля ввода будут подсвечиваться.

Следующий пример демонстрирует разграничение доступа по ЭУ для роли ОбработкаДанныхПроизводством, по которой для статуса ПринятоВПроизводство  Способ разграничения по Доступности   =  ВключитьВсе.

Рис 10


Согласно установленному Способу разграничения будут доступны только элементы, включенные в список ТЧ ДоступПоЭлементам.

 Ещё один нюанс - в справочнике РолиПользователей в ТЧ ДоступПоЭлементам список выбранных элементов можно копировать, указав в качестве источника - Роль, из которой будет происходить копирование, и СтатусДокумента.

Рис 11

Вот, в общем-то, и все.  Решение представлено в виде файла конфигурации *.cf.  После внедрения в конфигурацию и настройки справочников, непосредственно чтобы использовать, необходимо в форме документа в процедуру  ПередОткрытием вставить вызов одной-единственной процедуры:

        Утилиты.ПроверкаПравДоступаПользователя(ЭтаФорма,ЭлементыФормы, СтатусЗаказа);

 При обновлении конфигурации объект Роли из ветки Общие обновлять Не нужно

Имеется также демонстрационная база, на основании которой создавалось данное описание.

Разграничение доступ элементы управления

См. также

AUTO VPN (portable)

Информационная безопасность Платные (руб)

Автоматизация подключения пользователей к удаленному рабочему месту или сети посредством создания автоматического VPN (L2TP или L2TP/IPSEC и т.д.) подключения без ввода настроек пользователем (с возможностью скрытия этих настроек от пользователя). Программа автоматически выполняет подключение к VPN серверу и после успешного коннекта , если необходимо, подключение к серверу удаленных рабочих столов (RDP).

1200 руб.

24.03.2020    14506    23    32    

34

Настройка аутентификации в 1С с использованием стандарта RFC 7519 (JWT)

Информационная безопасность Платформа 1С v8.3 Бесплатно (free)

Рассмотрим в статье более подробную и последовательную настройку аутентификации в 1С с использованием распространенной технологии JWT, которая пришла в программу в платформе версии 8.3.21.1302.

27.02.2024    3188    PROSTO-1C    10    

32

Device flow аутентификация, или туда и обратно

Информационная безопасность Платформа 1С v8.3 Абонемент ($m)

Интеграционные решения стали неотъемлемой частью нашей жизни. Правилом хорошего тона в современных приложениях является не давать интегратору доступ к чувствительным данным. Device flow позволяет аутентифицировать пользователя, не показывая приложению чувствительные данные (например: логин и пароль)<br> Рассмотрим Device flow аутентификацию, в приложении, на примере OpenID провайдера Yandex.

1 стартмани

27.10.2023    1715    platonov.e    1    

23

Анализатор безопасности базы сервера 1С

Информационная безопасность Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

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

5 стартмани

24.04.2023    5573    17    soulner    7    

29

Двухфакторная аутентификация в 1С через Telegram и Email

Информационная безопасность Платформа 1С v8.3 1С:ERP Управление предприятием 2 Абонемент ($m)

1С, начиная с версии платформы 8.3.21, добавили в систему возможность двойной аутентификации. Как это работает: в пользователе информационной базы появилось свойство «Аутентификация токеном доступа» (АутентификацияТокеномДоступа во встроенном языке), если установить этот признак и осуществить ряд манипуляций на встроенном языке, то появляется возможность при аутентификации отправлять HTTP запросы, которые и реализуют этот самый второй фактор. Данное расширение позволяет организовать двухфакторную аутентификацию с помощью электронной почты или мессенджера Telegram.

2 стартмани

08.12.2022    6119    33    Silenser    12    

23

История одного взлома или проверьте вашу систему на безопасность

Информационная безопасность Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

От клиента клиенту, от одной системы к другой, мы вновь и вновь встречаем одни и те же проблемы и дыры в безопасности. На конференции Infostart Event 2021 Post-Apocalypse Виталий Онянов рассказал о базовых принципах безопасности информационных систем и представил чек-лист, с помощью которого вы сможете проверить свою систему на уязвимость.

26.10.2022    9466    Tavalik    46    

113
Оставьте свое сообщение