Динамическая формула по отбору документов. Миф или реальность?

yerke

Well-known member
28.08.2007
392
0
#1
Здравствуйте.
У меня вот такой вопрос. Как можно сделать так чтобы, при открытий вьюшки там динамически менялся формула отбора документов в зависимости от ролей? Возможно, ли это вообще? Например: если юзер, который имеет роль [GEF], открывает эту вьюшку, то он должен видеть только студентов географо-экологического факультета. Т.е. формула отбора должна выглядеть так:
SELECT Form=”Student” & Faculty=”Географо-экологический”.
Соответственно, если эту вьюшку открывает другой юзер, имеющий роль, например, [IST], то он должен видет студентов исторического факультета, то есть формула должна меняться в
SELECT Form=”Student” & Faculty=”Исторический”.
При решении этого вопроса пробовали использовать файл Notes.ini, для того чтобы хранить временные переменные и процедуры @SetEnvironment и @Environment. Что-то не получается. Работаю на версии R5. Может из-за этого?
P.S.
А динамически отбор документов надо для того чтобы уменьшить количество вьюшек. Например, если универе 10 факультетов и требуется 3 вида вьюшек, то придется создавать 30 представлений.
 

DNT

Постоялец форума
Lotus team
12.10.2005
594
2
#2
Для: yerke

Используй поля "Readers", "Editors" в документах и будет все орлайт.
 

morpheus

скриптописец
07.08.2006
3 915
1
#3
Для: yerke
Не верте ув. DNT - хватить полей типа Readers
можете почитать примерчик тут
 

yerke

Well-known member
28.08.2007
392
0
#4
Дорогой, Morpheus! Можете подробнее написать, как будет осуществляться отбор документов во вьюшке, если значение полей одного документа: Readers=”[IST]” и Faculty=”Исторический”, а следующего документа: Readers=”[URI]” и Faculty=”Юридический”?
Как будет выглядеть формула отбора?
Select Form=”Student” & @IsMember(Readers; @UserRoles) или
Select Form=”Student” & @Contains(Readers; @UserRoles)
Так что ли, или как то по-другому?
 
F

fvoice

#5
Для: yerke
Если пользователь не имеет ни одной роли, указанной в поле Readers, то он не сможет увидеть документ, соответственно формулу отбора можно оставить:
Код:
Select Form=”Student”
Дополнительно почитайте раздел "Using a Readers field to restrict access to specific documents" в хелпе.
 

morpheus

скриптописец
07.08.2006
3 915
1
#6
Для: yerke
Поймите самое главное, Если реч идёт об полях ридерс то не надо писать это в одборе
если человек не указан в поле ридерс ( или его группа, или роль ) то человек попросто НЕ УВИДЕТ документ вообще как таковой
 
30.05.2006
1 345
11
#7
А динамически отбор документов надо для того чтобы уменьшить количество вьюшек. Например, если универе 10 факультетов и требуется 3 вида вьюшек, то придется создавать 30 представлений.
Ой... Как вы себе представляете, что произойдет, если одну вьюшку одновременно откроют [GEF] и [IST]?
Что она ДОЛЖНА содержать?

ЗЫ: издержки воспитания на персональных вычислениях. А тут - сервер, разделяемые ресурсы, конкурентный доступ etc
 
G

Guest

#8
В каком смысле дновременно? Если 2 человека с разными ролями то 1 увидит одно а 2 другое. Если же у человека есть обе роли то во вьюхе будут и те и другие студенты. По поводу 30 вьюх это сильно конечно. Сегодня 10 факультетов а завтра 10 факультетов*10 кафедр*2 группы... Неужели столько вьюх будет? :)
 
30.05.2006
1 345
11
#9
В каком смысле дновременно? Если 2 человека с разными ролями то 1 увидит одно а 2 другое.
Ни фига. В постановке инициатора темы при каждом открытии вьюхи она будет генерироваться заново в соотв. с ролью очередного юзера (это действительно осуществимо, именно через notes.ini Я когда-то еще в 4-ке делал). А вот что при этом увидит предыдущий юзер (не закрывший вьюху), и как себя будет чувствовать сервер (вынужденный по каждому клику перелопачивать ВСЮ базу? :rolleyes: ) Да уж.. АкАномия
 
G

Guest

#10
Так похоже я что то недопонял... Есть 2 человека: у одного роль1 у второго роль2. Допустим они обращаются к вьюхе с разных компов или с одного, но при этом под разными ИД. В результате первый увидит то что положено ему, а второе - то что ему. На то и существует чудесное поле ридерс.Вот что требовалось:
<!--QuoteBegin-yerke+4:09:2007, 16:14 -->
<span class="vbquote">(yerke @ 4:09:2007, 16:14 )</span><!--QuoteEBegin-->Например: если юзер, который имеет роль [GEF], открывает эту вьюшку, то он должен видеть только студентов географо-экологического факультета.
[snapback]77202" rel="nofollow" target="_blank[/snapback]​
[/quote]
Если в поле ридерс пользователь прописан, он увидит документ, не прописан - не увидит. Зачем базу то всю лопатить?
 
