• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

You Cannot Update Or Delete The Document Since You Are Not Listed....

  • Автор темы Автор темы oleg7
  • Дата начала Дата начала
O

oleg7

На QueryClose в строке
Код:
	Call note.Save( True, True, True )
выдает ошибку: You cannot update or delete the document since you are not listed as allowable author for this document
Пользователь, который заходит и сохраняет документ в ACL не указан, по умолчанию Автор+ роль на удаление и создание документов
Как можно обойти ошибку
 
смысл в том, что как только он (пользователь) сохранил документ, то он уже не сможет его редактировать, а редактировать смогут лишь люди указанные в определенном поле

Добавлено: поэтому добавить в Authors-поле его нельзя
 
смысл в том, что как только он (пользователь) сохранил документ, то он уже не сможет его редактировать
так заданная задача и выполняется! :) пользователь уже сохранил документ, поэтому не имеет больше права сохранять его.

осмелюсь предложить, что есть смысл в перепланировании логики приложения.
может, будет корректнее внести состояния документа? например, в состоянии "новый" документ может изменяться пользователем сколь угодно раз, т.к. пользователь присутствует в А-поле. по окончанию редактирования, пользователь нажимает кнопку, которая переводит документ в состояние "проверка". при этом, этот пользователь удаляется из А-поля, а другие необходимые имена добавляются.
и так добиваемся необходимой (описанной выше) работоспособности приложения.
 
я вот думаю, можно на LS сделать так
в QueryClose
Код:
если пользователь не имеет роль1, тогда
"Вы в дальнейшем не сможете редактировать документ"
Call note.Save( True, True, True )
иначе просто 
Call note.Save( True, True, True )
1) но при это ошибка (я так полагаю) все равно будет высвечиваться
2) как сделать эту проверку - 'если пользователь не имеет роль1, тогда'
if <@UserRoles!=[роль1]> then
 
см справку по Evaluate()

зы: может, постараешься описать более подробно задуманное еще раз, от начала и до конца? :)
 
см справку по Evaluate()
Может в печурку использовать Evaluate для определения ролей?
Есть же красивый db.QueryAccessRoles

Мне кажется, сохранять док на QC - не комильфо.

По-моему, Акупака предложил отличное решение: редактируй сколько влезет, нажал кнопку, из Authors пропал, документ закрылся. Всё.
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab