Group

Тема в разделе "Lotus - Программирование", создана пользователем root, 8 фев 2007.

  1. root

    root Гость

    Доброго всем времени суток.
    В domino Directory в разделе группы создал группу AST в нее отнес определенное количество пользователей. Возможно в документе получить группу текущего пользователя ?
     
  2. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Возможно. :blink:
    Через перебор всех групп.
     
  3. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    Код (Text):
    Dim session As New NotesSession
    Dim db As NotesDatabase
    Dim acl As NotesACL
    Dim entry As NotesACLEntry
    Set db = session.CurrentDatabase
    Set acl = db.ACL
    Set entry = acl.GetEntry( "Bob Kidder/East/ACME" )
    Forall r In entry.Roles
    Messagebox( r )
    End Forall
     
  4. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Для: Morpheus
    Можно просто @UserRoles. Только это не то, что хочет root. :blink:
     
  5. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    Для: Medevic
    гы точно,
    а что же root хочет, чтото я понять не могу
     
  6. Kee_Keekkenen

    Kee_Keekkenen Well-Known Member

    Регистрация:
    5 сен 2006
    Сообщения:
    616
    Симпатии:
    4
    можно получить коллекцию документов "Групп", в которых указан данный пользователь,
    например по такой формуле
    formula = {SELECT form="Group" & @contains(@LowerCase(} + "Members" + {);"} + Lcase(session.username) + {")}

    а потом получить список этих групп..
     
  7. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Для: Kee_Keekkenen
    Можно. Только всё немного сложнее. В группе могут содержаться другие группы.
    Вот мой код, который раскладывает группу на пользователей. В нем есть некоторые недостатки. :blink:
    Если его немного поправить, то можно получить список групп в которых находится пользователь.
    inList - содержит список имен, который надо разложить.
    outList - результат.

    Код (Text):
    inList := @GetField(fieldName);
    explodeGroups := "0" : "1" : "2"; REM {"0" - multi-purpose, "1" - mail only, "2" - access control list only, "4" - server only};
    outList := @Nothing;
    @DoWhile(
    flag := @False;
    tempList := @Nothing;
    @For(i := 1; i <= @Elements(inList); i := i + 1;
    type := @NameLookup([ForceUpdate]; inList[i]; "Type");
    @If(
    type = "Person";
    outList := outList : @NameLookup([ForceUpdate]; inList[i]; "FullName");
    type = "Group";
    @If(
    @IsMember(@NameLookup([ForceUpdate]; inList[i]; "GroupType"); explodeGroups);
    @Do(
    tempList := tempList : @DbLookup("" : ""; @ServerName : "names.nsf"; "Groups"; inList[i]; "Members"; [FailSilent]);
    flag := @True
    );
    outList := outList : @NameLookup([ForceUpdate]; inList[i]; "ListName")
    );
    @Nothing
    )
    );
    inList := @Trim(@Unique(tempList));
    flag
    );
    @Sort(@Trim(@Unique(outList))));
     
  8. Kee_Keekkenen

    Kee_Keekkenen Well-Known Member

    Регистрация:
    5 сен 2006
    Сообщения:
    616
    Симпатии:
    4
    не путайте теплое с мягким.. я написал то, что просили ...

    другое дело групп может быть несколько .. тогда имя группы должно содержать что-то уникальное в имени чтоб можно было взять нужную группу
     
  9. Constantin A Chervonenko

    Constantin A Chervonenko Well-Known Member

    Регистрация:
    30 май 2006
    Сообщения:
    1.288
    Симпатии:
    0
    C 5-ки появилась приятная ф-ция @UserNamesList

     
Загрузка...

Поделиться этой страницей