Запрет на редактирование полей

  • Автор темы Hedg
  • Дата начала
Статус
Закрыто для дальнейших ответов.
H

Hedg

#1
Уважаемые эксперты возник такой вопрос

Можно ли запретить редактирование определённых полей в документе для конкретных пользователей или ролей?
 
L

Lexa-xa

#2
Конечно же можно. В Input Enabled необходимого поля пишешь:

Код:
@IsMember( "[Administrator]"; @UserRoles ) |
(
@Contains(
@GetProfileField(
[i]"<Имя поля содержащего список полей доступных для редактирования пользователю>"; [/i] 
Form; 
@UserName
);
@ThisName) &
@Contains(@GetField("[b]AllowedFieldsForEdit[/b]");@ThisName)
)
AllowedFieldsForEdit - поле находящееся в текущей форме и содержащее список полей доступных для редактирования
 

fedotxxl

Well-known member
09.11.2005
614
0
#4
Lexa-xa
Гм.... проверил твой способ - 0. Как редактировал поля, так и продолжаю редактироваться. Вписал в Input Enabled @IsMember( "[Administrator]"; @UserRoles ) (нет у меня такой роли), а редактировать могу

Если я правильно понял вопрос, то я скрываю поля - одно редактируемое, другое CFD
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#5
<!--QuoteBegin-fedotxxl+16:05:2006, 15:09 -->
<span class="vbquote">(fedotxxl @ 16:05:2006, 15:09 )</span><!--QuoteEBegin-->Гм.... проверил твой способ - 0. Как редактировал поля, так и продолжаю редактироваться. Вписал в Input Enabled @IsMember( "[Administrator]"; @UserRoles ) (нет у меня такой роли), а редактировать могу
[snapback]35933" rel="nofollow" target="_blank[/snapback]​
[/quote]
Читай хелп:
Input Enabled only works when the field style is set to Native OS.
 
L

Lexa-xa

#6
Хочу заметить.
Бывают такие ситуации, что не работает InputEnabled ни прикаких обстоятельствах. Поэтому бывает полезно вставлять в событие PostModeChange действие @Command([ViewRefreshFields])
Такие проблемы появлялись при работе с InputEnabled в DialogBox.
 
E

Elena Nefedova

#7
Уважаемые эксперты возник такой вопрос

Можно ли запретить редактирование определённых полей в документе для конкретных пользователей или ролей?
Если ваши поля на форме сгруппированы, то помещайте их в раздел с управляемым доступом (мне больше нравятся разделы типа Computed for Display - в них как раз и можно обработать текущего пользователя).
Далее в свойствах раздела для всех случаев указываете Auto-Expand Section (внимание! - это 8 вариантов)
Теперь нужно скрыть заголовок раздела.

И наконец - экспериментируйте с доступом, как вам угодно!
 
30.05.2006
1 345
11
#8
Если ваши поля на форме сгруппированы, то помещайте их в раздел с управляемым доступом (мне больше нравятся разделы типа Computed for Display - в них как раз и можно обработать текущего пользователя).
Далее в свойствах раздела для всех случаев указываете Auto-Expand Section (внимание! - это 8 вариантов)
Теперь нужно скрыть заголовок раздела.

И наконец - экспериментируйте с доступом, как вам угодно!
Самое простое - формулы видимости на форме (т.е. скрывать поле, если !(@UserRoles*="[Editor]":"[Manager]") ), заменяя его при необходимости на computed-text или CFD-поле.
Но точно так же, как и секции - это не защита, а интерфейсные примочки. Т.е. "взламываются" при наличии дизайнера и минимальных знаний.
Реальная защита - ACL, READERS/AUTHORS и шифрование. Возможность их применения должна закладываться еще при проектировании, наложить их на уже работающую прикладуху удается далеко не всегда.
 
Статус
Закрыто для дальнейших ответов.