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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 01.03.2006, 17:53   #1  
DreamCreator is offline
DreamCreator
Moderator
Аватар для DreamCreator
Axapta Retail User
 
553 / 45 (3) +++
Регистрация: 04.11.2004
Адрес: Казань
Распознание прав программно
Добрый день!

Задача такая: на некоторых таблицах при попытке их просмотреть (обозревателем таблиц) вылезает сообщение о том что недостаточно прав на просмотр. Вопрос : как этот момент (о том что прав нехватает) поймать программно?

Т.е. перебираю таблицы, если права есть -- обрабатываю, если нет -- перехожу к следующей.
Старый 01.03.2006, 18:12   #2  
macklakov is offline
macklakov
NavAx
Аватар для macklakov
 
2,249 / 980 (37) +++++++
Регистрация: 03.04.2002
Не получится, т.к.:
1. исключение Internal, т.е. в ядре
2. если бы была такая возможность, ничего не стоило бы отменить подобную проверку и тем испртить политику лицензирования
__________________
Isn't it nice when things just work?
Старый 01.03.2006, 18:18   #3  
Jabberwocky is offline
Jabberwocky
Microsoft Dynamics
Аватар для Jabberwocky
Сотрудники Microsoft Dynamics
 
274 / 307 (11) ++++++
Регистрация: 02.09.2005
Адрес: Москва
Например так:
Код:
DictTable dt = new DictTable(tableNum(LedgerTable));
;
if (hasSecuritykeyAccess(dt.securityKeyId(), AccessType::Add))
{
........
}
За это сообщение автора поблагодарили: DreamCreator (1).
Старый 01.03.2006, 18:20   #4  
macklakov is offline
macklakov
NavAx
Аватар для macklakov
 
2,249 / 980 (37) +++++++
Регистрация: 03.04.2002
Хотя, если в классе sysTableBrowser самостоятельно проверять до вызова формы, т.е. до проверки...
А что ты собираешься делать, когда перехватишь?
__________________
Isn't it nice when things just work?

Последний раз редактировалось macklakov; 01.03.2006 в 18:22.
Старый 01.03.2006, 19:10   #5  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
А это точно проверка доступности таблицы не ключа доступа в целом?
X++:
DictTable dt = new DictTable(tableNum(LedgerTable));
;
if (hasSecuritykeyAccess(dt.securityKeyId(), AccessType::Add))
{
........
}
Старый 02.03.2006, 09:14   #6  
raz is offline
raz
NavAx
Аватар для raz
NavAx Club
Лучший по профессии 2014
Лучший по профессии 2009
 
1,494 / 1065 (38) ++++++++
Регистрация: 22.07.2003
Адрес: МО
WebLet::hasTableAccess(...)
За это сообщение автора поблагодарили: Gustav (3).
Старый 02.03.2006, 09:19   #7  
DreamCreator is offline
DreamCreator
Moderator
Аватар для DreamCreator
Axapta Retail User
 
553 / 45 (3) +++
Регистрация: 04.11.2004
Адрес: Казань
Спасибо большое! Сейчас поэксперементирую!
Старый 02.03.2006, 09:21   #8  
DreamCreator is offline
DreamCreator
Moderator
Аватар для DreamCreator
Axapta Retail User
 
553 / 45 (3) +++
Регистрация: 04.11.2004
Адрес: Казань
Цитата:
Сообщение от macklakov
А что ты собираешься делать, когда перехватишь?
Хочу обновить поля статистики (автор, время, дата создания модифкации), а на многие таблицы нет лицензии, подозреваю что исключение у меня вылетает именно на них!
Старый 02.03.2006, 10:59   #9  
vallys is offline
vallys
Developer
 
146 / 108 (0) +++++
Регистрация: 18.01.2005
Цитата:
Сообщение от raz
WebLet::hasTableAccess(...)
оказалось, что WebLet::hasTableAccess(...) функционально идентична Global::isTableUserEnabled(...)
За это сообщение автора поблагодарили: DreamCreator (1), Gustav (2).
Старый 02.03.2006, 12:07   #10  
macklakov is offline
macklakov
NavAx
Аватар для macklakov
 
