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