Domino 9 und frühere Versionen > Entwicklung
Feld schützen, wenn bestimmte Rolle nicht vorhanden ist....
klaussal:
noch eine Lösung:
--- Code: ---Function userHasRole (Rolle As String) As Variant
Dim session As New NotesSession
Dim db As NotesDatabase
Dim acl As NotesACL
Dim aclEntry As NotesACLEntry
Dim eval As Variant
Dim varReturn As Variant
Dim varCompare As String
Dim Rolle2 As String
Dim subString As String
On Error Goto userHasRoleError
Set db = session.currentDatabase
Rolle2 = "[" + Rolle + "]"
eval = Evaluate("@UserNamesList")
varReturn = Arraygetindex( eval, Rolle2)
If Isnull(varReturn) Then
'Messagebox "nix Gefunden"
userHasRole = False
Else
'Messagebox "gefunden"
userHasRole = True
End If
On Error Goto 0
Exit Function
userHasRoleError:
userHasRole = False
Msgbox "Fehler in userHasRole: " & Cstr(Err) & ": " & Error$
Exit Function
End Function
--- Ende Code ---
klaus
OCS:
danke klaus,
die funktioniert geht super! ähm nur noch eine frage.... die funktion sollte mir doch eigentlich true oder false zurückgeben, oder???
ich füge sie nochmal hier ein.....
Function userHasRole (Rolle As String) As Variant
Dim session As New NotesSession
Dim db As NotesDatabase
Dim acl As NotesACL
Dim aclEntry As NotesACLEntry
Dim eval As Variant
Dim varReturn As Variant
Dim varCompare As String
Dim Rolle2 As String
Dim subString As String
On Error Goto userHasRoleError
Set db = session.currentDatabase
Rolle2 = "[Manager]"
eval = Evaluate("@UserNamesList")
varReturn = Arraygetindex( eval, Rolle2)
If Isnull(varReturn) Then
Messagebox "nix Gefunden"
userHasRole = False
Else
Messagebox "gefunden"
userHasRole = True
End If
On Error Goto 0
Exit Function
userHasRoleError:
userHasRole = False
Msgbox "Fehler in userHasRole: " & Cstr(Err) & ": " & Error$
Exit Function
End Function
----------------------------------------------------------------------------------------
ich ruf die dann so auf:
Sub Entering(Source As Field)
userHasRole (Rolle)
End Sub
-----------------------------------------------------------------------------------------
Rolle sollte doch jetzt irgend nen wert haben, mit dem ich weiter arbeiten kann, oder?? sorry, bin ein nub...
Danke Björn
koehlerbv:
Die Funktion liefert auch einen boolschen Wert zurück, Du musst sie nur richtig einsetzen:
- Schmeiss die Rolle2 aus der Function
- Ruf sie wie folgt auf:
If userHasRole ("[Manager]") = True then
... Deine Reaktion ...
Else
... Deine andere Reaktion
End If
HTH,
Bernhard
Raymond:
Im Gegensatz zu einer Sub hat eine Function ein Rückgabewert, den kannst du einer Variablen vom entsprechenden Typ zuweisen. in deinem Fall also
varX = userHasRole(Role)
in varX steht nun der Rückgabewert von der Funktion userHasRole.
Gruss - Raymond
koehlerbv:
Björn, aber nochmal meine Frage: Warum treibst Du soviel Aufwand anstatt mit zwei Feldern zu arbeiten (vor allem, da Du noch nicht fit in LotusScript bist) ? Das ist doch erheblich übersichtlicher und für den User vor allem ergonomischer, wie ich oben schon geschrieben habe.
Aber es mag ja einen Grund geben, der bei Dir dagegen steht.
Bernhard
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln