К основному контенту

LS_ActiveDirectory_Lib. Документация и примеры использования. Часть 2. ADObject

Продолжении документации по открытой библиотеке LS_ActiveDirectory_Lib. Первая часть доступна здесь.
Часть 3



ADObject (класс)

Класс представляет собой абстрактное описание объектов в AD. Сам по себе (так же как и его потомки в прямом инстанцировании не нуждается. Стандартный метод получения экземпляра конкретного класса через метод FindObj класса ADConnector.
Конструктор класса принимает в качестве параметров:
ad: ADConnector - экземпляр класса ADConnector. Если в качестве значения передано Nothing будет выброшена ошибка AD_ERR_PARAMNOTHING (3501)
adObj: Variant - OLE-объект MS AD. Если в качестве значения передан не объект, будет выброшена ошибка AD_ERR_PARAMNOTOBJECT (3502), если передано Nothing, то AD_ERR_PARAMNOTHING (3501)

Свойства (публичные поля):

ADsPath: Строка GET

Путь к объекту. Возвращает значение соотв. атрибута AD-объекта

Class: Строка GET

Класс объекта. Возвращает значение соотв. атрибута AD-объекта

DistinguishedName: Строка GET

Возвращает значение соотв. атрибута AD-объекта

GUID: Строка GET

Глобальный ID объекта в AD. Возвращает значение соотв. атрибута AD-объекта

Parent: Строка GET

ADsPath родительского объекта.

Schema: Строка GET

Возвращает значение соотв. атрибута AD-объекта

Методы:

Get: Variant

Получение значения атрибута из AD-объекта, который уже находится в кэше. Возвращает массив Variant
Параметр:
propertyName: Строка - название атрибута

Примеры использования:
Dim ad As New ADConnector("MyOrg.org", "", "")
Dim adUser As ADUser

Set adUser = ad.FindObj(Nothing, AD_OBJECT_USER, "Ivanov-II", AD_ATTRIBUTE_SAMACCOUNTNAME)
MsgBox ad.Get("Department")

GetInfo

Загрузка значений атрибутов с диска в объект.
Параметр:
propertyName: Variant - название атрибута для загрузки. Может принимать значения:
"" (пусто) - для загрузки всех атрибутов
Строка - для загрузки значения указанного атрибута
Массив (Variant) Строк для загузки значений указанныъ атрибутов

GetObject: Variant

Возвращает непосредственно OLE АД-объект

GetParent: ADOU

Получение родительского контейнера

Примеры использования:
Dim ad As New ADConnector("MyOrg.org", "", "")
Dim adUser As ADUser
Dim adContainer As ADOU

Set adUser = ad.FindObj(Nothing, AD_OBJECT_USER, "Ivanov-II", AD_ATTRIBUTE_SAMACCOUNTNAME)
Set adContainer = adUser.GetParent()
MsgBox adContainer.ToString()

ModifyAttribute

Модификация атрибута объекта. Для сохранения изменений на диске необходимо вызвать метод Save()
Параметры:
modifyType: Число - вид модификации. Может принимать одно из следующих значений:
ADS_PROPERTY_CLEAR (1) - очистить
ADS_PROPERTY_UPDATE (2) - обновить
ADS_PROPERTY_APPEND (3) - добавить
ADS_PROPERTY_DELETE (4) - удалить
propertyName: Строка - название атрибута
value: Variant - значение

Примеры использования:
Dim ad As New ADConnector("MyOrg.org", "", "")
Dim adUser As ADUser

Set adUser = ad.FindObj(Nothing, AD_OBJECT_USER, "Ivanov-II", AD_ATTRIBUTE_SAMACCOUNTNAME)
Call adUser.ModifyAttribute(ADS_PROPERTY_CLEAR, "Department", "")
Call adUser.ModifyAttribute(ADS_PROPERTY_UPDATE, "Company", "Live Script")
Call adUser.Save()

Put

Установка значения атрибута объекта. Для сохранения изменений на диске необходимо вызвать метод Save()
Параметры:
propertyName: Строка - название атрибута
value: Variant - значение

Примеры использования:
Dim ad As New ADConnector("MyOrg.org", "", "")
Dim adUser As ADUser

Set adUser = ad.FindObj(Nothing, AD_OBJECT_USER, "Ivanov-II", AD_ATTRIBUTE_SAMACCOUNTNAME)
Call adUser.Put("Company", "Live Script")
Call adUser.Save()

Rename: boolean

Переименование объекта.
Параметр:
newName: Строка - новое имя объекта

Save: boolean

Сохранение объекта на диск. При успешном сохранении вернет true.

ToString: Строка

Возвращает значение свойства ADsPath

Комментарии

Популярные сообщения из этого блога

Занимательные алгоритмы. Поиск цикла в односвязном списке

И снова про тараканов, которые иногда возникают в голове. Как-то раз, засыпая, я задумался на курьезными задачками из своей сферы деятельности (Lotus Notes), которые можно было бы задать на собеседовании, плавно перешел к воспоминаниям о своих первых собеседования, когда опыта работы еще не было. Опыт самих собеседований у меня не велик а места, где задавались действительно интересные задачи (а не задачки типа: написать сортировку массива любым известным способом) вообще равны одному - это ABBYY. Как минимум одна задачка в списке на знание и понимание классических алгоритмов, описанных в книге Дональда Кнута -  Искусство программирования .

Unit-testing object validation when validator has DI

Summary Unit test object validation when validator(s) has a dependency. For instance, we have some custom field and cross-field validators. Want to test their combination. Additionally some of validators have dependencies, injected through constructor or setters. You're not using property injection, right? Shortcut If you are just searching for an answer, here's the fast way: Declare CustomConstraintValidatorFactory that implements javax.validation.ConstraintValidatorFactory Override getInstance method and on facing your constraint validator class instantiate it Otherwise delegate validator construction to org.hibernate.validator.internal.engine.constraintvalidation.ConstraintValidatorFactoryImpl Build validator factory and provide it your CustomConstraintValidatorFactory Build validator, using that factory... Go to demo project on GitHub for details:  https://github.com/MrArtemAA/blog-demos/blob/master/test-validator-with-injection/src/test/java/ru/artemaa/d

Lotus Notes FAQ. 8/9 Eclipse. Как настроить уведомления о Sametime сообщениях

Н а написание данной "инструкцию" натолкнул мой коллега. Помню, первый раз сам долго искал, как отключить постоянно выпрыгивающие уведомления о новых сообщениях в Sametime. И так, речь идет о клиентах IBM Notes 8+ версии Standart (Eclipse based). Как настроить уведомления о Sametime сообщениях?