2,249 / 980 (37) +++++++
Регистрация: 03.04.2002
Цитата:
Сообщение от DreamCreator
Хочу обновить поля статистики (автор, время, дата создания модифкации), а на многие таблицы нет лицензии, подозреваю что исключение у меня вылетает именно на них!
Правильно ли я понимаю, что ты кода их меняешь? Но тогда обозреватель таблиц здесь не причем.
__________________
Isn't it nice when things just work?
Старый 02.03.2006, 13:55   #11  
DreamCreator is offline
DreamCreator
Moderator
Аватар для DreamCreator
Axapta Retail User
 
553 / 45 (3) +++
Регистрация: 04.11.2004
Адрес: Казань
Меняю свойтва на таблице, такие как ModifiedBy, CreatedBy.
Обозреватель, да, не при чем, но при попытке открыть обозревателем видно что нет прав. А это мне как раз и хотелось отследить!
Старый 02.03.2006, 14:01   #12  
macklakov is offline
macklakov
NavAx
Аватар для macklakov
 
2,249 / 980 (37) +++++++
Регистрация: 03.04.2002
Тогда тебе должно помочь DictTable.configurationKeyId, а затем DictConfigurationKey.enabled
__________________
Isn't it nice when things just work?
Старый 02.03.2006, 14:27   #13  
raz is offline
raz
NavAx
Аватар для raz
NavAx Club
Лучший по профессии 2014
Лучший по профессии 2009
 
1,494 / 1065 (38) ++++++++
Регистрация: 22.07.2003
Адрес: МО
Цитата:
Сообщение от DreamCreator
Хочу обновить поля статистики (автор, время, дата создания модифкации), а на многие таблицы нет лицензии, подозреваю что исключение у меня вылетает именно на них!
ИМХО, все права работают только на отображение, а в коде они не работают (только RLS можно вкл/выкл в запросах). Т.е. проблема прав и лицензий тут не причем.

Сейчас попробовал небольшой Job, в котором в таблицу, на которую отсутствует лицензия, вставил запись и удалил.
Старый 02.03.2006, 14:54   #14  
ALES is offline
ALES
Участник
Злыдни
 
220 / 45 (2) +++
Регистрация: 11.08.2004
Цитата:
Сообщение от raz
Сейчас попробовал небольшой Job, в котором в таблицу, на которую отсутствует лицензия, вставил запись и удалил.
И что у вас в базе при этом произошло ?
Старый 02.03.2006, 14:58   #15  
KSS is offline
KSS
Коллективное бессознательn ое
 
116 / 10 (1) +
Регистрация: 09.12.2002
Адрес: Москва
Цитата:
Сообщение от raz
ИМХО, все права работают только на отображение, а в коде они не работают (только RLS можно вкл/выкл в запросах). Т.е. проблема прав и лицензий тут не причем.

Сейчас попробовал небольшой Job, в котором в таблицу, на которую отсутствует лицензия, вставил запись и удалил.
А вы еще возьмите, закрытую таблицу (структуру) выгрузите проектом в файл, а потом загрузите обратно переписав все и попробуйте опять ее открыть.
Будет вам маленькое чудо
__________________
Жизнь такова, какова она есть и больше никакова.
Старый 02.03.2006, 15:11   #16  
macklakov is offline
macklakov
NavAx
Аватар для macklakov
 
2,249 / 980 (37) +++++++
Регистрация: 03.04.2002
Цитата:
Сообщение от raz
ИМХО, все права работают только на отображение, а в коде они не работают (только RLS можно вкл/выкл в запросах). Т.е. проблема прав и лицензий тут не причем.

