04.03.2008, 16:19 | #1 |
Участник
|
TwC: Validate access to return value from display/edit method.
Ребята, вероятно мой вопрос окажется бояном, но я честно искал и не нашел(
Итак, следующий 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! |
|
04.03.2008, 16:29 | #2 |
Участник
|
//BP Deviation Documented
перед названием метода влепи. |
|
04.03.2008, 16:42 | #3 |
Участник
|
Да это ясно) Просто хотелось без такой гадости, хотя посмотрел стандартный функционал, там тоже не смотря на проверки, сверху документируеццо БП. А потом всё-таки отрыл на форуме похожую тему и тут стало всё свои на места:
Цитата:
Так как дисплей/едит метод может возвращать данные с другой таблицы, к которой у вас может и не быть доступа, это предупреждение выводится, чтобы вы проверили, возможно ли такое нарушение секурити - поставили например проверку на конфигурейшен и секурити ключи.
И это чисто на совести программиста, потому что можно ситуацию исправить упомянутой уже строчкой . И, кстати, бест практис не оценивает содержимое метода, а просто всегда бросает ошибку, если видит ключевые слова дисплей/едит.
__________________
Axapta has seduced me deadly! Последний раз редактировалось HorrR; 04.03.2008 в 16:53. |
|
04.03.2008, 18:03 | #4 |
Модератор
|
__________________
-ТСЯ или -ТЬСЯ ? |
|
04.03.2008, 18:22 | #5 |
Участник
|
На самом деле все ж хорошо.
В том смысле, что это так специально сделано. Компилятор будет выдавать предупреждение до тех пор, пока программист не проанализирует код, и не напишет его так, чтобы учитывать права доступа. После этого он, как бы, выставляет флажок, что, мол, проверено - права учитываются. А флажок этот - это как раз этот комментарий |
|
04.03.2008, 19:32 | #6 |
Участник
|
Интересно, они действительно это проверяют?
|
|
04.03.2008, 20:04 | #7 |
MCTS
|
Цитата:
А флажок этот - это как раз этот комментарий
|
|
04.03.2008, 23:56 | #8 |
Участник
|
А это не компилятор делает.
Это тулзень, вызываемая во время компиляции - совсем разные вещи. Код, кстати, вдруг кто не знает, можно посмотреть/подкорректировать в классах, которые начинаются на SysBPCheck Цитата:
Сообщение от belugin
Интересно, они действительно это проверяют?
Последний раз редактировалось kashperuk; 05.03.2008 в 11:27. |
|
05.03.2008, 11:22 | #9 |
MCTS
|
[offtop]
Хотел было написать "выглядит дико", но тут вспомнилось "// TODO", хотя опять же, кажется, это MS фича. Когда искал решение этой проблемы, то привел вид метода edit, в точности к виду какого-то edit метода на SYS слое, за исключением того самого комментария. Предупреждение осталось. Была мысль, что это комментарий виноват, но отбросили ее как бредовую . Пока, наконец, не заглянули на форум... [/offtop] |
|
05.03.2008, 11:48 | #10 |
Участник
|
|
|
|
За это сообщение автора поблагодарили: HorrR (1). |
05.03.2008, 12:17 | #11 |
Участник
|
Предполагаю, что со всеми TWC BP та же ситуёвина. Как минимум с тем, что ругается на Assert.
__________________
Axapta has seduced me deadly! |
|