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

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

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

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

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

История изменения полей

  • Автор темы Anatoly
  • Дата начала
A

Anatoly

Требуется вести историю изменения полей: кто, когда, что на что поменял.
В определенных формах определенные поля. Пока фиксировано, но в дальнейшем думаю сделать это настраиваемым.
Если кто уже занимался этим, может есть какие наработки или уже определившиеся проблемы...
С одной стороны логично было-бы сделать эти логи наследниками к соответственным формам, но с другой информация будет размазана по нескольким базам и не увидишь изменения, сделанные определенным пользователем, а одном просмотре. Придется создавать доп. базу и поддерживать ее в актуальном состоянии. Причем в отдельную базу придется, помимо имени реквизита, тащить еще наименования базы и формы отредактированного документа, плюс какие реквизиты идентифицирующие этот документ для пользователя.

И в какой момент фиксировать изменения? В свойствах/событиях не совсем корректно. Логичнее всего, вроде-бы, в PostSave формы.
Как правильнее организовать хранение предыдущих значений нужных полей при входе в редактирования документа?
Короче, пока я в состоянии раздумий как приступить :)
 
M

MMN

я делаю это в кверисейв, сравниваю что записываю с тем что было, если есть изменения то пишу в дочений документ кто и когда менял поле
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
Требуется вести историю изменения полей: кто, когда, что на что поменял.
В определенных формах определенные поля. Пока фиксировано, но в дальнейшем думаю сделать это настраиваемым.
Если кто уже занимался этим, может есть какие наработки или уже определившиеся проблемы...
С одной стороны логично было-бы сделать эти логи наследниками к соответственным формам, но с другой информация будет размазана по нескольким базам и не увидишь изменения, сделанные определенным пользователем, а одном просмотре. Придется создавать доп. базу и поддерживать ее в актуальном состоянии. Причем в отдельную базу придется, помимо имени реквизита, тащить еще наименования базы и формы отредактированного документа, плюс какие реквизиты идентифицирующие этот документ для пользователя.

И в какой момент фиксировать изменения? В свойствах/событиях не совсем корректно. Логичнее всего, вроде-бы, в PostSave формы.
Как правильнее организовать хранение предыдущих значений нужных полей при входе в редактирования документа?
Короче, пока я в состоянии раздумий как приступить :)

1-й вариант (у меня так работает).
В постопене сохраняю данные из нужных мне полей, а в постсейве сравниваю. Везультат записываю в документ-респонс. В документе-респонсе четрые видимых мультивельюз поля. В первое поле пишу название измененного поля, второе - старое значение, третье - новое значение, четвертое - кто менял

2-й вариант
в постопене копируется текущий документ, в кверисейве сравниваются поля и при изменении копированый док. делается респонсом, заносится имя того кто редактировал и документ лочится
 
A

Anatoly

Если, скажем, сохраниять старые значения в входе в документ, то я так думаю: либо в какой-нибудь временный док, либо (с перспективой на будущую настраиваемость режима) создавать LIST по именам контролируемых полей. Наверное остановлюсь на втором.
 
A

allex

Был в свое время написан класс.... может будет полезен.
 

Вложения

  • classhistory105_sample_db.zip
    43,8 КБ · Просмотры: 177
M

medin84

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

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