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

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

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

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

особенности использования $publicaccess="1"

  • Автор темы Klido
  • Дата начала
K

Klido

Есть документ, в котором изначально есть $PublicAccess="1" (исторические причины, по которым в форме есть это поле мною сейчас выясняются :)). Также есть поле авторского типа доступа, где указан создатель документа пользователь А (других полей ридер/автор нет). Пользователи А и Б имеют авторский же доступ к базе. Пользователь Б может открыть документ на редактирование :) . Без каких-либо сообщений про неправильные права. И сохранить изменения...
Когда-то давно слышал про ньюансы $PublicAccess - можете напомнить? Или что это может быть?

Если такой документ из вьюхи экшеном типа "Изменить" пользователь Б открывает в диалоге (разрешено изменение полей, новые поля и всё остальное для внесения изменений), то, несмотря опять же на авторство пользователя А при закрытии диалога документ прекрасно обновляется и doc.save после диалога не задает вопросов... Как-то предполагал я, что открыть в диалоге ещё сможет, но править дать не должно ну или хотя бы ругнуться при закрытии/сохранении...
 
T

TIA

Всё правильно, если у пользователя Б в ACL стоит галка "Write public document". Поле $PublicAccess как раз и отличает "public-документы" от прочих.
 
K

Klido

TIA
т.е. $PublicAccess тупо игнорит авторские поля?

В хелпе как бы написано в "например" фраза "one user lets another user read or create", а создавать и читать - это не изменять...
Или действительно "you might want to make design elements accessible to all users, regardless of access level" не обращает внимание на доступы?

Пока я в при вызове диалога изменения вставил явный обход, если пользователь Б не содержится в авторском поле, но как-то стрёмно всё...
 
T

TIA

Пока я в при вызове диалога изменения вставил явный обход, если пользователь Б не содержится в авторском поле, но как-то стрёмно всё...
Если не хочешь, что Б не мог редактировать документ -- убери ему в ACL "Write public documents". Либо убери $PublicAcces у документа, но тогда прочие public-пользователи не смогут его редактировать тоже.
А диалоги лучше вызывать над временным не сохраняемым документом.


В хелпе как бы написано
Специально нашёл даную статью. Там речь идёт об элементе дизайна (ЭД). Т.е. право использовать ту или вьюшку или ту или иную форму для public-пользователей. Вы же спрашиваете о влиянии $PublicAccess, установленный в документе, а не ЭД.
Пользователь Б у вас по ACL -- Author, значит он может читать в том числе и любые public-документы (точнее ноты), в том числе и ЭД.
 
K

Klido

Пользователь Б у вас по ACL -- Author, значит он может читать в том числе и любые public-документы (точнее ноты), в том числе и ЭД.
Читать - я не против, зачем же изменять? :)
убери ему в ACL "Write public documents".
кажется логичным, но надо ещё посмотреть всё-таки зачем оно там было задумано...
 
Мы в соцсетях:

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