• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Проверка поля при сохранении

  • Автор темы Ruska132
  • Дата начала
R

Ruska132

Добрый день. Подскажите ПЖ новичку.
При создании ответного документа на форму, поле ответного заполняется автоматически. необходимо чтоб при сохранении производилась проверка: заполненое поле с UserName.
пример:
Документ1 - поле адресат (Иванов И.И.) Пользователь Сидоров создает резолюцию поле автор прописывается автоматически т.е. Иванов И.И. необходимо чтоб при сохранении документа резолюция была проверка (сравнить Иванов с Сидоров ), если лож то выводить сообщение.

если я правильно понимаю это дело необходимо организовать в событии Querysave.
подскажите ПЖ.
 

savl

Lotus Team
28.10.2011
2 597
310
BIT
160
проверка для чего нужна?
Сама првоерка не задача, это один из шагов.
Задача сама для чего? Чтобы автор не был получателем?
 
R

Ruska132

проверка для чего нужна?
Сама првоерка не задача, это один из шагов.
Задача сама для чего? Чтобы автор не был получателем?

суть в том что участились случаи что от имени другого создают ответные документы.
 

Kizarek86

Green Team
20.07.2007
871
7
BIT
33
Правильно понимаете, событие делать на Querysave.
Определить текущего пользователя курите класс NotesSession (конктерно UserName),
сравнивайте с указанным значением в поле, курите класс NotesDocument (конкретно GetItemValue).
если нужно остановить сохранение используйте Continue = false
 
  • Нравится
Реакции: Ruska132
R

Ruska132

Правильно понимаете, событие делать на Querysave.
Определить текущего пользователя курите класс NotesSession (конктерно UserName),
сравнивайте с указанным значением в поле, курите класс NotesDocument (конкретно GetItemValue).
если нужно остановить сохранение используйте Continue = false


да, если можно то ПЖ на примере.
 

garrick

Lotus Team
26.10.2009
1 349
151
BIT
165
суть в том что участились случаи что от имени другого создают ответные документы.
Решение в корне не верное, не проверять надо что именно тот пользователь создал ответный документ, а сделать так, чтобы не у того пользователя не было возможности это сделать. Поля Authors/Readers, сокрытие кнопок "Создать" (или как там они у вас называются) и т.п.
 

Kizarek86

Green Team
20.07.2007
871
7
BIT
33
Код:
 If Source.Document.ParentDatabase.Parent.UserName <> Source.Document.GetItemValue("имя поля в котором юзверь")(0) Then
Messagebox "Кто то хитрит!", 16, "не надо так"
Continue = False
End If
[DOUBLEPOST=1447145284,1447145198][/DOUBLEPOST]А вообще выше пишут правильные вещи, если пользователь не должен создавать документы по чужим - то блокировать нужно до создания, а не при сохранении.
 
R

Ruska132

Код:
 If Source.Document.ParentDatabase.Parent.UserName <> Source.Document.GetItemValue("имя поля в котором юзверь")(0) Then
Messagebox "Кто то хитрит!", 16, "не надо так"
Continue = False
End If
[DOUBLEPOST=1447145284,1447145198][/DOUBLEPOST]А вообще выше пишут правильные вещи, если пользователь не должен создавать документы по чужим - то блокировать нужно до создания, а не при сохранении.

Можно закрыть возможность создания, но есть нюансы, если замещающие сотрудники и им должна быть доступна кнопка.
 

savl

Lotus Team
28.10.2011
2 597
310
BIT
160
суть в том что участились случаи что от имени другого создают ответные документы.
Коллеги, в ошибка в авторе ответа, Иванов создает, а прописывается Сидоров, @Ruska132 так и есть?
Это наследование полей скорее всего, форма ответа - response, там наследование полей от родителя.
Поле, которое содержит имя автора наследуется, а должно изменяться.
Надо найти поле, сделать его вычисляемым и проставить туда формулу @userName, если оно лотусовое имя содержит.
А если ФИО из справочника сотрудников, то надо смотреть йункцию формирования ответа и менять этот момент уже там.
 
R

Ruska132

Коллеги, в ошибка в авторе ответа, Иванов создает, а прописывается Сидоров, @Ruska132 так и есть?
Это наследование полей скорее всего, форма ответа - response, там наследование полей от родителя.
Поле, которое содержит имя автора наследуется, а должно изменяться.
Надо найти поле, сделать его вычисляемым и проставить туда формулу @userName, если оно лотусовое имя содержит.
А если ФИО из справочника сотрудников, то надо смотреть йункцию формирования ответа и менять этот момент уже там.

Функция формирования ответа скрыта.
есть поле где содержатся данные автора вида (CN=////////;CN=////) вот и хотелось бы проверить в этом списке текущего пользователя.
 

alexas1

Green Team
10.04.2014
1 202
225
BIT
34
если лож то выводить сообщение.
- и дальше что?
Не сохранять? - Тогда разумно делать проверку на компетентность ДО создания респонза и никаких проблем не будет.

есть поле где содержатся данные автора вида (CN=////////;CN=////) вот и хотелось бы проверить
- если это хочется использовать "влоб" - делать проверку на postopen и сразу закрывать при геморе (с месагой) без сохранения.

Если надо что-то сохранять - проверять на querysave c соотв. действиями (нулить поля, устанавливать флаг и т.п. ...)
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 933
609
BIT
178
вот мне всегда "нравятся" вопросы..
я хочу что-то сделать вот так-то, при объяснения и уточнениях выползают всякие нюансы, причем "внезапно"
что казалось бы проще - описать процесс полностью (без "своего" - я хочу вот так решить) и детали реализации (кот. существенны)
из-за отсутствия выше перечисленного - 11 ответов, 2-а дня - решения так и нет
 
Мы в соцсетях:

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