4.6. Операция модификации Modify
Операция модификации Modify позволяет клиенту запросить, чтобы сервер выполнил модификацию записи от его имени. Запрос Modify определяется следующим образом:
ModifyRequest ::= [APPLICATION 6] SEQUENCE { object LDAPDN, changes SEQUENCE OF change SEQUENCE { operation ENUMERATED { add (0), delete (1), replace (2), ... }, modification PartialAttribute } }
Поля запроса Modify:
object:
Значение этого поля содержит имя записи, которая будет модифицирована. Серверу не нужно (SHALL NOT) выполнять какие-либо разыменования псевдонимов для определения объекта, который требуется модифицировать.
changes:
Список модификаций, которые будут произведены над записью. Все модификации из списка должны (MUST) быть выполнены в порядке их перечисления как одна атомарная операция. Хотя отдельные модификации могут нарушать определенные аспекты схемы данных каталога (такие, как определение объектного класса и правило содержимого информационного дерева каталога (Directory Information Tree, DIT)), результирующая запись после выполнения всех модификаций из списка должна (MUST) удовлетворять требованиям модели каталога и управляющей схемы [RFC4512].
operation:
Используется для указания типа выполняемой модификации. Каждый тип операции воздействует на тот атрибут, который указан в следующем за полем operation поле modification. Значения этого поля имеют следующие семантики (соответственно):
add:
добавить перечисленные значения к атрибуту, указанному в поле modification, при необходимости создать этот атрибут.
delete:
удалить перечисленные значения из атрибута, указанного в поле modification. Если не было перечислено никаких значений или если были перечислены все текущие значения данного атрибута, атрибут удаляется полностью.
replace:
заменить все существующие значения атрибута, указанного в поле modification на новые (перечисленные), создать атрибут, если его ещё не существовало. В случае, если новые значения не были перечислены, замена сводится к удалению атрибута целиком, если он существует, и к игнорированию операции, если он не существует.
modification:
Частичный атрибут PartialAttribute (у которого может быть пустой набор значений). Это поле используется для указания того типа атрибута или типа атрибута вместе со значениями, которые будут модифицироваться.