![]() |
#1 |
Moderator
|
Распознание прав программно
Добрый день!
Задача такая: на некоторых таблицах при попытке их просмотреть (обозревателем таблиц) вылезает сообщение о том что недостаточно прав на просмотр. Вопрос : как этот момент (о том что прав нехватает) поймать программно? ![]() Т.е. перебираю таблицы, если права есть -- обрабатываю, если нет -- перехожу к следующей. |
|
![]() |
#2 |
NavAx
|
Не получится, т.к.:
1. исключение Internal, т.е. в ядре 2. если бы была такая возможность, ничего не стоило бы отменить подобную проверку и тем испртить политику лицензирования
__________________
Isn't it nice when things just work? |
|
![]() |
#3 |
Microsoft Dynamics
|
Например так:
Код: DictTable dt = new DictTable(tableNum(LedgerTable)); ; if (hasSecuritykeyAccess(dt.securityKeyId(), AccessType::Add)) { ........ } |
|
|
За это сообщение автора поблагодарили: DreamCreator (1). |
![]() |
#4 |
NavAx
|
Хотя, если в классе sysTableBrowser самостоятельно проверять до вызова формы, т.е. до проверки...
А что ты собираешься делать, когда перехватишь?
__________________
Isn't it nice when things just work? Последний раз редактировалось macklakov; 01.03.2006 в 18:22. |
|
![]() |
#5 |
Участник
|
А это точно проверка доступности таблицы не ключа доступа в целом?
X++: DictTable dt = new DictTable(tableNum(LedgerTable)); ; if (hasSecuritykeyAccess(dt.securityKeyId(), AccessType::Add)) { ........ } |
|
![]() |
#6 |
NavAx
|
WebLet::hasTableAccess(...)
|
|
|
За это сообщение автора поблагодарили: Gustav (3). |
![]() |
#7 |
Moderator
|
Спасибо большое! Сейчас поэксперементирую!
|
|
![]() |
#8 |
Moderator
|
Цитата:
Сообщение от macklakov
А что ты собираешься делать, когда перехватишь?
|
|
![]() |
#9 |
Developer
|
Цитата:
Сообщение от raz
WebLet::hasTableAccess(...)
![]() |
|
|
За это сообщение автора поблагодарили: DreamCreator (1), Gustav (2). |
![]() |
#10 |
NavAx
|
Цитата:
Сообщение от DreamCreator
Хочу обновить поля статистики (автор, время, дата создания модифкации), а на многие таблицы нет лицензии, подозреваю что исключение у меня вылетает именно на них!
__________________
Isn't it nice when things just work? |
|
![]() |
#11 |
Moderator
|
Меняю свойтва на таблице, такие как ModifiedBy, CreatedBy.
Обозреватель, да, не при чем, но при попытке открыть обозревателем видно что нет прав. А это мне как раз и хотелось отследить! |
|
![]() |
#12 |
NavAx
|
Тогда тебе должно помочь DictTable.configurationKeyId, а затем DictConfigurationKey.enabled
__________________
Isn't it nice when things just work? |
|
![]() |
#13 |
NavAx
|
Цитата:
Сообщение от DreamCreator
Хочу обновить поля статистики (автор, время, дата создания модифкации), а на многие таблицы нет лицензии, подозреваю что исключение у меня вылетает именно на них!
Сейчас попробовал небольшой Job, в котором в таблицу, на которую отсутствует лицензия, вставил запись и удалил. |
|
![]() |
#14 |
Участник
|
Цитата:
Сообщение от raz
Сейчас попробовал небольшой Job, в котором в таблицу, на которую отсутствует лицензия, вставил запись и удалил.
|
|
![]() |
#15 |
Коллективное бессознательn ое
|
Цитата:
Сообщение от raz
ИМХО, все права работают только на отображение, а в коде они не работают (только RLS можно вкл/выкл в запросах). Т.е. проблема прав и лицензий тут не причем.
Сейчас попробовал небольшой Job, в котором в таблицу, на которую отсутствует лицензия, вставил запись и удалил. Будет вам маленькое чудо ![]()
__________________
Жизнь такова, какова она есть и больше никакова. |
|
![]() |
#16 |
NavAx
|
Цитата:
Сообщение от raz
ИМХО, все права работают только на отображение, а в коде они не работают (только RLS можно вкл/выкл в запросах). Т.е. проблема прав и лицензий тут не причем.
Сейчас попробовал небольшой Job, в котором в таблицу, на которую отсутствует лицензия, вставил запись и удалил. ![]() Цитата:
Сообщение от KSS
А вы еще возьмите, закрытую таблицу (структуру) выгрузите проектом в файл, а потом загрузите обратно переписав все и попробуйте опять ее открыть.
Будет вам маленькое чудо ![]() ![]()
__________________
Isn't it nice when things just work? Последний раз редактировалось macklakov; 02.03.2006 в 15:37. |
|
![]() |
#17 |
NavAx
|
Цитата:
Сообщение от macklakov
У меня чуда не произошло, таблица в базе не появилась.
![]() Если вернуться к Job-у, то, видимо, ядро в соответсвии с кофигурационными ключами отсекает данные (таблицы, поля) при работе с сервером БД, хотя в коде они доступны. |
|
![]() |
#18 |
NavAx
|
Цитата:
Сообщение от raz
Согласен, не досмотрел. Однако и ошибки не произошло, т.е. права доступа тут не причем и права доступа в коде не работают.
Если вернуться к Job-у, то, видимо, ядро в соответсвии с кофигурационными ключами отсекает данные (таблицы, поля) при работе с сервером БД, хотя в коде они доступны.
__________________
Isn't it nice when things just work? |
|
![]() |
#19 |
Коллективное бессознательn ое
|
Цитата:
Сообщение от macklakov
Сообщение от KSS
ИМХО, все права работают только на отображение, а в коде они не работают (только RLS можно вкл/выкл в запросах). Т.е. проблема прав и лицензий тут не причем. Сейчас попробовал небольшой Job, в котором в таблицу, на которую отсутствует лицензия, вставил запись и удалил. ![]()
__________________
Жизнь такова, какова она есть и больше никакова. |
|
![]() |
#20 |
NavAx
|
Цитата:
Сообщение от KSS
Это не моя цитата, кстати, вы перепутали
![]() |
|
Теги |
download, faq, безопасность, законченный пример, права доступа, программно |
|
|