Производительный RLS, ЗначениеРазрешено + ЧтениеОбъектаРазрешено
Коллеги, приветствую.
Есть самописный справочник. Нужно накрутить на него производительный RLS.
1. Ограничение по виду доступа "Пользователь", реквизит справочника "Ответственный". Пользователи видят только те элементы, где они указаны как "Ответственный".
ИЛИ
2. Ограничение по доступности другого сапописного документа, который указан в реквизите справочника "Документ". Пользователи видят элемент справочника, если у них есть права на этот документ (на эти документы тоже накручен сложный RLS).
В итоге создал 2 роли. Шаблоны:
1 роль. #ДляОбъекта("")
2 роль. #ДляОбъекта("Документ")
В модуле менеджера справочника "ПриЗаполненииОграниченияДоступа" такой код:
Вспомогательные данные обновил, обновление доступа на уровне записей для своего справочника прогнал. Тестирую под пользователем с этими двумя ролями. При открытии формы списка справочника получаю ошибку:
Требуется актуализировать ограничение доступа в параметрах сеанса для шаблона ДляОбъекта со значением параметра "".
Кто-нибудь из вас делал подобное, чтобы доступ был как по значению реквизита, так и по доступности другого связанного объекта. И как решали, что я сделал не так?
Есть самописный справочник. Нужно накрутить на него производительный RLS.
1. Ограничение по виду доступа "Пользователь", реквизит справочника "Ответственный". Пользователи видят только те элементы, где они указаны как "Ответственный".
ИЛИ
2. Ограничение по доступности другого сапописного документа, который указан в реквизите справочника "Документ". Пользователи видят элемент справочника, если у них есть права на этот документ (на эти документы тоже накручен сложный RLS).
В итоге создал 2 роли. Шаблоны:
1 роль. #ДляОбъекта("")
2 роль. #ДляОбъекта("Документ")
В модуле менеджера справочника "ПриЗаполненииОграниченияДоступа" такой код:
РазрешитьЧтение
|ГДЕ
| ЗначениеРазрешено(Ответственный)
| ИЛИ ЧтениеОбъектаРазрешено(Документ)
|;
|РазрешитьИзменениеЕслиРазрешеноЧтение
|ГДЕ
| ЗначениеРазрешено(Ответственный)
| ИЛИ ИзменениеОбъектаРазрешено(Документ)
ПоказатьВспомогательные данные обновил, обновление доступа на уровне записей для своего справочника прогнал. Тестирую под пользователем с этими двумя ролями. При открытии формы списка справочника получаю ошибку:
Требуется актуализировать ограничение доступа в параметрах сеанса для шаблона ДляОбъекта со значением параметра "".
Кто-нибудь из вас делал подобное, чтобы доступ был как по значению реквизита, так и по доступности другого связанного объекта. И как решали, что я сделал не так?
По теме из базы знаний
Найденные решения
Получилось сделать, нужно было наоборот оставить роль с шаблоном #ДляОбъекта("Документ").
А роль с шаблоном #ДляОбъекта("") удалить.
Странно, я думал, что в этом случае перестанут работать права по виду доступа "Пользователь" - "ЗначениеРазрешено(Ответственный)". Но все ок, работает и это, и права по связанному "Документ".
Sashares, спасибо за наводку.
А роль с шаблоном #ДляОбъекта("") удалить.
Странно, я думал, что в этом случае перестанут работать права по виду доступа "Пользователь" - "ЗначениеРазрешено(Ответственный)". Но все ок, работает и это, и права по связанному "Документ".
Sashares, спасибо за наводку.
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Получилось сделать, нужно было наоборот оставить роль с шаблоном #ДляОбъекта("Документ").
А роль с шаблоном #ДляОбъекта("") удалить.
Странно, я думал, что в этом случае перестанут работать права по виду доступа "Пользователь" - "ЗначениеРазрешено(Ответственный)". Но все ок, работает и это, и права по связанному "Документ".
Sashares, спасибо за наводку.
А роль с шаблоном #ДляОбъекта("") удалить.
Странно, я думал, что в этом случае перестанут работать права по виду доступа "Пользователь" - "ЗначениеРазрешено(Ответственный)". Но все ок, работает и это, и права по связанному "Документ".
Sashares, спасибо за наводку.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот