Page 1 sur 2

lecteur et auteur, encore eux

MessagePublié: 12 Sep 2006 à 10:43
par zerony
bonjour,
au terme de ma patience, je post!
j'ai une base ou je n'utilisais pas de champ lecteur auteur.
aujourd'hui j'en ai besoin.
si je prend un utilisateur lambda, il voit bien uniquement ses doc et peut les modifier => objectif.
Sur les docs existant préalablement dans la base (qu'il n'est pas censé voir), j'ai passé un agent qui dit :
FIELD reader :="[ADM]":@ServerName;
FIELD author :="[ADM]":@ServerName;
FIELD recuperation :="[RECUP]";

mon utilisateur lambda voit tous les anciens doc!
les champs sont bien multivalués et lorsque je passe l'agent et que j'ouvre un doc, les champs sont bien remplis avec [ADM]:nomserveur
la base est sur le serveur
lambda n'est pas dans le groupe ADM
je ne vois pas ou je me suis loupé

merci pour votre aide

MessagePublié: 12 Sep 2006 à 10:47
par zerony
j'oubliais, autoriser l'utilisation des masques enregistrés dans cette base n'est pas coché

MessagePublié: 12 Sep 2006 à 11:38
par Michael DELIQUE
salut

déjà c'est pas la peine de nomé le serveur directement, tu n'as qu'a lui donner le role "ADM" ça marche aussi bien. ( et ça t'évitera pas mal de déboire si tu change de serveur.

ensuite quand tu as l'accès en écriture tu as d'office l'accès en lecture donc le FIELD reader :="[ADM]":@ServerName; ne sert à rien


ensuite, ton champ recuperation il est de type auteur ou lecteur ? ton user lambda a le role recup ?

MessagePublié: 12 Sep 2006 à 13:20
par zerony
ok: il me reste 2 champ auteurs avec dans l'un [ADM] et dans l'autre [RECUP], Merci pour ces conseils
le user lambda n'a aucun role. j'ai repassé l'agent pour remettre correctement dans tous les documents, les valeurs dans les 2 champs auteurs et j'ai verifié.
Les documents s'affichent toujours pour mon lambda

MessagePublié: 12 Sep 2006 à 13:29
par philippe
Si tu n'as pas de champs lecteur ou si celui-ci est vide, le document restera visible pour tout le monde.
Il faut donc remplir avec ce que tu veux au moins un champ lecteur.

MessagePublié: 12 Sep 2006 à 13:37
par zerony
je viens de remettre le champs "reader" qui contient "[ADM]". j'ai relancé l'agent puis verifier sur qlq document que les valeurs etaient bonnes. tout est ok, sauf que mon lambda voit encore tout. :shock:

MessagePublié: 12 Sep 2006 à 14:25
par zerony
Pour resumer.
un masque avec 1 champs autheur, 1 champ lecteur.
ils existait des documents avant que je n'ajoute ces champs.
valeur par defaut de ces champs :
Code : Tout sélectionner
"[ADM]":@Name( [Canonicalize];@UserName)


