Имя: Пароль:
1C
1C 7.7
v7: ldap, как получить список групп у пользователя?
0 aptomilov
 
12.09.11
08:04
Перебираю список пользователей, и получаю все необходимые поля кроме memberof, в нем содержатся перечень групп в которые входит пользователь.
Как получить этот перечень ума не приложу.
1 aptomilov
 
12.09.11
12:42
Отвечаю

функция СтрокаГрупПользовтаеля(стрЗначение)
   Ответ="";
   попытка
       олеСкрипт = СоздатьОбъект("MSScriptControl.ScriptControl");
       олеСкрипт.Language = "VBScript";
       олеСкрипт.AddCode("
       |Function SpisGroup
       |Set objGroup = GetObject (""LDAP://cn="+стрЗначение+", OU=StaffChe,OU=Users,OU=MyBusiness,DC=interpolis,DC=local"")
       |objGroup.GetInfo
       |arrMemberOf = objGroup.GetEx(""memberOf"")
       |For Each strMember in arrMemberOf
       |Set objUser = GetObject(""LDAP://"" & strMember)
       |str=str &  "" @ "" & objUser.samaccountname
       |Next  
       |SpisGroup=str  
       |End Function
       |");
       Ответ=  олеСкрипт.Run("SpisGroup");
   Исключение
       Сообщить(ОписаниеОшибки());
   КонецПопытки;
   возврат Ответ;
КонецФункции




Функция РазобратьГруппыПользователяВсписок(ПользовательИзАДА)
   СтрокаГрупп=СтрокаГрупПользовтаеля(ПользовательИзАДА);
   Если СтрокаГрупп<>"" Тогда
       СписокГруппПользователя=СоздатьОбъект("СписокЗначений");    
       ДлиннаСтроки=СтрДлина(СтрокаГрупп);
       МногострочнаяСтрокаГрупп=СтрЗаменить(СтрокаГрупп,"@",РазделительСтрок);
       //Сообщить(ДлиннаСтроки);
       Для я=1  По СтрКоличествоСтрок(МногострочнаяСтрокаГрупп) Цикл
           СтрокаИзМногстрочногоТекста=СтрПолучитьСтроку(МногострочнаяСтрокаГрупп,я);
           Если Найти(Врег(СтрокаИзМногстрочногоТекста),"1С") <> 0 Тогда
               ТабГруппПользователей.НоваяСтрока();
               ТабГруппПользователей.Пользователь=ПользовательИзАДА;
               ТабГруппПользователей.Признак="База1С";
               ТабГруппПользователей.Группа=СокрЛП(СтрокаИзМногстрочногоТекста);
           ИначеЕсли Найти(Врег(СтрокаИзМногстрочногоТекста),"SMS") <> 0 Тогда
               ТабГруппПользователей.НоваяСтрока();
               ТабГруппПользователей.Пользователь=ПользовательИзАДА;
               ТабГруппПользователей.Признак="СМС";
               ТабГруппПользователей.Группа=СокрЛП(СтрокаИзМногстрочногоТекста);
           Иначе
               ТабГруппПользователей.НоваяСтрока();
               ТабГруппПользователей.Пользователь=ПользовательИзАДА;
               ТабГруппПользователей.Признак="Неопределено";
               ТабГруппПользователей.Группа=СокрЛП(СтрокаИзМногстрочногоТекста);
               
           КонецЕсли;        
       КонецЦикла;                    
   КонецЕсли;                      
КонецФункции
2 andrewks
 
12.09.11
13:10
ПользовательИзАДА

О_о
3 Lepochkin
 
12.09.11
13:26
Тебе нужно просто список групп пользователя из олешной базы получить? Зачем для этого скрипты? Штатно ведь все делается...
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn