Веб-просмотр Lotus Domino - должен показывать только документы текущего пользователя - но показывает больше?
-
05-07-2019 - |
Вопрос
Я работаю над веб-приложением Lotus Domino, и у меня есть представление, в котором должны отображаться только документы текущего пользователя.Я знаю, что это не самое лучшее для сервера, потому что он должен продолжать вычислять это, но это требование...
Это формула выбора вида, которую я использую:
ВЫБЕРИТЕ (Форма= "Атомарный запрос" | Form= "Атомный запрос") и @Name([CN];RequestAuthor) = @Name([CN];@UserName)
Поле RequestAuthor - это вычисляемое при составлении поле, которое фиксирует имя автора.
Выбор вида для меня работает нормально, но другие пользователи могут видеть документы других пользователей в этом представлении.
Вероятно, я упускаю из виду что-то очевидное....
Есть какие-нибудь предложения?
Дерек
Решение
Я преобразовал представление в категоризированное представление, классифицированное по имени автора.
Затем я встроил представление в форму шаблона просмотра, настроив его на отображение одной категории.
Единственная категория - это имя пользователя.
Кажется, это сделало свое дело..
Другие советы
требуется ли вам, чтобы пользователь мог видеть документы, отличные от его собственных (я имею в виду, за пределами этого представления)?
Если нет, то используйте поле "Читатели" в документах, чтобы ограничить круг лиц, которые могут видеть каждый документ.
Тогда вам не понадобится @Name([CN];RequestAuthor) = @Name([CN];@UserName)
часть формулы выбора.
В противном случае, если вам действительно нужно, чтобы пользователи могли видеть документы, отличные от их собственных, выбранный вами встроенный категоризированный подход, вероятно, самый чистый.
Решение LRE - хорошее.Но с точки зрения дизайна, не используйте @UserName или @Now или @today в формуле выбора вида, это вызывает серьезные проблемы с производительностью вашей базы данных и сервера.
Каждый раз, когда вы открываете представление, сервер будет перестраивать индекс.Если вам действительно нужно использовать информацию о конкретном пользователе, создайте запланированный агент, который установит значение в поле, а затем будет ссылаться на это поле как на часть формулы просмотра.Просто не используйте какие-либо динамические функции "@" в формуле представления, которые изменили бы критерии.