Autor Thema: $PublicAccess und Leserfelder  (Gelesen 4549 mal)

Offline HH

  • Senior Mitglied
  • ****
  • Beiträge: 339
  • Geschlecht: Männlich
$PublicAccess und Leserfelder
« am: 30.06.15 - 12:49:05 »
Hallo zusammen,

die Kombination $PublicAccess und Leserfeld mit Wert "*" in Dokumenten, scheint nicht zu funktionieren. Die Dokumente werden Anonymous im Browser nicht angezeigt.

ACL mit Anonymous = No Access und Read public documents. Maske, Ansicht und XPage verfügbar für Public Access User.

Wenn ich das Leserfeld aus den Dokumenten lösche, werden sie für Anonymous angezeigt.

Habe ich etwas übersehen, oder ist das ein Feature?

Gruß
Hubert

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: $PublicAccess und Leserfelder
« Antwort #1 am: 30.06.15 - 12:53:22 »
Hallo,

Steht in $PublicAccess nicht immer eine "1", wenn diese Dokumente als Public gelten sollen?
(siehe Kalendereintraege)

Und funktioniert diese Konstelaltion ueberhaupt sauber?


Andreas

Offline HH

  • Senior Mitglied
  • ****
  • Beiträge: 339
  • Geschlecht: Männlich
Re: $PublicAccess und Leserfelder
« Antwort #2 am: 30.06.15 - 13:26:39 »
$PublicAccess ist in meiner Maske eine Dialogliste, damit es dem Anwender überlassen bleibt den Wert auf "1" zu setzen, um das Dokument zu veröffentlichen.

Hubert

Offline Klafu

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.944
  • Geschlecht: Männlich
  • Remember the Cookies!
„Der einzige Mensch, der sich vernünftig benimmt, ist mein Schneider. Er nimmt jedesmal neu Maß, wenn er mich trifft, während alle anderen immer die alten Maßstäbe anlegen in der Meinung, sie paßten auch heute noch...“

Offline HH

  • Senior Mitglied
  • ****
  • Beiträge: 339
  • Geschlecht: Männlich
Re: $PublicAccess und Leserfelder
« Antwort #4 am: 30.06.15 - 14:06:22 »
Merci!

"This issue was reported to Quality Engineering, but it was determined that the software is functioning as designed."

Das ist zwar nicht meine Meinung, aber leider nicht zu ändern.

Gruß
Hubert

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: $PublicAccess und Leserfelder
« Antwort #5 am: 30.06.15 - 14:11:24 »
Zitat
Das ist zwar nicht meine Meinung, aber leider nicht zu ändern.

Wieso nicht?

Im Artikel heisst es doch ganz klar, dass das Leserfeld weg muss, damit das Dokument als Public angesehen werden kann.

Und du hast doch selber geschrieben, dass, wenn du das Leserfeld aus dem Dokument loescht, dass dann der gewuenschte Effekt eingetreten ist.


Andreas

Offline Klafu

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.944
  • Geschlecht: Männlich
  • Remember the Cookies!
Re: $PublicAccess und Leserfelder
« Antwort #6 am: 30.06.15 - 14:13:34 »
Wie Andreas sagt
"Reader Names fields and $PublicAccess fields should not exist on the same document"

Chris
„Der einzige Mensch, der sich vernünftig benimmt, ist mein Schneider. Er nimmt jedesmal neu Maß, wenn er mich trifft, während alle anderen immer die alten Maßstäbe anlegen in der Meinung, sie paßten auch heute noch...“

Offline HH

  • Senior Mitglied
  • ****
  • Beiträge: 339
  • Geschlecht: Männlich
Re: $PublicAccess und Leserfelder
« Antwort #7 am: 30.06.15 - 15:15:10 »
Hallo,

weil ich bislang der Meinung war, dass Dokumente Leserfeldern und "*" für alle lesbar sind. Die Tatsache, dass das reported wurde, zeigt mir, dass andere das auch so oder ähnlich sehen.

Immerhin hat das zur Folge, dass ich bei einer Freigabe die vorhandenen, für einen Workflow benötigten Items entfernen muss. Oder besser gesagt, ich muss die Inhalte erst einmal retten, für den Fall, dass die Freigabe wieder rückgängig gemacht werden soll.

Außerdem müssen die Felder aus der Maske raus, damit sie nicht neu erstellt werden, wenn freigegebene Dokumente noch bearbeitet werden sollen.

Gut, das habe ich nun in meiner Anwendung realisiert. Ich wäre aber auch nicht böse 'drum gewesen, wenn ich mir den Aufwand hätte sparen können.

Hubert

Offline HH

  • Senior Mitglied
  • ****
  • Beiträge: 339
  • Geschlecht: Männlich
Re: $PublicAccess und Leserfelder
« Antwort #8 am: 30.06.15 - 15:24:19 »
Ach so, hier noch meine (Test-) Lösung:

Die Reader Items aus der Maske in eine Teilmaske gepackt, die eingebunden wird, wenn $PublicAccess != "1".

Code
Sub Click(Source As Button)
Dim ws As New NotesUIWorkspace
Dim session As New NotesSession
Dim currentDb As NotesDatabase
Set currentDb = session.CurrentDatabase
Dim col As NotesDocumentCollection
Set col = currentDb.UnprocessedDocuments
Dim doc As NotesDocument
Set doc = col.GetFirstDocument
Dim item As NotesItem
Set item = doc.GetFirstItem( "$PublicAccess" )
Dim q1 As String, q2 As String
q1 = {Möchten Sie die Auswahl des Services "} & doc.subject(0) & {" sperren?}
q2 = {Möchten Sie den Service "} & doc.subject(0) & {" für Web-Benutzer auswählbar machen?}
If Not item Is Nothing Then
If item.Text = "1" Then
If Msgbox( q1, 36, "Freigabe beenden" ) = 6 Then
Call blockDoc( doc )
End If
Else
If Msgbox( q2, 36, "Dokument freigeben" ) = 6 Then
Call publishDoc( doc )
End If
End If
Else
If Msgbox( q2, 36, "Dokument freigeben" ) = 6 Then
Call publishDoc( doc )
End If
End If
Call ws.ViewRefresh
End Sub

Zum veröffentlichen:
Code
Sub publishDoc( doc As NotesDocument )
'Dokument fürs Web freigeben
'Alle Leserfelder in Textfelder umspeichern und aus dem Dokument entfernen
'$PublicAccess auf "1" setzen
Forall elem In doc.items
If elem.type = READERS Then
'Inhalt des Leserfeldes in ein Textfeld sichern
Call doc.ReplaceItemValue( "reader_" & elem.name, elem.values )
'Leserfeld löschen
Call doc.RemoveItem( elem.name )
End If
End Forall
Call doc.ReplaceItemValue( "$PublicAccess", "1" )
Call doc.Save( True, False, True )
End Sub

Zum sperren:
Code
Sub blockDoc( doc As NotesDocument)
'Dokument für Web-Benutzer sperren
'$PublicAccess item entfernen
'Leserfelder setzen
Dim itemName As String, readerItem As NotesItem
Forall elem In doc.items
If Lcase( Left( elem.name, 7 ) ) = "reader_" Then
'Inhalt des Textfeldes in ein Leserfeld umspeichern
itemName = Replace( elem.name, "reader_", "" )
Set readerItem = New NotesItem( doc, itemName, elem.values, READERS )
'Textfeld löschen
Call doc.RemoveItem( elem.name )
End If
End Forall
Call doc.RemoveItem( "$PublicAccess" )
Call doc.Save( True, False, True )
End Sub

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz