Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: TMC am 24.10.03 - 21:23:52

Titel: Leserfeld: kann trotzdem Doks sehen
Beitrag von: TMC am 24.10.03 - 21:23:52
Hi,

mit folgendem Agenten habe ich das Feld p_Readers gesetzt auf "[All]":
Sub Initialize
   Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim dc As NotesDocumentCollection
   Dim doc As NotesDocument
   Dim nextdoc As notesdocument
   Dim feldwert As Variant
   Set db = session.CurrentDatabase
   Set dc = db.AllDocuments
   Set doc = dc.GetFirstDocument
   
   Do Until doc Is Nothing
      Set nextdoc = dc.getnextdocument(doc)
      feldwert = doc.GetItemValue("Form")
      If feldwert(0) = "Person" Then
         doc.p_Readers = "[All]"
         Call doc.save(False, False)
      End If
      Set doc = nextdoc
   Loop
   
   
End Sub

Die Rolle habe ich selbst nicht, kann aber trotzdem die Doks in sehen (in den Views, kann die Doks auch öffnen etc.). Konsistente ACL is ON.

Ein Rechtsklick auf ein Dok und Feldwert sagt, dass da steht: "[All]".
Es ist auch ein Lesefeld (zumindest steht dort "READ-ACCESS NAMES").
Der Agent an für sich funktioniert also.

Warum kann ich denn die Doks trotzdem sehen?
Irgendwas muss ich übersehen haben....

TMC
Titel: Re:Leserfeld: kann trotzdem Doks sehen
Beitrag von: Semeaphoros am 24.10.03 - 22:40:38
Da gab es mal so einen Spezialfall, wenn Dein Agent Deine Unterschrift trägt, solltest Du doch im $Updates-Feld drin stehen und wenn Du da drin stehst, bekommst Du den Zugriff. Kann aber sein, dass ich mich da jetzt vergriffen habe und das nicht stimmt.
Titel: Re:Leserfeld: kann trotzdem Doks sehen
Beitrag von: TMC am 25.10.03 - 00:24:51
Himmel.....

Na ja, selbst wenn ich manuell ins Dok reingehe, das Lesefeld leere, speichere, wieder reingehe, [All] reinsetze, speichere, dann erscheint das Doc immer noch.

Vielleicht sonst noch ein Tipp? Ich hab schon ziemlich vieles durchprobiert....

TMC
Titel: Re:Leserfeld: kann trotzdem Doks sehen
Beitrag von: Semeaphoros am 25.10.03 - 09:25:37
Also kein Tip mehr, insbesondere weil bei späterem Nachdenken mein erster "Tip" gar keiner ist. das stimmt ganz einfach nicht, was ich da geschrieben habe, zumindest nicht in dieser Form. Es müsste verschwinden, ich hab mich auch schon selber aus einem Dokument ausgesperrt. A-bär: es passiert wohl erst, nachdem die Datenbank geschlossen (vollständig, also sowohl im Client wie auch im Designer) geschlossen wird und dann wieder geöffnet. Aber mehr fällt mir dazu nicht ein.
Titel: Re:Leserfeld: kann trotzdem Doks sehen
Beitrag von: Glombi am 25.10.03 - 11:25:35
Wenn Du das Dokument dennoch lesen kannst, dann gibt es ein anderes Autoren- oder Lesenamensfeld, in dem Du namentlich, per Gruppe oderPer Rolle stehst.
Prüf mal alle Felder in den Dokumenteigenschaften nach, ob dort noch ein anderes Read bzw. Read/Write Access Feld ist.

Andreas
Titel: Re:Leserfeld: kann trotzdem Doks sehen
Beitrag von: koehlerbv am 25.10.03 - 12:50:56
Wenn im Feld p_Readers wirklich READ_ACCESS_NAMES steht, sieht alles erstmal ordentlich aus. Ich würde aber trotzdem den Agent ergänzen, um sicherzustellen, daß der Agent IMMER die ISReaders property setzt:

