|  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, безопасность, законченный пример, права доступа, программно | 
|  | 
| 
 |