Доработка системы назначений прав пользователям.

Форум 1С: Одинэс.Ру

Найти!

Доработка системы назначений прав пользователям.

Anonymous
22.04.2009 - 11:35
Итак, что есть: есть типовая УПП ред. 1.2 со своими доработками. Работаем в ней уже больше года. Почти все рабочие места с их правами и интерфейсами уже обозначилась, соответственно пришло время переписать интерфейсы и наборы прав для каждого пользователя базы.
 
Почему не хочется использовать типовой набор прав? Права в УПП разбиты на отдельные большие блоки, причем их очень много и они далеко не точно соответствуют нашему фактическому разбиению. Т.е. чтобы описать нашего пользователя типовым набором прав придется их с 10-к на него вешать. А править роль - сами знаете - проблемы с обновлением, да и муторно это. Давать всем полные права и ограничивать видимость интерфейсами - тоже не выход.
 
Обычный выход - на каждую нашу роль написать отдельный набор прав. Есть только одно осложнение, особенность нашей базы в том - что очень часто люди выполняют часть не своих обязанностей, причем временно, и совершенно непредсказуемую часть. В общем хотелось бы обойтись каким нибудь динамическим назначением прав, причем без использования ограничений на уровне записей (не люблю!!! не разобрал еще их синтаксис).
 
В общем меня интересуют различные предложения на эту тему, кто что видел, разрабатывал или пользовался (конечно если не секрет). От себя скажу - подкинули идею проверку прав повесить на подписку события различных объектов. Т.е. есть некий справочник, который содержит например объект метаданных, пользователя и возможные права с их значениями. перед записью объекта, к примеру это все проверяется. Но прежде чем увязнуть в этом, хотелось бы услышать сторонние независимые суждения.
 
Всем участвующим заранее спасибо.
К списку тем К списку форумов

Интересные темы

odines.ru
21.11.2024 - 13:56
Смотри также:
Учет по организациям
1.2.22.3 Зарплата к выплате делается на список. РКО должны быть оформлены на каждого работника из ТЧ, или..
1c:8 УПП - нужна большая фирма для расчета стоимости внедрения УПП

Re: Доработка системы назначений прав пользователям.

Тихий
1 - 23.04.2009 - 00:17
Делал на 7.7, но суть, думаю, пойдёт и для 8.
Справочник Пользователи. Содержит как самих пользователей, так и служебные эелемнты - роли (кладовщик, манагер отдела закупок етс).
Справочник РолиПользователей, подчинен справочнику Пользователи. Структура - реквизит Роль, ссылка на справочник Пользователи, отбор и сортировка по реквизиту; длина кода и наименования равна 0. Содержит роли, назначенные каждому пользователю, по факту наличия записи.
Справочник Действия. Структура - Код, Наименование. Содержит все возможные действия, которые выполняются в системе. По сути - классификатор действий. Например, должен содержать такие записи: Документ - чтение; Документ - ввод нового; Документ - изменение; Документ - проведение; Справочник - чтение и так далее.
Справочник Объекты. Содержит список идентификаторов контролируемых динамической системой прав объектов конфигурации - документы, справочники, отчеты, обработки етс. У меня в структуре только Наименование, длина кода=0.
Справочник ДействияСОбъектами. Подчинен справочнику Объекты. Содержит все возможные действия с объектом. Структура - один единственный реквизит Действие, ссылка на элемент справочника Действия, отбор и сортирока по реквизиту; длина наименования и кода = 0. Позволяет описать для каждого объекта метаданных свой уникальный набор всех возможных действий с ним.
Справочник РазрешенныеДействияСОбъектами. Подчинен справочнику Пользователи. Содержит все разрешенные пользователю/роли действия. Структура - реквизит Действие, ссылка на элемент справочника ДействияСОбъектами, отбор и сортировка по реквизиту; реквизит Запрет, число, длина 1; длина наименования и кода = 0. Позволяет описать по факту наличия записи в справочнике: для роли - все разрешенные роли действия; для пользователя - индивидуальные разрешения и запреты,  имеющие более высокий приоритет на ролевыми правами.
Обращение к системе прав в общем выглядит так:
параметры - пользователь, идентификатор объекта, код действия (код элемента справочника Действия).
1. Флаг ДействиеРазрешено=0
2. Перебираются все записи справочника РолиПользователей, подчиненные переданному пользователю. Для каждой полученной роли получаем подчиненную ей запись из справочника РазрешенныеДействияСОбъектами согласно переданному идентификатору объекта и коду действия (идентификатор объекта - для получения элемента справочника Объекты, код действия - для получения эемента справочника Действия; ищем по реквизиту Действие, используя в качестве значения реквизита полученный элемент справочника Действия подчиненный элемент справочника ДействияСОбъектами, установив в качестве владельца полученный элемент справочника Объекты). Если запись есть, то ДействиеРазрешено = 1.
3. После перебора ролей получаем подчиненную переданному пользователю запись из справочника РазрешенныеДействияСОбъектами. Если запись есть, то ДействиеРазрешено = 1; если в записи реквизит Запрет равен 1, то ДействиеРазрешено = 0.
4. Возвращаем в вызывающий модуль результат проверки прав и в нём делаем нужные манипуляции - запрещаем редактирование, делаем статусвозврата(0) и так далее.
К списку тем К списку форумов

Добавить новое сообщение

Ваше имя:
Тема сообщения:
Сообщение:
« Настройка бухучета зарплаты сотрудников Закрытие 20 счета при расширенной аналитике »
© 2009 Форум 1С: Одинэс.Ру