|
|
#1 |
|
Участник
|
Ребята, вероятно мой вопрос окажется бояном, но я честно искал и не нашел(
Итак, следующий BP: TwC: Validate access to return value from display/edit method. Вот собсна метод. X++: display Addressing address() { Addressing address; ; address=Address::find(this.TableId, this.RecId, AddressType::Delivery).Address; if(!(hasSecurityKeyAccess(securitykeyNum(My_SK), AccessType::View)) &&isConfigurationkeyEnabled(configurationkeyNum(MY_CK)) ) { throw error("@SYS57330"); } return address; }
__________________
Axapta has seduced me deadly!
|
|
|
|
|
#2 |
|
Участник
|
//BP Deviation Documented
перед названием метода влепи.
|
|
|
|
|
#3 |
|
Участник
|
Да это ясно) Просто хотелось без такой гадости, хотя посмотрел стандартный функционал, там тоже не смотря на проверки, сверху документируеццо БП. А потом всё-таки отрыл на форуме похожую тему и тут стало всё свои на места:
Цитата:
Так как дисплей/едит метод может возвращать данные с другой таблицы, к которой у вас может и не быть доступа, это предупреждение выводится, чтобы вы проверили, возможно ли такое нарушение секурити - поставили например проверку на конфигурейшен и секурити ключи.
И это чисто на совести программиста, потому что можно ситуацию исправить упомянутой уже строчкой . И, кстати, бест практис не оценивает содержимое метода, а просто всегда бросает ошибку, если видит ключевые слова дисплей/едит.
__________________
Axapta has seduced me deadly!
Последний раз редактировалось HorrR; 04.03.2008 в 16:53. |
|
|
|
|
#4 |
|
Модератор
|
__________________
-ТСЯ или -ТЬСЯ ? |
|
|
|
|
#5 |
|
Участник
|
На самом деле все ж хорошо.В том смысле, что это так специально сделано. Компилятор будет выдавать предупреждение до тех пор, пока программист не проанализирует код, и не напишет его так, чтобы учитывать права доступа. После этого он, как бы, выставляет флажок, что, мол, проверено - права учитываются. А флажок этот - это как раз этот комментарий |
|
|
|
|
#6 |
|
Участник
|
Интересно, они действительно это проверяют?
|
|
|
|
|
#7 |
|
MCTS
|
Цитата:
А флажок этот - это как раз этот комментарий
?
|
|
|
|
|
#8 |
|
Участник
|
А это не компилятор делает.
![]() Это тулзень, вызываемая во время компиляции - совсем разные вещи. Код, кстати, вдруг кто не знает, можно посмотреть/подкорректировать в классах, которые начинаются на SysBPCheck Цитата:
Сообщение от belugin
Интересно, они действительно это проверяют?
Последний раз редактировалось kashperuk; 05.03.2008 в 11:27. |
|
|
|
|
#9 |
|
MCTS
|
[offtop]
Хотел было написать "выглядит дико", но тут вспомнилось "// TODO", хотя опять же, кажется, это MS фича. Когда искал решение этой проблемы, то привел вид метода edit, в точности к виду какого-то edit метода на SYS слое, за исключением того самого комментария. Предупреждение осталось. Была мысль, что это комментарий виноват, но отбросили ее как бредовую . Пока, наконец, не заглянули на форум...[/offtop] |
|
|
|
|
#10 |
|
Участник
|
|
|
|
|
| За это сообщение автора поблагодарили: HorrR (1). | |
|
|
#11 |
|
Участник
|
Предполагаю, что со всеми TWC BP та же ситуёвина. Как минимум с тем, что ругается на Assert.
__________________
Axapta has seduced me deadly!
|
|
|