AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
DAX
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 27.10.2010, 16:05   #1  
Arahnid is offline
Arahnid
Участник
 
880 / 60 (4) ++++
Регистрация: 09.08.2005
Адрес: Moscow
RLS и ручная настройка ограничений
Настраиваю руками видимость на форме в DS в методе executeQuery

X++:
    if (t == 0)
    {
        qbds1.clearRange(fieldNum(,));
        qbdsrange1 = qbds1.addRange(fieldNum(,));
        qbdsrange1.value(sysQuery::value(curExt()));
        qbdsrange1.status(1);

    }
Но если пользователь войдет и руками через Найти укажет * по полю, то фильтр слетает.
Если настраивается RLS, то все хорошо. Вопрос, как сделать так, чтобы фильтр по полю не слетал?
Способ запретить функцию Найти не выход.
Старый 27.10.2010, 16:17   #2  
BOAL is offline
BOAL
Участник
Аватар для BOAL
MCBMSS
Злыдни
1C
Лучший по профессии 2015
 
619 / 453 (17) +++++++
Регистрация: 28.04.2003
Адрес: Москва
А чем РЛС не выход?
Если речь о штучной форме, то нужно
1 проверять и перекрывать рандж на нужный
или
2 сделать еще другое поле на таблице и по нему рандж скрытый, чтоб его нельзя было выбрать в фильтре и он всегда работал все равно, а поле скрыть.
Но это все же изврат, тк РЛС есть.
Старый 27.10.2010, 16:28   #3  
Arahnid is offline
Arahnid
Участник
 
880 / 60 (4) ++++
Регистрация: 09.08.2005
Адрес: Moscow
Да, пасибо. Ожидаемый ответ, но хотелось еще мнение услышать.

RLS не выход, там много групп прав и итак висит кучка ограничений на видимость, да еще и все гуляют по разным компаниям.
Старый 27.10.2010, 16:33   #4  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,875 / 3123 (112) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от BOAL Посмотреть сообщение
А чем РЛС не выход?
Если речь о штучной форме, то нужно
1 проверять и перекрывать рандж на нужный
или
2 сделать еще другое поле на таблице и по нему рандж скрытый, чтоб его нельзя было выбрать в фильтре и он всегда работал все равно, а поле скрыть.
Но это все же изврат, тк РЛС есть.
если речь о 3-ке, то единственный гарантированный способ - это в методе Executequery перед super() чистить все Range() по данному полю и устанавливать свой. Тогда комар носа не подточит и фильтр нельзя обойти. Иначе есть обходные пути из-за дырок в ядре, например сделать на поле команду "Фильтр" через правую кнопку мыши - это гарантированно ставит range по полю несмотря на все запреты. А этот range уже можно подредактировать как нам надо и тем самым все-таки увидеть запрещенные записи. С ExecuteQuery такой номер не прокатывает.

Последний раз редактировалось Logger; 27.10.2010 в 16:42.
Старый 27.10.2010, 16:53   #5  
Arahnid is offline
Arahnid
Участник
 
880 / 60 (4) ++++
Регистрация: 09.08.2005
Адрес: Moscow
Ясно, тогда останавливаюсь пока на запрете поиска по нужному полю и тогда фильтр в Executequery снять нельзя с этого поля.
Старый 27.10.2010, 17:14   #6  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,875 / 3123 (112) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от Arahnid Посмотреть сообщение
Ясно, тогда останавливаюсь пока на запрете поиска по нужному полю и тогда фильтр в Executequery снять нельзя с этого поля.
Зачем ?
Может людям искать надо.
Поставьте код на ExecuteQuery и все будет нормально.
Старый 27.10.2010, 21:03   #7  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,429 / 1772 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Можно программно (например в том же ExecuteQuery) присоеденить к таблице источника данных exists join'ом ту же самую таблицу. И все системные ограничения вешать уже на добавленную таблицу, а пользователи пусть себе фильтруют основную (больше, чем позволит exist join, они всё равно не увидят)
За это сообщение автора поблагодарили: BOAL (3).
Старый 27.10.2010, 22:24   #8  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,158 / 1286 (47) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Пожалейте хоть админа и консультантов, которым настраивать все эти доступы/видимости.
Что за версия?
Если DAX2009?, то там есть возможность в RLS добавлять некоторые функции. Если до 2009, то на форуме есть проект, позволяющий реализовывать RLS для подчиненных датасорсов.
Цитата:
там много групп прав и итак висит кучка ограничений на видимость
Не верю, что все эти группы нельзя классифицировать (учти, что я работаю на клиенте и приходилось реализовывать совершенно бредовые требования по видимости). Так что, приведи пример, в котором RLS не хватает.
За это сообщение автора поблагодарили: Ivanhoe (1).
Теги
rls

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Gustav: Unsorted, или Записки DAX-дилетанта - II Gustav DAX Blogs 39 20.05.2009 15:34
Права доступа (настройка RLS) mdconsult DAX: Программирование 2 29.12.2008 15:31
RLS+Обычная настройка прав gefr DAX: Администрирование 3 05.10.2007 18:41
Настройка RLS для представлений (Views) SAMmsk DAX: Функционал 5 17.05.2007 16:45
Проблема с RLS и SecurityKey. oip DAX: Программирование 3 22.12.2005 17:26

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 08:33.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.