Lorsque un utilisateur lambda (qui n'a pas le role ADM) crée des nouveaux documents, il est le seul a les voir et a les editer avec ceux qui ont le role ADM.

un agent qui tourne sur tous les doc de la base (lambda ne doit pas voir les anciens documents):
Code : Tout sélectionner
FIELD author :="[ADM]";
FIELD reader:="[ADM]";


je le lance, verifie dans quelques doc au hazard, pas de probleme les valeurs sont la.
Lambda les voit encore.[/code]

MessagePublié: 12 Sep 2006 à 15:52
par oguruma
je crois que ton pb vient de là :
tu n'as pas la propriété du genre Indicateurs de champ : SUMMARY READ-ACCESS NAMES quand tu regardes les propriétés des champs à partir d'un document
idem pour Indicateurs de champ : SUMMARY READ/WRITE-ACCESS NAMES

j'ai déjà donné.... dans ce genre... et avec un FIELD il est difficile de créer un champ de type Auteur

il faut passer par du LS (pas le choix et utiliser la méthode New NotesItem)
voir aide Designer
il y a une partie sur la création de ce type de champ Author.. etc...
il faut le préciser dans la création...

je m'en suis toujours sorti comme cela

MessagePublié: 12 Sep 2006 à 16:15
par zerony
Merci oguruma, je vais essayé ca.
J'ai remarqué que lorsque j'ouvre un document en modif et que je l'enregistre, il disparait de la liste des doc de lambda...

MessagePublié: 12 Sep 2006 à 16:54
par zerony
ta solution etait la bonne.
le code :
Code : Tout sélectionner
Sub Initialize
   Dim session As New NotesSession
   Dim view As NotesView
   Dim doc As NotesDocument
   Dim item As NotesItem
   
   Set db = session.CurrentDatabase
   Set view = db.GetView("admin")
   
   Set doc = view.GetFirstDocument
   While Not ( doc Is Nothing )
      Dim auteur As New NotesItem(doc, "auteurs", "[ADM]", AUTHORS)
      Dim lecteur As New NotesItem(doc, "auteurs", "[ADM]", READERS)
      Call doc.Save(True,True)
      Set doc = view.GetNextDocument( doc )
   Wend
End Sub

Plusieurs heures perdues pour rien :cry:

Merci seigneur oguruma :D

MessagePublié: 12 Sep 2006 à 20:55
par oguruma
merci ça fait plaisir
pour le seigneur attendons un peu... ;)

MessagePublié: 08 Avr 2010 à 15:11
par Cyril Niang
Salut,

Je suis exactement dans la même situation que zerony.
J'ai créé un agent avec le code suivant :
Code : Tout sélectionner
Sub Initialize
   Dim db As New NotesDatabase("","Operations\OUTLOOK 2005\Sahel2.NSF")
   Dim view As NotesView
   Dim doc As NotesDocument
   Dim item As NotesItem
   Dim newValues( 0 To 1 ) As String
   Dim cpt As Integer
   Set view = db.GetView("TLDOC")
   Set doc = view.GetFirstDocument
   
   cpt = 0
   While Not ( doc Is Nothing )
      cpt =cpt +1
      newValues( 0 ) = doc.GetItemValue("NomCommercial")(0)
      newValues( 1 ) = "[DGX]"
      Dim auteur As New NotesItem(doc, "Auteur", newValues, AUTHORS)
      Dim lecteur As New NotesItem(doc, "Lecteur", "[DGX]", READERS)
      success = doc.ComputeWithForm( False, False )
      If success Then
         Call doc.Save( True, True )
      End If
      
      Print "Cpt : " + Cstr(cpt)
      Print "AUTEUR : " + doc.GetItemValue("Auteur")(0)
      Print "LECTEUR : " + doc.GetItemValue("Lecteur")(0)
      
      Set doc = view.GetNextDocument( doc )
   Wend
Erreur:
   Print "Erreur : " & Error$(Err) & " à la ligne : " & Erl
End Sub

Seulement voilà, j'arrive tjs en tant que Gestionnaire à voir tous les documents de la base.
Je ne comprend pas!!!

MessagePublié: 08 Avr 2010 à 15:17
par Michael DELIQUE
salut

tu n'aurrais pas un roles qui donnel'acces ?

MessagePublié: 08 Avr 2010 à 15:22
par Cyril Niang
En fait le problème c'est que j'ai bien un champ :
AUTEUR : Jean Dupond, [DGX]
LECTEUR : [DGX] (car il faut au moins un lecteur pour que le cloisonnement fonctionne!

Et lorsque je me connecter avec Bob Doe (par exemple), il voit tous les docs, compris ceux de Jean Dupond. Où est ce que j'ai mer...?

MessagePublié: 08 Avr 2010 à 15:23
par Michael DELIQUE
j'ean dupond n'as pas le role [DGX ] ?