Code
Dim session As New NotesSession 
   Dim db As NotesDatabase 
   Dim dc As NotesDocumentCollection 
   Dim doc As NotesDocument 
   Dim nextdoc As notesdocument
   Dim feldwert As Variant 
   [b]dim item as NotesItem[/b]
   Set db = session.CurrentDatabase 
   Set dc = db.AllDocuments 
   Set doc = dc.GetFirstDocument 
   
   Do Until doc Is Nothing 
      Set nextdoc = dc.getnextdocument(doc)
      feldwert = doc.GetItemValue("Form") 
      If feldwert(0) = "Person" Then 
         doc.p_Readers = "[All]"
         [b]set item = doc.GetFirstItem ("p_Readers")
         If not (item is nothing) then
             item.Readers = true
         End If[/b]
         Call doc.save(False, False)
      End If 
      Set doc = nextdoc
   Loop 
      
End Sub

Wo hast Du Dir denn die Rolle genommen / gegeben ? Die DB hat ja konsistente ACL, ACL-Änderungen sollten also auf dem Administrationsserver erfolgen.

HTH,
Bernhard
Titel: Re:Leserfeld: kann trotzdem Doks sehen
Beitrag von: TMC am 25.10.03 - 13:11:00
ich danke Euch allen.

Der für mich jetzt entscheidende Tipp kam von Andreas, ich hatte nämlich ein weiteres Autoren Feld (also read / write)  :o!!

Hatte jetzt schon ewig rumprobiert, aber dabei das Autorenfeld völlig übersehen...

Sorry für die Verwirrung.

Grüße,
TMC
Titel: Re:Leserfeld: kann trotzdem Doks sehen
Beitrag von: Semeaphoros am 25.10.03 - 23:23:27
Autorenfeld? Das sollte aber ein Leserfeld nicht überschreiben. Puzzled .....
Titel: Re:Leserfeld: kann trotzdem Doks sehen
Beitrag von: TMC am 25.10.03 - 23:42:48
hmm, dachte ich auch ursprünglich....

Abär:

User 1: steht in Leserfeld
User 2: steht in Autorfeld

User 2 kann dann Doks lesen, obwohl er nicht in Leserfelde steht.....

Zumindest jetzt meine Erfahrung (bisher hab ich immer angenommen, User2 müßte auch im Leserfeld stehen um die Doks überhaupt zu sehen....)


TMC
Titel: Re:Leserfeld: kann trotzdem Doks sehen
Beitrag von: Semeaphoros am 25.10.03 - 23:57:42
Das wurde so auch schon dokumentiert, scheint, dass man das mal unter die Lupe nehmen sollte .....
Titel: Re:Leserfeld: kann trotzdem Doks sehen
Beitrag von: Glombi am 26.10.03 - 10:42:35
Wer ein Dokument lesen darf, ergibt sich aus der Gesamtsumme aller Autoren- und Lesenamensfelder.

In den Dok.-Eigenschaften steht daher ja uach Read/Write Access bei Autorennamenfeldern. Wobei das Write ja nur für die Zugriffsebene Autor relevant ist. Editoren und höher dürfen immer bearbeiten, Leser in der Regel nicht (außer mit dem Recht öffentliche Dokumente zu schreiben).

Andreas
Titel: Re:Leserfeld: kann trotzdem Doks sehen
Beitrag von: Manfred Dillmann am 26.10.03 - 18:29:14
@Semeaphoros:

>> Das wurde so auch schon dokumentiert, scheint, dass man das mal unter die Lupe nehmen sollte .....<<

Hast Du da eine konkrete Quelle? Ich habe das schon so oft gelesen/gehört, das IBM/Lotus das so dokumentiert hätte. Auf genaues Nachfragen kam aber dann nie ein konkreter Hinweis auf eine Doku oder Hilfe-DB... wo das so drinn stehen würde.

Es war schon immer so, dass ein Autoren-Feld auch den "read-access" gewährt.

Und unter uns gesagt/geschrieben:
Was würde es für einen Sinn machen, jemandem Autoren-Zugriff auf ein Dokument zu geben, welches er nicht sehen kann? ;-)

Gruss
Manfred
Titel: Re:Leserfeld: kann trotzdem Doks sehen
Beitrag von: Semeaphoros am 26.10.03 - 18:49:54
Bin am Suchen, ist aber schon länger her, und ist durchaus möglich, dass das irgendwo auf Notes-net oder so war und nicht in der wirklich offiziellen Doku. Abgesehen davon, es macht durchaus Sinn, dass der Schreiber sein Dokument nicht mehr sehen kann, dafür gibt es ja zum Bleistift in der ACL den "Depositor". Typischer Fall: das Ausfüllen eines Fragebogens, der dann woanders ausgewertet werden soll, speziell irgendwelche Internet-Formulare haben fast immer die Eigenschaft, dass man sie nach dem Abschicken nicht wieder zu sehen bekommt, also so ganz abwegig ist das gar nicht.
Titel: Re:Leserfeld: kann trotzdem Doks sehen
Beitrag von: Manfred Dillmann am 26.10.03 - 19:19:30
Hallo Semaphoros!

