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

Обновление ActiveDirectory Library до v0.2.0

Пришло время обновить библиотеку для работы с Active Directory! :)


Название: LS_ActiveDirectory_Lib
Версия: 0.2.0
Текущая актуальная версия: 0.2.0
Платформа: IBM Lotus Notes (Client, Server)
Язык: LotusScript (Backend, UI)
Краткое описание: Библиотека для платформы IBM Lotus Notes содержит класс, предоставляющий интерфейс работы с объектами в Microsoft Active Directory (AD, АД), и служебные функции. Библиотека работает с версиями AD 2003 R2 и 2008 R2. Работа с другими версиями AD возможна, однако полная совместимость не гарантирована.
Условия использования: Свободное использование и изменение под свои нужды. При копировании и передаче третьим лицам ссылка на источник обязательна.
Установка:
  1. Создать загрузчик обновлений (кнопка, агент), если его у вас еще нет. Код см. ниже в разделе «Загрузчик обновлений»
  2. Если у вас еще нет библиотеки LS_ActiveDirectory_Consts – установить ее через загрузчик обновлений. Если библиотека уже стоит, сверится со список обновлений констант в этой библиотеке (список см. ниже)
  3. Установить или обновить библиотеку через загрузчик обновлений.
Список обновлений:
  1. Название библиотеки стало короче для удобства
  2. Удалено св-во CAD.DomainName (SET)
  3. Переименованна переменная класса DomainControllerName -> pr_domainControllerName
  4. Добавлено св-во CAD.DomainControllerName (GET) As String
  5. Добавлены константы для интеграции с другмими системами и БД. Можно и нужно изменять константы под свои системы. Можно добавлять константы, расширяя функционал
  6. Добавлена функция CAD.CreateADObject(). Создает объект заданного типа в АД и возвращает его
  7. Пользовательские константы, рассчитанные на изменение их разрабочиком под свои нужны вынесены в библиотеку LS_ActiveDirectory_Consts
Загрузчик обновлений:

                On Error Goto ErrorHandler
                Const FuncName = "LS_Updater ()"
               
                Dim ws As New NotesUIWorkspace
                Dim session As New NotesSession
                Dim stream As NotesStream
                Dim filename
                Dim dbPath
                Dim db As NotesDatabase
               
                filename = ws.Openfiledialog(False, "Выберите файл", "Domino XML|*.dxl|XML|*xml|Все файлы|*.*", _
                Cstr(Environ("homepath")), )
                If Isempty(filename) Then Goto endh
               
                dbPath = ws.Prompt(13, "Выберите БД", "Базы данных", , )
                If Isempty(dbPath) Then Goto endh
               
                If dbPath(0) = "" Then dbPath(0) = "Local"
               
                Set db = New NotesDatabase ("", "")
                Call db.Open(dbPath(0), dbPath(1))
                If Not db.Isopen() Then
                               Error 5001, {Не удалось открыть БД: } & Implode(dbPath, "; ")
                End If
               
                Set stream = session.CreateStream
                If Not stream.Open(filename(0)) Then
                               Error 5001, "Не удалось открыть файл " & filename(0)
                End If
                If stream.Bytes = 0 Then
                               Error 5001, "Файл не существует или пустой: " & filename(0)
                End If
               
                Dim importer As NotesDXLImporter
                Set importer = session.CreateDXLImporter(stream, db)
                importer.Replicarequiredforreplaceorupdate = False
                importer.Designimportoption = DXLIMPORTOPTION_REPLACE_ELSE_CREATE
                Call importer.Process
               
                Msgbox {Импорт } & Strrightback(filename(0), "\") & { произведен успешно.}, , "Импорт"
               
                Goto endh
ErrorHandler:
                Msgbox "DXL Log: " & Chr(10) & Chr(10) & importer.Log, , "DXL Importer Error"
                Error Err, DESIGN & " " & FuncName & " стр. " & Erl & Chr(10) & Error$
endh:

Файл для скачивания: LS_ActiveDirectory_Lib

П.С. Оставляйте свои пожелания, комментарии!


Контакты:






Без лишней скромности публикую форму от Яндекса, которой вы можете воспользоваться, если вам понравился продукт и вы желаете выразить благодарность автору.

Комментарии

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

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

И снова про тараканов, которые иногда возникают в голове. Как-то раз, засыпая, я задумался на курьезными задачками из своей сферы деятельности (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 сообщениях?