Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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

Если пользователь выполняет операцию Создание, Запись или Удаление в базе данных при наличии запрещающих ACL, операция не будет выполнена, а метод getErrors(), вызванный после нее, вернет соответствующую ошибку.

Если пользователь выполняет операцию Чтение из базы данных при наличии запрещающих ACL, данные предоставлены не будут, но метод getErrors() не вернет ошибок.

Поведение системы при наличии запрещающих правил контроля доступа (ACL)

Запрещенное действиеЗапрет для записиЗапрет для поля
СозданиеЕсли пользователь заполнит форму через скрипт и выполнит метод insert(), то запись не будет создана.

Если пользователь заполнит поле через скрипт и выполнит метод insert(), то запись будет создана, но поле будет пустым или будет заполнено значением по умолчанию (если оно предусмотрено).

Запись

Если пользователь укажет новые значения для полей записи через скрипт и выполнит метод update(), то запись не обновится. При вызове updateMultiple() записи в выборке, изменение которых запрещено ACL, останутся без изменений, остальные успешно обновятся.

Если пользователь укажет новое значение поля через скрипт и выполнит метод update()updateMultiple(), то запись обновится, но значение полей, доступ к которым запрещен, останется без изменений.

Note

В более поздних версиях предполагается изменение работы метода updateMultiple() на аналогичное deleteMultiple(): если у пользователя нет доступа к изменению хотя бы одной из записей в выборке, ни одна из записей не будет изменена. Рекомендуется учитывать это при написании скриптов.


Если пользователь укажет новое значение поля через скрипт и выполнит метод update()updateMultiple(), то запись обновится, но значение полей, доступ к которым запрещен, останется без изменений.

Удаление

Если пользователь попытается удалить запись через скрипт и выполнит метод deleteRecord(), то запись останется без изменений. При вызове deleteMultiple(), если в выборке есть хоть одна запись, удаление которой запрещено, ни одна запись не будет удалена.

ЧтениеЕсли пользователь запросит запись через скрипт, скрытые данные не будут включены в ответ. Вся строка ответа будет пустой.Если пользователь запросит данные поля через скрипт, они не будут включены в ответ. Колонка с запрещенным полем будет пустой.


Table of Contents