Page 1 sur 2
récupérer le role d'une personne

Publié:
24 Juil 2003 à 12:23
par clémentine
Bonjour à tous,Savez-vous s'il existe une formule permettant de récuper le role d'une personne indiquée dans un champ de type noms ?Si non peut-on le faire en LotusScript ?
Re: récupérer le role d'une personne

Publié:
24 Juil 2003 à 12:33
par Stephane Maillard
Bonjour,Normalement @UserRoles retourne la liste des rôles attribués à l'utilisateur courant.[%sig%]
Re: récupérer le role d'une personne

Publié:
24 Juil 2003 à 12:36
par Rigol'man
ca doit etre realisable en script :- recuperer l'acl de la base - recuperer l'entrée de la personne - recuperer les roles associés jamais essayé mais en theorie c faisable.

)[%sig%]
Re: récupérer le role d'une personne

Publié:
24 Juil 2003 à 12:40
par clémentine
Ce n'est pas l'utilisateur courant que je souhaite récupérer mais le role de la personne renseignée dans le champ..je v essayer en script..Merci de vos réponses.
Re: récupérer le role d'une personne

Publié:
24 Juil 2003 à 12:43
par Rigol'man
par contre, tu risques d'avoir des soucis en script si la personne n'est pas declarée nominativement dans la LCA (utilisation de groupes) car GetEntry retournera "Nothing" !![%sig%]
Re: récupérer le role d'une personne

Publié:
24 Juil 2003 à 12:44
par Stephane Maillard
Bonjour,Voici un script qui ajoute des rôles dans la LCA, cela est un début pour expliquer sa manipulation :Sub Initialize Dim S As New NOTESSESSION Dim Db As NotesDatabase Dim ACL As NOTESACL Dim Entry As NOTESACLEntry Dim TotalEditors As Integer Dim TotalAuthors As Integer Dim Roles (7) As String Roles(0) = "UserCreator" Roles(1) = "UserModifier" Roles(2) = "GroupCreator" Roles(3) = "GroupModifier" Roles(4) = "NetCreator" Roles(5) = "NetModifier" Roles(6) = "ServerCreator" Roles(7) = "ServerModifier" Set DB = S.CurrentDatabase If Not DB.IsOpen Then Print "Error Not open" Goto endit End If Set ACL=DB.ACL Forall i In Roles ACL.AddRole(i) End Forall ACL.Save Set Entry=ACL.GetFirstEntry TotalEditors = 0 TotalAuthors = 0 Do Until Entry Is Nothing If (Entry.level > 3) Then TotalEditors = TotalEditors + 1 Forall i In Roles Entry.EnableRole(i) End Forall Elseif( Entry.level = 3) Then If Entry.CANCREATEDOCUMENTS Then TotalAuthors = TotalAuthors + 1 Entry.EnableRole("UserCreator") Entry.EnableRole("GroupCreator") Entry.EnableRole("NetCreator") Entry.EnableRole("ServerCreator") End If End If ACL.Save Set Entry = ACL.GetNextEntry(Entry) Loop ACL.Save Dim Message As String Dim BoxType As Long BoxType=MB_OK + MB_ICONINFORMATION Message = "Gave all new roles to " + Cstr(TotalEditors) + " entry(s) who have Editor access or above. Gave create-only roles to " + Cstr(TotalAuthors) + " entry(s) who have Author with Create access." Messagebox Message, BoxType, "Applied Roles" endit: End Sub[%sig%]
Re: récupérer le role d'une personne

Publié:
24 Juil 2003 à 13:25
par clémentine
Les personnes sont bien déclarées nominativement dans la LCA..Je vais regarder ce code.Merci.
Re: récupérer le role d'une personne

Publié:
24 Juil 2003 à 13:50
par clémentine
je vous explique ma nouvelle situation :j'ai un champ affecte de type noms modifiable.Dans la validation d'entrée de ce champ, je mets : @Command([ToolsRunMacro]; "validationAffectee")où validationAffectee est l'agent suivant :Sub Initialize Dim s As New NotesSession Dim db As NotesDatabase Dim nacl As NotesACL Dim doc As NotesDocument Dim naclentry As NotesACLEntry Dim ws As New NotesUIWorkspace Dim uidoc As NotesUIDocument Dim personne As String Dim listerole As Variant Set uidoc = ws.CurrentDocument 'on récupère la valeur rentrée dans le champ affecte à personne = uidoc.FieldGetText 'on va maintenant chercher la LCA en back end Set db = s.CurrentDatabase Set nacl = db.Acl 'on récupère l entreé de l acl qui correspond au nom Set naclentry = Acl.GetEntry(personne) 'on récupère les roles de cette personne listerole = naclEntry.Roles 'on vérifie que le role réalisateur est bien dedans Forall i In listerole If (i= "réalisateur") Goto label End Forall Messagebox "la personne affecte à doit avoir le role de réalisateur", MB_OK, "attention" label : End statement End Subet j'ai comme message d'erreur : les commandes @ et autres fonctions d'interface utilisateur ne sont pas autorisées dans ce contexte...est ce que cela veut dire que je n'ai pas le droit d'appeler un agent depuis la validation d'entrée?
Re: récupérer le role d'une personne

Publié:
24 Juil 2003 à 14:01
par Stephane Maillard
Re,Sur quel ligne se produit l'erreur ?[%sig%]
Re: récupérer le role d'une personne

Publié:
24 Juil 2003 à 14:17
par clémentine
L'erreur se produit à l'enregistrement du document, donc à la validation d'entrée du champ...
Re: récupérer le role d'une personne

Publié:
24 Juil 2003 à 14:22
par Stephane Maillard
Re,Dans la valeur par défaut du champs est ce qu'il est bien égal à lui même ?[%sig%]
Re: récupérer le role d'une personne

Publié:
24 Juil 2003 à 14:30
par virginie
en le mettant égal à lui même, j'ai toujours la même erreur..
Re: récupérer le role d'une personne

Publié:
24 Juil 2003 à 14:47
par Droad
ça veut dire que tu ne peux pas utiliser @Command dans une validation d'entrée.[%sig%]
Re: récupérer le role d'une personne

Publié:
24 Juil 2003 à 15:06
par Droad
Ton script, il faut le mettre, aprés adaptation, directement soit dans le PostRecalc, soit dans le QuerySave. Passer par des agents pour effectuer des opérations front end, ça ne fait que compliquer oh la la et alourdir aie aie aie ce qui l'est déjà maudit soit domino.[%sig%]
Re: récupérer le role d'une personne

Publié:
25 Juil 2003 à 07:20
par clémentine
J'ai déjà du code dans mon code QuerySave. C'est pour ca, entre autre,que je voulais passer par un agent pour bien distinguer.Je vais essayer dans le PostRecalc.Merci de votre aide.