N
#11
Для: yerke

А ничего, что у меня дедушка на фронте ВОв воевал?

Для: Constantin A Chervonenko

Мда... Вы бы, уважаемый гуру, лучше бы человеку посоветовали, объяснили, показали, рассказали, а то только все запутали....
 
G

Guest

#12
<!--QuoteBegin-nor+6:09:2007, 11:50 -->
<span class="vbquote">(nor @ 6:09:2007, 11:50 )</span><!--QuoteEBegin-->А ничего, что у меня дедушка на фронте ВОв воевал?
[snapback]77356" rel="nofollow" target="_blank[/snapback]​
[/quote]
Полностью поддерживаю!!! Не дело это - иметь такой аватар :rolleyes:
 

morpheus

скриптописец
07.08.2006
3 915
1
#13
<!--QuoteBegin-nor+6:09:2007, 10:50 -->
<span class="vbquote">(nor @ 6:09:2007, 10:50 )</span><!--QuoteEBegin-->А ничего, что у меня дедушка на фронте ВОв воевал?
[snapback]77356" rel="nofollow" target="_blank[/snapback]​
[/quote]
+1
<!--QuoteBegin-Ерюков Алексей+6:09:2007, 11:57 -->
<span class="vbquote">(Ерюков Алексей @ 6:09:2007, 11:57 )</span><!--QuoteEBegin-->Не дело это - иметь такой аватар
[snapback]77362" rel="nofollow" target="_blank[/snapback]​
[/quote]
+1

Для: yerke
Если ен секрет сколько Вам лет?
 

morpheus

скриптописец
07.08.2006
3 915
1
#15
Для: yerke
ясно. не обижайтесь, мой вам совет - всетаки стоит сменить картинку. Многие как минимум просто не принимают такого.ОБьяснять вам почуму не буду. Не понимаете ваши проблемы, а понимаете - зделаете как я посоветовал
 

yerke

Well-known member
28.08.2007
392
0
#16
Добрый день!
У меня возникли следующие проблемы с полями типа «Читатели». Дело в том что, раньше форма «Student» не содержала такое поле и я добавил туда многозначное вычисляемое поле типа «Читатели». Потом запустил агент, который заполняет это поле (RNames), учитывая значение поля «Faculty», если Faculty=”Географо-экологический”, то RNames=«[GEF]», а если Faculty=”Исторический”, то RNames=«[IST]» и т.д. Но во вьюшке ничего не изменилось, как было, так и осталось: под каким ролем не зайди, все документы отображаются.
Потом создал другую форму, для эксперимента, добавил туда поле типа «Читатели» и другие поля. Используя разные роли, создал несколько документов с помощью этой формы, заполнил все поля как надо. Во вьюшке, который отбирает документы этой формы, учитывается роли и скрываются документы, которых не должен видеть этот юзер. Короче все работает. А там, нет. В чем дело, подскажите, пожалуйста.
P.S.
Начет аватора без комментариев.
:(

для Morpheus
ок
как скажете :)
 
G

Guest

#17
Проверьте что содержат поля ридерс у этих документов. Возможно они не обновились? Вы после обновления полей сохраняли документ? Это легко проверить посмотрите в свойсвах документа в соответствующем поле должно быть то, что вы туда вписали
 

yerke

Well-known member
28.08.2007
392
0
#18
<!--QuoteBegin-Ерюков Алексей+6:09:2007, 12:21 -->
<span class="vbquote">(Ерюков Алексей @ 6:09:2007, 12:21 )</span><!--QuoteEBegin-->Вы после обновления полей сохраняли документ? Это легко проверить посмотрите в свойсвах документа в соответствующем поле должно быть то, что вы туда вписали

[snapback]77376" rel="nofollow" target="_blank[/snapback]​
[/quote]

конечно сохранял, только в backend-e. А свойствах документа, поле ридерс содержит нужные данные, то есть [IST] для исфака, [GEF] для ГЭФ и т.д. Но Флаги поля ридерс почему то: SUMMARY, а как мне известно должно быть SUMMARY READ-ACCESS NAMES.
 
K

K-Fire

#19
Надо либо на форме поместить ридерское поле Readers, и перед сохранением в бэкенде делать ComputeWithForm, либо напрямую ставить полю куда вы записываете роль флаг isReaders
 

yerke

Well-known member
28.08.2007
392
0
#20
Для: Morpheus
Я сменил иконку.
Но это - истребитель Люфтваффе
:(