Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Jörg am 02.11.05 - 16:01:08

Titel: Feld mit UserRoles
Beitrag von: Jörg am 02.11.05 - 16:01:08
Hallo Leute,
ich möchte gerne das bearbeiten von Dokumenten unterbinden.
Hierfür habe ich folgenden Code genommen:
Code
Sub Postopen(Source As Notesuidocument)
	
	Dim szStatus As String
	szStatus = source.FieldGetText("UserRoles")
	
'Wenn Doc im Lesemodus, dann Folgecode nicht beachten
	If Source.EditMode = False Then Exit Sub
	
'Prüfe Statusfeld...
	If Not szStatus ="[admin]" Then
		Msgbox "The 'edit mode' is not allowed.", 64, "Error"
		Source.EditMode = False 'Setze Dokument in Lesemodus
		Exit Sub
	End If
	
End Sub
und ein Feld Userroles in das Dokument eingebunden was ich mit
@UserRoles aber das Feld wird nciht mit der UserRole des Betrachters aktuallisiert.
Waran kann dies liegen????
Titel: Re: Feld mit UserRoles
Beitrag von: umi am 02.11.05 - 16:29:06
Was für ein Feldtyp ist es?
Sollte entw. Computed oder computed for display sein denke ich mal
Titel: Re: Feld mit UserRoles
Beitrag von: Jörg am 02.11.05 - 16:52:15
Hi Urs,

es ist ein Textfeld mit Berechnet zur Anzeige.

Gruss jörg
Titel: Re: Feld mit UserRoles
Beitrag von: MadMetzger am 02.11.05 - 17:10:31
Das sollte das Problem sein, mit berechnet sollte es wahrscheinlich gehen... aber warum nutzt du nicht ein Autorenfeld für deinen Zweck?
Titel: Re: Feld mit UserRoles
Beitrag von: TMC am 02.11.05 - 19:08:43
Grundsätzlich muss ich Markus zustimmen, normalerweise nimmt man für sowas Autorenfelder.

Wie auch immer:

Das Feld sollte AFAIK "Berechnet" sein und NICHT "Berechnet zur Anzeige".



Ob der User eine bestimmte Rolle hat, würde ich per LotusScript abfragen:

Dim vEval as Variant
Dim strRolle as String
strRolle = "[ErDarfLesen]"
vEval = Evaluate(|@IsMember("| & strRolle & |"; @UserRoles)|)

If vEval(0) = 1 Then
    Msgbox "User hat die Rolle " & strRolle & " !!!"
End If
Titel: Re: Feld mit UserRoles
Beitrag von: koehlerbv am 02.11.05 - 19:45:10
Da das Feld (besser: Item) im FrontEnd abgefragt wird, ist vollkommen egal, ob das bearbeitbar, berechnet oder berechnet zur Anzeige ist - es spielt wirklich keinerlei Rolle.

Aber gestattet mir bitte folgende Anmerkungen:
- Das Bearbeiten von Dokumenten verhindert man nie und nimmer durch solcherlei Stunts. Damit hindert man den unbedarften User an bestimmten Aktionen, hat aber keinerlei (wirklich KEINERLEI) Sicherheit.
- Man verwende für sichere Aktionen Autorenfelder (das wurde hier schon geschrieben).
- Die Abfrage an sich ist zweifelhaft, da das Feld "UserRoles" via seiner Formel "@UserRoles" ohne weiteres uach Mehrfachwerte annehmen kann. Dies wird aber hier weder durch den Zugriff auf das Feld noch durch die Auswertung irgendwie berücksichtigt.
- Das Feld ist - genau, wie es Matthias "TMC" eben schrieb - vollkommen unnötig (und kann daher bestenfalls als "computed for display" temporär verwendet werden - ist aber wie gesagt unnötig): Die UserRoles können direkt und ohne Umfrage abgegriffen werden. Auch hier ist auf mögliche Mehrfachwerte zu achten.

Weiterhin und nur, um auf Nummer Sicher zu gehen: Hast Du, Jörg, ggf. lokal getestet, aber keine kACL erzwungen ? Dann würden keinerlei Roles greifen. Die prinzipiellen Kritiken oben betrifft aber auch dies in keinster Weise,

Um das Ganze einfacher zu gestalten: Was willst Du überhaupt erreichen, Jörg ? Da würde ja des Pudels Kern liegen und nicht im Zerpflücken von erforderlichen Feldtypen oder mögliche workarounds oder was weiss ich. Schreib' einfach auf, was Du sicherstellen möchtest. Dann können wir alle die Kristallkugel ausschalten  ;)

Bernhard
Titel: Re: Feld mit UserRoles
Beitrag von: Jörg am 03.11.05 - 07:46:48
 ::) ::) ::) Also was damit ereichen möchte ist eigentlich folgendes:
In der Datenbank gibt es diverse UserRoles welche auf den Server gepflegt sind.

Nun habe ich hier eine UserRoles "[admin]" definiert.
Nur bei dieser UserRoles darf es den Nutzer möglich ein Dokumente zum
bearbeiten zu öffnen, oder Aktionen auszuführen.
Dies wollte ich mit den o.g. Script und den Feld erreichen.

Das die UserRoles funktieren , sehe ich wenn ich diese entsprechend ändere und
dann die Datanbank öffne.

Gruss Jörg
Titel: Re: Feld mit UserRoles
Beitrag von: MadMetzger am 03.11.05 - 12:29:23
Also wenn du die UserRoles über die ACL gepflegt hast, dann ist ein Autorenfeld eigentlich genau die richtige Wahl für dich. Jedoch könnte es vielleicht auch reichen, den Zugriff so zu regeln, dass nur diejenigen, die schreiben sollen, auch Autorenrechte in der ACL bekommen. Wenn alle anderen nur lesen können müssen, dann würde ja Leserecht reichen. Und schon müsstest du nicht mehr in den Maskenevents solche Stunts versuchen, die meistens zu Problemen führen.
Titel: Re: Feld mit UserRoles
Beitrag von: Jörg am 03.11.05 - 12:59:41
So ich bin der ganzen sache etwas näher gekommen.....
Ich habe das Feld nun als Autoren und Berechnet zur Anzeige deklariert und
sie da nun klappt auch das Script ;-) mit den rechten zum bearbeiten.

Gruss Jörg