Отдельнй forms8 для одного пользователя

Автор Тема: Отдельнй forms8 для одного пользователя  (Прочитано 25400 раз)

Francyz

  • Участник
  • **
  • Сообщений: 49
    • Просмотр профиля
Re: Отдельнй forms8 для одного пользователя
« Ответ #15 : 19 Июнь 2009, 12:11:47 »
Да без раницы как, делаю и @IsNotMember с @UserName и с @UserRoles, И @Contains функцию делаю, чето-то результата нету...
Когда сохраню изменение делаю рестарт http через te http restart и изменения применяются - это видно, но формула скрытия почему то не пашет...

ViV

  • Global Moderator
  • Профессионал
  • *****
  • Сообщений: 1428
  • Владимир Егоров
    • Просмотр профиля
    • lotusnotes.ru
    • E-mail
Re: Отдельнй forms8 для одного пользователя
« Ответ #16 : 19 Июнь 2009, 12:30:43 »
Разница есть. В списки @Userroles и @Username короткое имя не входит.
Если вы для админов фильтруете, попробуйте @IsNotMember("LocalDomainAdmins";@UserNamesList).

Francyz

  • Участник
  • **
  • Сообщений: 49
    • Просмотр профиля
Re: Отдельнй forms8 для одного пользователя
« Ответ #17 : 19 Июнь 2009, 14:51:08 »
Так-с, у меня складывается мнение, что функция работает как надо, просто я ожидаю не того результата от нее.... Начну с начала, может сразу будет ясно что я делаю не то и функция тут не причем....

В общем в файле forms8.nsf есть форма, которая отвечает за параметры в веб-аксесе, название формы s_MailPreferenceEditCode. Так вот там есть код, который идет сплошняком, без разделений... Я нашел функцию которая отвечает за пункт подпись, она выглядит так:
[b]s='[/b]<table width="100%" border=0 cellspacing=0><tr><td colspan="2" align=left class="s-form-header">Подпись:</td>
</tr><tr><td><input type=checkbox disabled id="chkEnableSignature" value="1"></td>
<td width="100%" align=left><label for="chkEnableSignature" class="s-form-label">Автоподпись в нижней части исходящих почтовых
 сообщений</label></td></tr><tr><td colspan="2"><table cellspacing=0><tr>
<td class="s-form-label" style="padding-left:25px;padding-top:10px">Тип</td></tr>
<tr><td style="padding-left:25px"><table cellspacing=0><tr><td><input type=radio name="rdoSignatureType" id="r0SignatureType"
value="0" onclick="Eta(0)"></td><td><label for="r0SignatureType" class="s-form-label">Обычный текст</label>&nbsp;&nbsp;</td>
<td><input type=radio name="rdoSignatureType" id="r1SignatureType" value="1" onclick="Eta(1)"></td>
<td><label for="r1SignatureType" class="s-form-label">Форматируемый текст</label></td></tr></table></td></tr></table>
</td></tr><tr id="SignatureText"><td colspan="2" style="padding-left:25px;padding-top:5px" align=left>
<textarea id="dispSignature_1" rows=5 COLS=60 class="s-form-input" style="overflow:auto;"></textarea></td></tr></table>[b]';[/b]

Это я тут разбил по строчкам, чтобы можно было видеть код целиком.... поскольку это функция S=' тут сам код ' ее нельзя переносить на новую строчку, чтобы залезть к ней в свойства. Поэтому она идет одной строкой, и если менять свойства, то только у всей этой строки, а не конкретно у строки с тегом <input type=radio>. Поэтому я одтелил эту функцию ото всех.. и ей в свойствах указал, скрывать это, если пользователь не в группе админ, функцией @IsNotMember("LocalDomainAdmins";@UserNamesList)...

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

Francyz

  • Участник
  • **
  • Сообщений: 49
    • Просмотр профиля
Re: Отдельнй forms8 для одного пользователя
« Ответ #18 : 19 Июнь 2009, 15:52:21 »
Т.е. просто по идее, когда смогу это сделать, то можно будет дублировать этот абзац и уже измененный сдалть видимый админу, а чистый оставить пользователям... но пока не пашет даже с одним абзацем...

ViV

  • Global Moderator
  • Профессионал
  • *****
  • Сообщений: 1428
  • Владимир Егоров
    • Просмотр профиля
    • lotusnotes.ru
    • E-mail
Re: Отдельнй forms8 для одного пользователя
« Ответ #19 : 19 Июнь 2009, 15:54:15 »
сейчас попробую. Вы скрываете переключатель типа подписи?