Сейчас попробовал небольшой Job, в котором в таблицу, на которую отсутствует лицензия, вставил запись и удалил.
Очень даже причем. Таких таблиц в базе вообще не должно быть. А то, что job отрабатывает без ошибок, не означает, что он действительно сделал то, что от него просили
Цитата:
Сообщение от KSS
А вы еще возьмите, закрытую таблицу (структуру) выгрузите проектом в файл, а потом загрузите обратно переписав все и попробуйте опять ее открыть.
Будет вам маленькое чудо
У меня чуда не произошло, таблица в базе не появилась.
__________________
Isn't it nice when things just work?

Последний раз редактировалось macklakov; 02.03.2006 в 15:37.
Старый 02.03.2006, 15:24   #17  
raz is offline
raz
NavAx
Аватар для raz
NavAx Club
Лучший по профессии 2014
Лучший по профессии 2009
 
1,494 / 1065 (38) ++++++++
Регистрация: 22.07.2003
Адрес: МО
Цитата:
Сообщение от macklakov
У меня чуда не произошло, таблица в базе не появилась.
Согласен, не досмотрел. Однако и ошибки не произошло, т.е. права доступа тут не причем и права доступа в коде не работают.
Если вернуться к Job-у, то, видимо, ядро в соответсвии с кофигурационными ключами отсекает данные (таблицы, поля) при работе с сервером БД, хотя в коде они доступны.
Старый 02.03.2006, 15:30   #18  
macklakov is offline
macklakov
NavAx
Аватар для macklakov
 
2,249 / 980 (37) +++++++
Регистрация: 03.04.2002
Цитата:
Сообщение от raz
Согласен, не досмотрел. Однако и ошибки не произошло, т.е. права доступа тут не причем и права доступа в коде не работают.
Если вернуться к Job-у, то, видимо, ядро в соответсвии с кофигурационными ключами отсекает данные (таблицы, поля) при работе с сервером БД, хотя в коде они доступны.
Подозреваю, что система все же проверяет права, но блокирует вывод подобных ошибок, просто ничего не делает.
__________________
Isn't it nice when things just work?
Старый 02.03.2006, 15:31   #19  
KSS is offline
KSS
Коллективное бессознательn ое
 
116 / 10 (1) +
Регистрация: 09.12.2002
Адрес: Москва
Цитата:
Сообщение от macklakov
Сообщение от KSS
ИМХО, все права работают только на отображение, а в коде они не работают (только RLS можно вкл/выкл в запросах). Т.е. проблема прав и лицензий тут не причем.

Сейчас попробовал небольшой Job, в котором в таблицу, на которую отсутствует лицензия, вставил запись и удалил.
Это не моя цитата, кстати, вы перепутали
__________________
Жизнь такова, какова она есть и больше никакова.
Старый 02.03.2006, 15:52   #20  
raz is offline
raz
NavAx
Аватар для raz
NavAx Club
Лучший по профессии 2014
Лучший по профессии 2009
 
1,494 / 1065 (38) ++++++++
Регистрация: 22.07.2003
Адрес: МО
Цитата:
Сообщение от KSS
Это не моя цитата, кстати, вы перепутали
Возможно. Хотя еще раз повторю, записи вставил и удалил. Более того записи вставились и удалились. Из-за отсутствия лицензии (точнее конфигурационного ключа) таблица отработала как временная, но RecId сгенерировался и при выборке вставленных записей прекрасно отобрался, хотя остальные поля ядром почистились.
Теги
download, faq, безопасность, законченный пример, права доступа, программно

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Расширение возможностей стандартных прав доступа Stainless DAX: Программирование 2 19.06.2008 10:36
RLS+Обычная настройка прав gefr DAX: Администрирование 3 05.10.2007 18:41
при построении перекрёстных ссылок выдаётся сообщение об ошибках mmmax DAX: Программирование 10 21.01.2005 12:42
Как программно изменить к-во в строке заказа в форме SalesTable BorDark DAX: Программирование 2 13.01.2005 17:02
Проблемы настройки прав доступа пользователям axot DAX: Администрирование 25 16.05.2002 10:47

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 23:25.