Методы изменения элементов в Mozilla LDAP



Таблица 6.5. Методы изменения элементов в Mozilla::LDAP



Метод действие
$entry->addValue($attrname, Sattrvalue) Добавляет указанное значение заданному атрибуту в указанном элементе.
$entry-> removeValue($attrname! Sattrvalue) Удаляет указанное значение для заданного атрибута указанного элемента. Если это значение единственное для атрибута, то удаляется и весь атрибут.
$entry-> setValue($attrname, $attrvalue1,...) Изменяет значения указанного атрибута в заданное значение или значения.
$entry-> rerTTOve(Sattrname) Удаляет указанный атрибут (вместе со значениями) из элемента.

После того как внесены все изменения элементов (при помощи перечисленных методов), нужно вызвать метод update() для данного LDAP-соединения, чтобы распространить эти изменения на сервер каталогов. update() вызывается со ссылкой на элемент в качестве аргумента (т. е. $cupdate($entry)).

Применим эти методы для глобального поиска и замены. Рассмотрим такой сценарий: один из отделов вашей компании переводят из Бостона в Индиану. Эта программа изменит все элементы, местоположением которых является Бостон:

use Mozilla::LDAP::Conn;

Sserver = $ARGV[0];

Sport = getservbyname("ldap","tcp") || "389";

Sbasedn = "dc=ccs,dc=hogwarts,dc=edu";

Sscope = "sub";

Srootdn = "cn=Manager, ou=Systems, dc=ccs, dc=hogwarts, dc=edu";

$pw = "secret";

неанонимное соединение

$c = new Mozilla;:LDAP::

Conn(Sserver,Sport.Srootdn,$pw);

die "Невозможно соединиться с сервером

$server\n" unless $c;

tt

обратите внимание, что мы запрашиваем как можно меньше информации для ускорения поиска

Sentry = $c->search($Pasedn, Sscope, "(l=Boston)", 1, ");

die "Ошибка поиска;". $c->getErrorStnng().

"\n" if $c->gettrrorCode();

if ($entry){ . - -while(Sentry)!

$entry->removeVali;e("l". "Boston");

$entry->addValue("l", "Indiana");

$c->update($entry);

die 'Ошибка при обновлении:" .

$c->getErrorString() . "\n"

if $c-'getErrorCode(); Sentry = $c->nextEntry(); }; }

$c->close();

Для изменения элементов в Net: : LDAP применяется другой подход. В нем все только что рассмотренные методы модуля Mozilla:. LDAP объединены в одном «суперметоде» modify(). Параметры, передаваемые этому методу, и определяют его функциональность (табл. 6.6).



Содержание раздела