Отображение Документов В View (представлении) , Если Текущий Пользоват

Erlan

Member
09.04.2012
11
0
#1
Здравствуйте!
Помогите пожалуйста разобраться в чем у меня проблема.

Задача:
Отображать документы в view (представлении) только для автора и для пользователей , которых автор указал в документе.

Делал так:
В документе есть поле Автор, и Есть поле Читатели - оно Text List (allow multiple values).
При создании документа указываю других пользователей и записываю их в поле ReadersNA - поле типа Readers
В представлении делаю выборку так
SELECT((Form = "MyForm") & @Contains(ReadersNA; @UserName)) - не работает
пробывал так
SELECT((Form = "MyForm") & @IsMember(@UserName;ReadersNA) - не работает

Запихивал условие - @IsMember(@UserName;ReadersNA) в постопен представления , срабатывает правильно, но в Select (выборке) не работает.

Где я ошибся? Или может у меня подход не верный?
Заранее благодарен!
 

hosm

* so what *
18.05.2009
2 442
6
#2
http://codeby.net/forum/threads/30662.html - по ссылке, читать то, что надо для понимания работы представлений с @UserName, остальное - на досуге. Потом посмотрите, что вам удобней из предложенного. поле Readers вот у вас уже есть.
 

Kizarek86

Lotus team
20.07.2007
864
4
#3
Неверный, по сути вариантов адекватных несколько
1. В представлении отображать все документы по уровню доступа к ним (Readers/Authors поля)
2. То что делаете Вы должно быть в личных представлениях.
3. Общее представление с первой категорией по сотруднику и на PostOpen view вешать код аля @SetViewInfo([SetViewFilter]; @UserName; "имя_колонки"; @True)
 

Erlan

Member
09.04.2012
11
0
#4
Спасибо большое за подсказки
Поле READERS не правильно забивал значениями. (совсем заработался)
Теперь в поле READERS сохраняю нужных пользователей и в представлении выборку делаю только по форме а документы видны только тем пользователям кто указан в поле типа READERS и Author

С наступающим новым годом !
 

ty3uk

Well-known member
31.03.2008
170
0
#5
Спасибо большое за подсказки
Поле READERS не правильно забивал значениями. (совсем заработался)
Теперь в поле READERS сохраняю нужных пользователей и в представлении выборку делаю только по форме а документы видны только тем пользователям кто указан в поле типа READERS и Author
А автор топика точно понимает смысл этих полей? Поля типа "Ридерс", это не те поля, которыми ограничивается видимость документов в вьюхе, это поле, которым ораничивается видимость для субъектов вообще. К примеру, если в списке видимости нет сервера, то у вас будут крайне большие проблемы.
Надо понимать что вы хотите делать, правильно сделать представления или настроить безопасность. В данный момент, вы вышли к решению безопасности (ещё вопрос о том, корректно-ли вы его сделали), но не решили вопрос с вьюхами.

По полю типа "авторы". Работает исключительно для тех людей, у которых доступ до базы на уровне авторов (т.е. если уровень редактор и выше, то данное поле работать не будет, пользователь сможет изменять документ, аналогично, если уровень у пользователя ридер и ниже, он сможет только просматривать документ). Т.е. это очердное ограничение по безопасности. Смысл достаточно простой (как ранее написал работает исключительно для пользователей/серверов/групп с уровнем доступа в ACL=автор), если пользователь есть в списке авторов, то он может изменять документ, иначе банан (типичная ошибка новичков, человек создаёт документ, но после его сохранения не может его редактировать.)

Если вам нужно именно выборка в представление, то категорически реккомендую воспользоваться советом kizarek, т.е. использовать @SetViewInfo Как вариант, можете воспользоваться приватными вьюхами/папками (в них работает выборка по имени пользователя, но такие вьюхи, лично у меня, крайне часто ломаются, и чинить их достаточно сложно)
 

Erlan

Member
09.04.2012
11
0
#6
А автор топика точно понимает смысл этих полей? Поля типа "Ридерс", это не те поля, которыми ограничивается видимость документов в вьюхе, это поле, которым ораничивается видимость для субъектов вообще. К примеру, если в списке видимости нет сервера, то у вас будут крайне большие проблемы.
Надо понимать что вы хотите делать, правильно сделать представления или настроить безопасность. В данный момент, вы вышли к решению безопасности (ещё вопрос о том, корректно-ли вы его сделали), но не решили вопрос с вьюхами.

По полю типа "авторы". Работает исключительно для тех людей, у которых доступ до базы на уровне авторов (т.е. если уровень редактор и выше, то данное поле работать не будет, пользователь сможет изменять документ, аналогично, если уровень у пользователя ридер и ниже, он сможет только просматривать документ). Т.е. это очердное ограничение по безопасности. Смысл достаточно простой (как ранее написал работает исключительно для пользователей/серверов/групп с уровнем доступа в ACL=автор), если пользователь есть в списке авторов, то он может изменять документ, иначе банан (типичная ошибка новичков, человек создаёт документ, но после его сохранения не может его редактировать.)

Если вам нужно именно выборка в представление, то категорически реккомендую воспользоваться советом kizarek, т.е. использовать @SetViewInfo Как вариант, можете воспользоваться приватными вьюхами/папками (в них работает выборка по имени пользователя, но такие вьюхи, лично у меня, крайне часто ломаются, и чинить их достаточно сложно)
Спасибо за разъяснения. Буду делать через @SetViewInfo.
 
30.05.2006
1 345
11
#7
..
По полю типа "авторы". Работает исключительно для тех людей, у которых доступ до базы на уровне авторов (т.е. если уровень редактор и выше, то данное поле работать не будет, пользователь сможет изменять документ, аналогично, если уровень у пользователя ридер и ниже, он сможет только просматривать документ).
Не совсем так. По поводу прав редактирования - Вы правы (действует только на юзеров с уровнем Автор).
НО: поля типа Authors логически дополняют поля типа Readers и, таким образом, влияют на ВСЕХ пользователей