Проблема с совпадением строк в XSL - PullRequest
1 голос
/ 05 октября 2010

У меня возникла проблема отсюда:

Проблема Sharepoint, избирательное поведение?

и я думаю, что сузил проблему до этого кода XSL:

<xsl:if test="contains(translate(string(@Author),
                                 'ABCDEFGHIJKLMNOPQRSTUVWXYZ',
                                 'abcdefghijklmnopqrstuvwxyz'),
                       translate(substring-after($AuthUser,'\'),
                                 'ABCDEFGHIJKLMNOPQRSTUVWXYZ',
                                 'abcdefghijklmnopqrstuvwxyz'))">

Таким образом, проблема в том, что некоторые сотрудники, которые вводят информацию в список, не могут просмотреть ее для изменения. Этот фрагмент кода, на мой взгляд, является той частью, где приложение решает показать информацию или нет. @Author - это человек, который создал строку в списке (я думаю, что она сохранена в формате Firstname SecondName FirstLastName SecondLastName), а $ AuthUser должен выглядеть примерно так: DOMAIN\FirstName LastName.

Я пытаюсь выяснить проблему, но не могу точно сказать, что именно проверяет это условие. Кто-нибудь может мне это объяснить?

Спасибо, EtonB.

1 Ответ

0 голосов
/ 05 октября 2010

Это делает нечувствительное к регистру сравнение «содержит эту строку» (translate () переводит в нижний регистр) между битом после косой черты в $AuthUser и @Author. Поэтому, если, например, $ Author - это «MIKE SMITH», а $ AuthUser - «MyDomain \ Mike Smith», это будет совпадать.

Так как он использует функции has () вместо точного соответствия, он также будет соответствовать, я думаю, если @Author - например, «Una Jones» и $ AuthUser - это «A Jones», что кажется немного опасным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...