Autor Thema: $PublicAccess und Leserfelder  (Gelesen 4282 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.696
  • 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.696
  • 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