Это будет зависеть от вашего сервера каталогов, но обычно нет. Вы изменяете два разных объекта каталога - список «член» объекта группы и некоторые другие атрибуты объекта пользователя. Эти два изменения не могут быть объединены в одну операцию изменения.
Если на вашем сервере каталогов есть механизм обновления атрибута member-of-groups для пользователя, чтобы заполнить список-group-group для группы, то вы могли бы реализовать набор зависимые изменения пользовательского объекта (т.е. установите значение attr1 в 'test1', установите значение attr2 в 'test2' и установите memberOf в 'cn = mygroup, ou = groups, o = example'). Active Directory не разрешает запись в memberOf, но там, где это возможно, может быть какой-то каталог LDAP.
Не одна транзакция, но вы можете смоделировать зависимость "change X && Y" внутри кода. Обновите членство в группе, проверьте код возврата. В случае успеха обновите членство в следующей группе и проверьте код возврата. L oop через все членство в группах, которые обновляются следующим образом. При неудаче выведите из строя и откатите изменения членства в группе, которые уже были применены. Обновить значение следующей группы; проверьте код возврата и т. д. c, пока не обновите все необходимые членства в группах. Затем обновите атрибуты пользователя; проверьте возвращаемое значение. В случае успеха, двигаться дальше. В случае неудачи откатите изменения членства в группе.