>>Bin am Suchen, ist aber schon länger her, und ist durchaus möglich, dass das irgendwo auf Notes-net oder so war und nicht in der wirklich offiziellen Doku.<<

Dann bin ich ja beruhigt. Das Gerücht taucht eben immer wieder auf... zum Glück kann ja bislang niemand eine Quelle benennen... ;-)

>>Abgesehen davon, es macht durchaus Sinn, dass der Schreiber sein Dokument nicht mehr sehen kann, dafür gibt es ja zum Bleistift in der ACL den "Depositor".<<

Sonderfälle gibt´s natürlich unendlich viele... ich denke, es ging hier aber eher um die "Standard-Nutzung" von Leser-/Autorenfeldern.

Gruss
Manfred
Titel: Re:Leserfeld: kann trotzdem Doks sehen
Beitrag von: Semeaphoros am 26.10.03 - 19:35:40
Na, ich denke auch, mir liegt nicht daran, recht zu bekommen, das nützt niemandem wirklich, sondern auch ich will wissen, was da genau Sache ist. Common Opinion ist ja nun offenbar, dass die Autorenfelder für den Zugriff nicht reichen, es ist aber gut möglich, dass da eine "Schüttelbecherinterpretation" zur "Common Opinion" geworden ist. Problem ist ganz eindeutig, dass die Hilfe in diesem Zusammenhang kaum als Hilfe bezeichnet werden kann, die Infos sind total zerstreut und überall, wo diese Felder erwähnt werden, nicht vollständig.
Titel: Re:Leserfeld: kann trotzdem Doks sehen
Beitrag von: Manfred Dillmann am 26.10.03 - 19:40:03
Hallo Semaphoros!

>>Problem ist ganz eindeutig, dass die Hilfe in diesem Zusammenhang kaum als Hilfe bezeichnet werden kann, die Infos sind total zerstreut und überall, wo diese Felder erwähnt werden, nicht vollständig.<<

Hat man das schon jemals anders erlebt? ;-)
Oft erzählt einem die Hilfe leider nur, was man eh schon wusste oder sich gedacht hat. Aber die Kerninfo fehlt dann leider sooooo oft...

Wenn mir sowas unter kommt, mache ich mir halt schnell eine kleine Test-DB und kläre das so ein für alle mal.

