• 🚨 29 мая стартует курс «Пентест Active Directory: от теории к практике» от Академии Кодебай

    🔍 Изучите реальные техники атак на инфраструктуру Active Directory: от первоначального доступа до полной компрометации.
    🛠️ Освойте инструменты, такие как BloodHound, Mimikatz, CrackMapExec и другие.
    🧪 Пройдите практические лабораторные работы, имитирующие реальные сценарии атак.
    🧠 Получите знания, которые помогут вам стать востребованным специалистом в области информационной безопасности.

    После старта курса запись открыта еще 10 дней Подробнее о курсе ...

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

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

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

Merge Conflict Documents

  • Автор темы Автор темы FixeR
  • Дата начала Дата начала
F

FixeR

Пользователь берёт документ на редактирование. В это время по расписанию начинает исполняться агент на сервере, в котором меняется одно поле у этого же документа и сохраняется (doc.Save). Теперь пользователь нажимает на сохранение документа:

Another copy of this document was saved while you were editing it.
Save your changes also as a Save Conflict Document?

Точно известно, что в агенте меняется только 1 поле, которого нет на форме.
Т.е. пользователь это поле изменить никак не может.

Вопрос: как-нибудь можно сохранить изменения агента и пользователя в одном документе?

В агенте - doc.Save(True, False)
У формы - Merge/No Conflicts
Кнопка "Сохранить" на форме - uidoc.Save

Перепробовал кучу комбинаций уже.

По хелпу мне нужно у формы выставить значение "Merge/No Conflicts".
Но какой бы вариант я там не выбирал - результат один и тот же.

Ещё у Save есть пара параметров, отвечающих за создание конфликтных документов - совершенно непонятно, как это всё работает в паре с параметром Conflict Handling формы.
 
Правильно - это выставить у форм "No Conflicts", а во всех случаях изменении документов использовать блокировки (метод Lock), - поищите по форуму, здесь много было об этом.
 
а во всех случаях изменении документов использовать блокировки (метод Lock)
Ну это слишком просто ;)

Вот из справки:
Merge Conflicts -- If a replication conflict occurs, saves the edits to each field in a single document. However, if two users edit the same field in the same document, Notes saves one document as a main document and the other document as a response document marked as a replication conflict. The main document is selected based on the criteria listed in the bullet above.
 
Не то выделил. Надо было: If a replication conflict occurs.

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

1. Юзеру отдавать на редактирование копию документа ( например ввиде респонса), при сохранении обновлять по его образу оринигал

2. Как я писал для случая многосерверной распределенной среды писал движок, который обрабатывал очередь транзакций по предопределенным правилам. Транзакции генерировались действиями пользователя.

Вариант с блокировкой лично меня не устрол для распределенной среды,т.к. долго держит документ занятым...

3. Еще один раз для разбора конфликтов репликаций писал агент, который анализировал доки и сливал в один.
 
Мы в соцсетях:

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

Курс AD