Group

  • Автор темы root
  • Дата начала
R

root

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

morpheus

скриптописец
07.08.2006
3 915
1
#3
This script displays all the roles that are enabled for Bob Kidder. For example, the script might display "[Project Leader]" and "[Writer]."
Код:
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
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#4
Для: Morpheus
Можно просто @UserRoles. Только это не то, что хочет root. :blink:
 

morpheus

скриптописец
07.08.2006
3 915
1
#5
Для: Medevic
гы точно,
а что же root хочет, чтото я понять не могу
 

Kee_Keekkenen

Well-known member
05.09.2006
639
4
#6
можно получить коллекцию документов "Групп", в которых указан данный пользователь,
например по такой формуле
formula = {SELECT form="Group" & @contains(@LowerCase(} + "Members" + {);"} + Lcase(session.username) + {")}

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

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#7
Для: Kee_Keekkenen
Можно. Только всё немного сложнее. В группе могут содержаться другие группы.
Вот мой код, который раскладывает группу на пользователей. В нем есть некоторые недостатки. :blink:
Если его немного поправить, то можно получить список групп в которых находится пользователь.
inList - содержит список имен, который надо разложить.
outList - результат.

Код:
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))));
 

Kee_Keekkenen

Well-known member
05.09.2006
639
4
#8
не путайте теплое с мягким.. я написал то, что просили ...

другое дело групп может быть несколько .. тогда имя группы должно содержать что-то уникальное в имени чтоб можно было взять нужную группу
 
30.05.2006
1 345
11
#9
Доброго всем времени суток.
В domino Directory в разделе группы создал группу AST в нее отнес определенное количество пользователей. Возможно в документе получить группу текущего пользователя ?
C 5-ки появилась приятная ф-ция @UserNamesList

For a database on a server or a local database with "Enforce a consistent Access Control List across all replicas" in effect, @UserNamesList returns a text list containing the following information for the current user:
- Common name
- All hierarchical names (fully distinguished) that include the user name; for example, CN=My Name/OU=My Org Unit/O=My Org, plus */OU=My Org Unit/O=My Org, */O=My Org, and *
- Any roles associated with the user in the ACL
- All groups to which the user belongs (only if the database is on a server)