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

Тема в разделе "Lotus - Программирование", создана пользователем Hedg, 5 май 2006.

Статус темы:
Закрыта.
  1. Hedg

    Hedg Гость

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

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

    Lexa-xa Гость

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

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

    Hedg Гость

    Благодарю
     
  4. fedotxxl

    fedotxxl Well-Known Member

    Регистрация:
    9 ноя 2005
    Сообщения:
    614
    Симпатии:
    0
    Lexa-xa
    Гм.... проверил твой способ - 0. Как редактировал поля, так и продолжаю редактироваться. Вписал в Input Enabled @IsMember( "[Administrator]"; @UserRoles ) (нет у меня такой роли), а редактировать могу

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

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    <!--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]
    Читай хелп:
     
  6. Lexa-xa

    Lexa-xa Гость

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

    Elena Nefedova Гость

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

    И наконец - экспериментируйте с доступом, как вам угодно!
     
  8. Constantin A Chervonenko

    Constantin A Chervonenko Well-Known Member

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

Поделиться этой страницей