Francyz

  • Участник
  • **
  • Сообщений: 49
    • Просмотр профиля
Re: Отдельнй forms8 для одного пользователя
« Ответ #20 : 19 Июнь 2009, 17:02:14 »
я делаю неактивными радио кнопки, чекбокс и текстАреа, при помощи disabled. Т.е. если скопировать этот абзац с функцией S='' то в первом случае они будут активны и там будет формула скрытия если пользователь не админ, то скрывать его, а Второй абзац для обычных пользователей, там в эти теги будет добавлена функция disabled и проверка соответственно скрывать его, если админ ....

ViV

  • Global Moderator
  • Профессионал
  • *****
  • Сообщений: 1428
  • Владимир Егоров
    • Просмотр профиля
    • lotusnotes.ru
    • E-mail
Re: Отдельнй forms8 для одного пользователя
« Ответ #21 : 19 Июнь 2009, 18:47:19 »
Походу в этой форме игнорируются условия скрытия и формульные выражения...

Можно сделать по другому: использовать проверку на javascript. Если порыться в кодах, то обнаружится переменная "haiku.AbbrevUserName", в которой хранится имя польователя в аббревиативном формате (например: Administrator/OrgUnit/Org).
После определения переменной "s", можно поставить условие на присваивание значения этой переменной:

DHR.prototype.TC=function(){var s; if (haiku.AbbrevUserName!='Administrator/OrgUnit/Org') {s='<table width="100%" border=0 cellspacing=0><tr><td colspan="2" align=left class="s-form-header">Signature:</td></tr><tr><td><input type=checkbox disabled="true" id="chkEnableSignature" value="1"></td><td width="100%" align=left><label for="chkEnableSignature" class="s-form-label">Automatically append a signature to the bottom of your outgoing mail messages</label></td></tr><tr><td colspan="2"><table cellspacing=0><tr><td class="s-form-label" style="padding-left:25px;padding-top:10px">Type</td></tr><tr><td style="padding-left:25px"><table cellspacing=0><tr><td><input type=radio name="rdoSignatureType" disabled="true" id="r0SignatureType" value="0" onclick="Eta(0)"></td><td><label for="r0SignatureType" class="s-form-label">Plain text</label>&nbsp;&nbsp;</td><td><input type=radio name="rdoSignatureType" disabled="true" id="r1SignatureType" value="1" onclick="Eta(1)"></td><td><label for="r1SignatureType" class="s-form-label">Rich text</label></td></tr></table></td></tr></table></td></tr><tr id="SignatureText"><td colspan="2" style="padding-left:25px;padding-top:5px" align=left><textarea disabled="true" id="dispSignature_1" rows=5 COLS=60 class="s-form-input" style="overflow:auto;"></textarea></td></tr></table>';}else{s='<table width="100%" border=0 cellspacing=0><tr><td colspan="2" align=left class="s-form-header">Signature:</td></tr><tr><td><input type=checkbox id="chkEnableSignature" value="1"></td><td width="100%" align=left><label for="chkEnableSignature" class="s-form-label">Automatically append a signature to the bottom of your outgoing mail messages</label></td></tr><tr><td colspan="2"><table cellspacing=0><tr><td class="s-form-label" style="padding-left:25px;padding-top:10px">Type</td></tr><tr><td style="padding-left:25px"><table cellspacing=0><tr><td><input type=radio name="rdoSignatureType" id="r0SignatureType" value="0" onclick="Eta(0)"></td><td><label for="r0SignatureType" class="s-form-label">Plain text</label>&nbsp;&nbsp;</td><td><input type=radio name="rdoSignatureType" id="r1SignatureType" value="1" onclick="Eta(1)"></td><td><label for="r1SignatureType" class="s-form-label">Rich text</label></td></tr></table></td></tr></table></td></tr><tr id="SignatureText"><td colspan="2" style="padding-left:25px;padding-top:5px" align=left><textarea id="dispSignature_1" rows=5 COLS=60 class="s-form-input" style="overflow:auto;"></textarea></td></tr></table>';}

Вроде работает. Единственное, здесь проверяется по конкретному имени. Возможно есть переменная, где хранится группа пользователя, нужно копаться...

Francyz

  • Участник
  • **
  • Сообщений: 49
    • Просмотр профиля
Re: Отдельнй forms8 для одного пользователя
« Ответ #22 : 19 Июнь 2009, 19:03:42 »
Ясно, спасибо. Пока надо как раз для одного человека, надо сделать, а потом будем думать....