Gruss
Manfred
Titel: Re:Leserfeld: kann trotzdem Doks sehen
Beitrag von: Glombi am 26.10.03 - 19:42:37
Hier die Lösung aus der Knowledge Base (#113202 vom 24.04.2001):

Author Name Fields, Reader Name Fields and Document Security

Problem:

If a document contains an Author Names field and a Reader Names field, which one takes precedence in terms of reader access?

Solution:

Reader Access is cumulative.  If UserA is listed in the Reader Names field and UserB is listed in the Author Names field of a document then both UserA and UserB will be able to read the document.  UserB will also be able to edit the document.

This scenario also holds true for a Reader Access List created at the form level and an Author Names field.


Grüße
Andreas
Titel: Re:Leserfeld: kann trotzdem Doks sehen
Beitrag von: Glombi am 26.10.03 - 19:45:52
Und das ist sicher auch interessant (#113732 vom 21.01.2000):

What is the Difference Between Reader Name and Author Name Fields?

Problem:

What are Reader Names and Author Names Fields and how are they different?

Solution:

Reader Names fields determine who may read a document and Author Names fields determine who may edit a document.  Both types of fields can contain combinations of individual user names, server names, group names, and access roles.  Documents and forms may contain more than one of either kind of these two fields.

You can read a document if any of the following are true:

1.   The database is local to you (i.e. you are not accessing it via a Notes Server).

2.   There is no Reader Access List for the document, and you have at least Reader Access to the database.

3.   There is a Reader Access List, but you are included in the form's Reader Access List (Design>>Form Attributes>>Read Access), or in any of the Reader Names fields in the form, or in the document's Reader Access List (Edit>>Security>>Read Access), or in any of the Author Names fields in the form.  As stated above, you can be included as part of a group or role, in addition to having your name specifically written in.

You can edit a document if any of the following are true:

1.   You can read the document (see above) and you have at least Editor Access to the database.

2.   You have Author Access to the database and you are included in an Author Names field in the form / document.

Notes to Application Developers or Managers:

1.   When creating Reader or Author Names fields, it is wise to check ON the Allow multi-value check box otherwise, you may end up with an invalid list of people, servers, groups, and roles who can access that document.  In such a circumstance, you would need to access the database locally (at the server's client) to fix the problem (presumably by running a macro or performing a Tools>>Refresh Fields after making the appropriate changes to the form).

2.   No one can edit a document which they cannot read.

3.   An Author Names field grants reader's rights as well as author rights.

4.    Failure to include a person/group/role/server from a Reader Names or Author Names field or Reader Access List denies the appropriate access to the person/group/role/server.

5.   Users with Reader Access to a database can never edit any documents.

6.   Running aa agent which places names into a Reader or Author Names field will result in that field being a plain Summary Text field.  To make the field Summary Read-Access Names or Summary Read/Write-Access Names, respectively, you would have to either:

-   manually edit and save the document,
-   in Notes 4.x or 5.x, create an agent which runs @Command(ToolsRefreshSelectedDocs) or @Command(ToolsRefreshAllDocs) to refresh the Data type of those documents.

Lotus Quality Engineering is aware of this issue.

7.   The API can place names into a Reader or Author Names field and preserve the special Summary status of the field.

**   Note:  The LotusScript back-end methods for populating Reader and Author Names fields do not preserve the Summary status unless the New method is used, in combination with the IsReader or IsAuthor property, to create the field.  If this is not the case, the IsSummary flag must be set manually to TRUE.

8.   The creator of a document cannot edit the document after it is saved unless he or she is included in an Authors field or has Editor access to the database.

9.   A document with multiple Reader Names fields or Author Names fields will allow access to the entire list of these fields.  Notes concatenates these fields when determining who may read or edit a document.
Titel: Re:Leserfeld: kann trotzdem Doks sehen
Beitrag von: Semeaphoros am 26.10.03 - 19:48:48
Manfred:
Stimmt, wobei ich das nicht wirklich als ein Problem empfand und deswegen nicht weiter überprüfte. In so eine Situation wie TMC hier geraten ist, bin ich ganz einfach nie reingelaufen, somit ergab sich kein Anlass daran zu zweifeln und somit auch kein Testbedarf.

Andreas:
Das gibt mal eine offizielle Dokumentation, das ist gut so, trotzdem, woher kommt diese Aussage über die Autorenfelder? Diese Aussage ist derart verbreitet, dass sie an "hevorragender Stelle", sprich sehr nah von Lotus/Iris (das ist eindeutig vor der Integration in die IBM Struktur) aufgetaucht sein muss.
Titel: Re:Leserfeld: kann trotzdem Doks sehen
Beitrag von: Semeaphoros am 26.10.03 - 19:55:43
Danke Andreas, Dieses zweite Dokument ist das erste Mal, dass ich die Sache wirklich durchgehend in einem Dokument beschrieben sehe. Das würde doch eigentlich in die Hilfe gehören. Es zeigt übrigens auch, dass das Testen in diesem Bereich recht schwierig ist, da es eine Unzahl von Kombinationen gibt: Dokument selbst, Dokument-Access, Form-Felder, Form-Access und ACL und erst der Coktail von allem zusammen ergibt das Endresultat.
Titel: Re:Leserfeld: kann trotzdem Doks sehen
Beitrag von: Manfred Dillmann am 26.10.03 - 19:59:53
Hallo!

@Andreas:
Danke für das Suchen in der KB. Da findet man wenigstens die entsprechenden Antworten... ;-)

@Semeaphoros:
>>In so eine Situation wie TMC hier geraten ist, bin ich ganz einfach nie reingelaufen, somit ergab sich kein Anlass daran zu zweifeln und somit auch kein Testbedarf.<<

DAS würde aber im Umkehrschluss bedeuten, dass (fallst Du selbst was in Notes programmierst) in jeder Deiner Applikationen durch Deine falsche Annahme ggf. Sicherheitslücken sind. Autoren könnten Dokumente lesen, die sie nicht lesen dürfen... ich kann mir eigentlich nicht vorstellen, das man in diese "Falle" nicht schon mit den einfachsten Anwendungen "reingelaufen" ist... aber egal. Jetzt ist ja alles geklärt... :-)

>>diese Aussage über die Autorenfelder? Diese Aussage ist derart verbreitet...<<

Liegt wohl an den Begriffen Leserfelder und Autorenfelder. Wen im ersten steht darf lesen und wer im zweiten steht darf Editieren.

Ist vielleicht wie mit der ACL-Ebene Autor:
Hier wird immer in den Admin-Kursen erzählt: Wer diese Ebene hat, darf Dokumente erstellen, ändern und löschen. DAS stimmt ja aber nur, wenn der Entwickler ein "Autorenfeld" in der Maske hat, in der MINDESTENS der Ersteller (z.B. Berechnet beim Anlegen) eingetragen wird...

Gruss
Manfred
Titel: Re:Leserfeld: kann trotzdem Doks sehen
Beitrag von: Semeaphoros am 26.10.03 - 20:07:44
Manfred:
Theoretisch hast Du recht, dass da ein Sicherheitsloch sein könnte, kann Dir aber sagen, das ist nicht der Fall. Wie Du schon selber festgestellt hast, ist in den meisten Fällen gegeben, dass wer editieren darf, das Dok später auch lesen darf. Die andere Variante habe ich bisher jeweils mit einer separaten Datenbank gelöst, in der der "Depositor" in der ACL als Default definiert ist (so wie bei der mail.box), dann braucht man sich schlussendlich gar nicht um Lese- und Autorenfelder zu kümmern.

Stimmt, die ACL wird auch häufig falsch interpretiert, inklusive Instruktoren.

Ich werde trotzdem versuchen, herauszufinden, wo diese Geschichte auftaucht und falls ich was entdecke, werde ich berichten.
Titel: Re:Leserfeld: kann trotzdem Doks sehen
Beitrag von: Semeaphoros am 26.10.03 - 20:56:10
Der zweite KB-Text ist wirklich gut. Da gibt es eigentlich nur eines zu ergänzen, das sich zwar bei genauer Interpretation aus dem Text ergibt, sich aber trotzdem lohnt, separat erwähnt zu werden:

Besitzt ein Document mindestens ein nicht leeres Leserfeld oder eine Leserzugriffsliste (Doc-Eigenschaften), beschränkt sich der Zugriff ausschliesslich auf die Namen, die in allen Lese-Feldern, Autor-Feldern und der Lese-Zugriffsliste aufgeführt (oder per Rolle oder Gruppe referenziert) sind. Alle anderen Namen werden ausgeschlossen.

Besitzt das Dokument hingegen nur ein nicht leeres Autorenfeld, dann ist das nicht ausschliesslich, die Namen im Autorenfeld bekommen zwar in jedem Fall auch Leserechte, das Lesen ist aber im Gegensatz zu einem Lesefeld nicht auf diese Namen beschränkt.

Weiter: Ein leeres Leserfeld ist gleichbedeutend mit dem Eintrag "*", beide geben allen Lesezugriff, hingegen ein leeres Autorfeld gibt niemandem Edit-Zugriff, der nur Autor-Rechte in der Datenbank hat (ab Editor spielt es ja keine Rolle). Hier muss ein * eingetragen sein, wenn man allen Autoren auch Zugriff geben will.

Damit hätten wir glaube ich das Thema vollständig abgesteckt.
Titel: Re:Leserfeld: kann trotzdem Doks sehen
Beitrag von: Jörg P. am 27.10.03 - 13:04:24
Hi,

folgenden Artikel finde ich noch ganz passend zum Thema:

The 11 Rules Concerning Readers and Authors Fields :
http://www.breakingpar.com/bkp/home.nsf/Doc?OpenNavigator&U=87256B280015193F87256B820062DA63 (http://www.breakingpar.com/bkp/home.nsf/Doc?OpenNavigator&U=87256B280015193F87256B820062DA63)

(Link auf die Original-URL funzt leider irgndwie nicht)
Titel: Re:Leserfeld: kann trotzdem Doks sehen
Beitrag von: g202e am 27.10.03 - 15:06:27
Hey Harvey,

nun habe ich den ganzen Thread gelesen und wollte gerade den Link posten, aber du warst schneller.
Aber mit diesen 11 Regeln lässt sich jedenfalls besser arbeiten als mit der Hilfe!