Имя: Пароль:
1C
1С v8
RLS - как сделать суммарный запрет доступа?
,
0 vde69
 
11.04.22
14:48
А меня есть несколько ролей, когда я выдаю пользователю несколько ролей их доступ складывается.

А можно сделать какое-то условие которое будет запрещать доступ к конкретному элементу сразу для всех ролей?

пример

элементы справочника - А, Б, В, Г
роли
1. А+Б
2. Б+В
3. А+Г

Нужно что-бы при любой комбинации ролей доступа к элементу Б не было. Да я понимаю, что можно из всех ролей удалить доступ к этому элементу, но это не наш путь, так как изначально роли устроены сложно и ролей много, вероятность ошибок очень велика.
1 Irbis
 
11.04.22
15:01
RLS разве не по ИЛИ объединяется?
© Ваш кэп
2 vde69
 
11.04.22
15:03
(1) разумеется, я ищу "хитрый трюк" может кто реализовывал уже?
3 Ненавижу 1С
 
гуру
11.04.22
15:04
(0) путь в никуда это, имхо
сейчас вы хотите "запрещателя", который круче всех разрешателей
потом захотите "разрешателя", который круче вашего "запрещателя"

нужен рефакторинг ролей все же
4 1Сергей
 
11.04.22
15:35
(3) +100500
5 PLUT
 
11.04.22
15:40
(0) обычно решается "отчетом" самописьным, который "конфликты" ролей ищет, ну грубо говоря, при добавлении новой роли пользователю проверяется - а не слишком много прав ему дано?

отсутсвие прав - это привелегия обычно :)
6 _Дайвер_
 
11.04.22
15:48
(3) Поддержу, роли нужно изменять
7 PLUT
 
11.04.22
16:00
(0) > Да я понимаю, что можно из всех ролей удалить доступ к этому элементу,

лучше не удалять из всех типовых ролей доступ, а создавать свои группы доступа с нужным набором ролей

благо, на каждый объект метаданных есть обычно роли "ДобавлениеИзменение", "Чтение"
8 nodrama
 
11.04.22
16:05
Роли и пользователи это вообще головная боль жуткая....... почти в каждой организации где работал, был бардак..
Сначала хотят запретить, потом хотят избранному разрешить, потом хотят супер избранному разшерить все, но запретить то что делает избранный и так по кругу. фантазия на фантазии.
А все идет изначально из-за не правильных ролей и функций людей
9 Irbis
 
11.04.22
19:49
(2) Особые права нужно назначать отдельно, с минимумом пересечений, тогда и не будет подобных задач.
10 Naumov
 
11.04.22
20:33
(2) В смысле реализовал? Если платформа так не делает совсем?
Только отдельная роль, ну или хардкором при открытии
11 AlvlSpb
 
11.04.22
20:34
(0) Нет. Нет такого. Ограничения работают по принципу: Если в 100 ролях запрещено, но в 1й разрешено, значит разрешено. Точка!
Тут только костыли. Например, создать роль, можно пустую. Присвоить нужному пользователю. В ключевых местах (типа запроса на получение данных) проверять на РольДоступна и, если эта роль есть, пропускать запрос или отказ или еще что-то. Но это так себе решение
12 ДедМорроз
 
11.04.22
21:02
Ну если вам очень хочется - сделайте регистр "ОфигенныйЗапрет" и пишите в него элементы,для которых нужно закрыть доступ,а потом просто в RLS для каждой роли проверяйте,что записи нет в этом регистре.

Только у нас есть:
Запрещено, Строго запрещено и категорически запрещено.
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший