• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

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

  • Автор темы Erlan
  • Дата начала
E

Erlan

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

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

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

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

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

hosm

https://codeby.net/threads/30662.html - по ссылке, читать то, что надо для понимания работы представлений с @UserName, остальное - на досуге. Потом посмотрите, что вам удобней из предложенного. поле Readers вот у вас уже есть.
 

Kizarek86

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

Erlan

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

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

ty3uk

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

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

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

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

Erlan

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

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

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

Обучение наступательной кибербезопасности в игровой форме. Начать игру!