• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

Временный доступ на документ

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

Alsodan

Введение.
Есть основной документ. Он открыт для чтения/редактирования некоторым пользователям.
Они на основании его создают другой документ, который доступен для чтения/редактирования другим пользователям.
Внимание!
Как можно дать людям, редактирующим второй документ, временный доступ на редактирование первого документа?
Пытался сделать агента и запустить его под правами админа. Не помогло. Не видят они документ-основание.
P.S. Для тех кто знает СЭД Босс-Референт: Надо на этапе рассмотрения дать рассматривающему возможность создать еще один этап рассмотрения.
 
D

divankin

Запустите агента на сервере методом RunOnServer. Агент должен быть подписан админом.
 
A

Alsodan

Сделал агента, который должен был дать на исходный документ права Читателя....ну а потом подобный, чтобы их убрать.
Агента, подписанного админом, пускал методом RunOnServer.
Может он неправильно ищет нужный мне документ?

Код агента.

Dim doc As NotesDocument
Dim sess As New NotesSession
Dim db As NotesDatabase

Dim na As NotesAgent
Set na = sess.Currentagent


If na.Parameterdocid = "" Then
Set doc = sess.Documentcontext
Else
Set doc = sess.Currentdatabase.Getdocumentbyid(na.Parameterdocid)
End If

If (doc Is Nothing) Then
Exit Sub
End If

Dim mainProcDoc As notesdocument
Set mainProcDoc = db.GetDocumentByUNID(doc.GetItemValue("MainProcessID")(0))

mainProcDoc.DocReaders = FullTrim(ArrayAppend(mainProcDoc.DocReaders, sess.Username))

Call ws.ViewRefresh
 
H

hosm

Код:
Set db = sess.Currentdatabase
и убрать Call ws.ViewRefresh

Добавлено: при RunOnServer sess.Username не стоит брать, там имя сервера. в doc нужное имя передавайте. na.Parameterdocid проверьте.
 
H

hosm

mainProcDoc проверить на Nothing, проверить на наличие юзера в поле докридерс, если нет, то добавить и сохранить документ mainProcDoc .
в общем, ртфм и внимательность :)
 
A

Alsodan

Нубский вопрос: а как запустить дебаг для агента, запускаемого методом RunOnServer?

Добавлено: Нубский вопрос: а как запустить дебаг для агента, запускаемого методом RunOnServer?
 
H

hosm

Если не знаете как, лучше не мучайтесь пока, поправьте написанное выше и лучше запустите и отладьте по run под пользователем с админской ролью, передавая имя того, кому надо дать доступ. Явно полю Isreaders=True пропишите, если по дизайну приложения поле должно иметь этот тип. Допускаете элементарные ошибки. facepalm. Может, за доработкой стоит обратиться к вендору? Там просто думать надо и немного знать лотус и бр :)
 
A

Alsodan

Если не знаете как, лучше не мучайтесь пока, поправьте написанное выше и лучше запустите и отладьте по run под пользователем с админской ролью, передавая имя того, кому надо дать доступ. Явно полю Isreaders=True пропишите, если по дизайну приложения поле должно иметь этот тип. Допускаете элементарные ошибки. facepalm. Может, за доработкой стоит обратиться к вендору? Там просто думать надо и немного знать лотус и бр :)

Да, я не гуру. Технической документации от вендора нет и не будет. Доработка от вендора длится вечность и стоит как крыло от самолета. Вот и разбираюсь сам. Агенты - вещь для меня новая. Спасибо за подсказку. Сейчас агента локально запущу, проверю.
 
Мы в соцсетях:

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