Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Colli am 27.04.06 - 14:04:50

Titel: Rollenproblematik
Beitrag von: Colli am 27.04.06 - 14:04:50
Hallo,

gibt es irgendwelche Einschränkungen wie man Rollenbezeichnungen vergeben kann?

Ich habe bearbeitbare/berechnete Felder und je nach dem wer gerade angemeldet ist und zu welcher Rolle gehört, dürfen verschiedene Felder nur gelesen oder bearbeitet werden.

Der Befehl in der Hide-When-Formel eines bearbeitbaren Feldes geht, wenn ich die Rolle Stammdaten habe, auch wenn ich IKS bin, aber bei EditAll geht es nicht.

!@IsMember(@UserRoles;"[EditAll]":"[Stammdaten]":"[IKS]")

Kann es an der Schreibweise liegen?
Titel: Re: Rollenproblematik
Beitrag von: Glombi am 27.04.06 - 14:08:11
@IsMember geht in dem Fall nicht, wenn es reicht, dass der Anwender nur EINE Rolle hat.

Dann so:
@Keywords(@UserRoles;"[EditAll]":"[Stammdaten]":"[IKS]") = ""

Andreas
Titel: Re: Rollenproblematik
Beitrag von: Colli am 27.04.06 - 14:22:56
ich dacht IsMember überprüft ob der angemeldete User über eine dieser Rollen verfügt?!

ich versuche es mal wie du sagst
Titel: Re: Rollenproblematik
Beitrag von: Glombi am 27.04.06 - 14:29:09
siehe Hilfe:

If both parameters are lists, returns 1 if all elements of textListValue1 are contained in textListValue2
Titel: Re: Rollenproblematik
Beitrag von: Colli am 27.04.06 - 14:39:03
Nochmal zum mitschreiben. Mit @keywords bekomme ich die schnittmenge von zwei listen und das ergebnis ist eventuell wieder ne liste, die ich dann auf leer oder nicht leer prüfe?!

Formel für bearbeitbares Feld:
@Keywords(@UserRoles;"[EditAll]":"[Stammdaten]":"[IKS]") != ""

Formel für berechnetes Feld:
@Keywords(@UserRoles;"[EditAll]":"[Stammdaten]":"[IKS]") = ""
Titel: Re: Rollenproblematik
Beitrag von: Glombi am 27.04.06 - 14:51:51
Mit @keywords bekomme ich die schnittmenge von zwei listen und das ergebnis ist eventuell wieder ne liste, die ich dann auf leer oder nicht leer pr�fe?!

Formel f�r bearbeitbares Feld:
@Keywords(@UserRoles;"[EditAll]":"[Stammdaten]":"[IKS]") != ""


Formel f�r berechnetes Feld:
@Keywords(@UserRoles;"[EditAll]":"[Stammdaten]":"[IKS]") = ""


3x JA

Andreas
Titel: Re: Rollenproblematik
Beitrag von: Colli am 27.04.06 - 15:06:07
klingt ja toll, aber es geht nicht

ich gehöre beispielsweise nur der Rolle "ABC" an, dürfte also die Felder, die ich mit
@Keywords(@UserRoles;"[EditAll]":"[Stammdaten]":"[IKS]") != ""
versehen habe, nicht bearbeiten können, kann ich aber

und nu?
Titel: Re: Rollenproblematik
Beitrag von: Glombi am 27.04.06 - 15:12:20
Die Hide when Formeln umdrehen, denn die sollen ja True sein, wenn es versteckt sein soll.

Für das bearbeitbare Feld:
Verbergen wenn folg. Formel wahr ist:
@Keywords(@UserRoles;"[EditAll]":"[Stammdaten]":"[IKS]") = ""

Für das berechnete Feld:
Verbergen wenn folg. Formel wahr ist:
@Keywords(@UserRoles;"[EditAll]":"[Stammdaten]":"[IKS]") != ""

Andreas
Titel: Re: Rollenproblematik
Beitrag von: Colli am 27.04.06 - 15:22:36
Das funktioniert genausowenig wie mit @IsMember. Ich glaub ich muss Feierabend machen! ;) Es haut nix hin! :(

Hat noch jemand eine Idee?
So geht es nicht:
!@IsMember(@UserRoles;"[EditAll]":"[Stammdaten]":"[IKS]")
und so auch nicht:
@Keywords(@UserRoles;"[EditAll]":"[Stammdaten]":"[IKS]") = ""
Titel: Re: Rollenproblematik
Beitrag von: jovel am 27.04.06 - 15:54:59
Nächster Versuch: Was passiert denn bei folgender Konstellation...

@IsNotMember("[EditAll]";@UserRoles) |
@IsNotMember("[IKS]";@UserRoles) |
@IsNotMember("[Stammdaten]";@UserRoles)

 ???
Titel: Re: Rollenproblematik
Beitrag von: koehlerbv am 27.04.06 - 16:06:53
Wenn schon, müsste es AND statt OR heissen - es reicht ja, wenn eine Bedingung NICHT stimmt, um die ganze Aussage hinfällig werden zu lassen.
Ich denke aber, die Lösung kann nicht sein, den platten Reifen woanders aufzuziehen und dann zu schauen, ob der "Fehler" immer noch auftritt.

@Keywords liefert die Schnittmenge zurück. Der Hund muss woanders liegen.

Bernhard
Titel: Re: Rollenproblematik
Beitrag von: Colli am 27.04.06 - 16:11:15
Der Hund muss woanders liegen.

Bernhard

Du meinst also, dass meine Versuche generell hätten klappen müssen.
Also muss der Fehler ganz woanders liegen?!

Idee?
Titel: Re: Rollenproblematik
Beitrag von: koehlerbv am 27.04.06 - 16:26:24
Mit @IsMember: Nein. Wie Andreas das schon ausgeführt hat. @IsMember würde nur funktionieren, wenn Du nur eine einzige Rolle hättest (und so kurzsichtig darf man ja nicht programmieren).

Mit @Keywords: Ja. Beachtest Du, dass @Keywords case sensitive arbeitet?

Bernhard
Titel: Re: Rollenproblematik
Beitrag von: Colli am 27.04.06 - 17:15:20
Ja, auf die Schreibweise hab ich geachtet.
Titel: Re: Rollenproblematik
Beitrag von: koehlerbv am 27.04.06 - 17:22:48
Mal ein paar simple Fragen (nur, um das auszuschliessen):
Siehst Du eigentlich beide Felder (das editable und das cfd-Feld)?
Arbeitest Du lokal und dann ohne konsistente ACL?
Hast Du Dir in einem temp. Feld das Resultat von @Keywords mal anzeigen lassen?

Bernhard
Titel: Re: Rollenproblematik
Beitrag von: Glombi am 27.04.06 - 18:47:20
Ich habe eben mal auf die Schnelle nebenbei das mit @Keywords getestet und ein für mich unerwartetes Ergebnis erhalten. Es wird nicht die Schnittmenge geliefert, sondern gar nix  :o

Bug oder Feature? Oder Problem vor dem Bildschirm  ;D
Titel: Re: Rollenproblematik
Beitrag von: koehlerbv am 27.04.06 - 18:50:35
Interessant. Bei mir klappt es. Hast Du direkt in einer Hide-when-Formel getestet? Das habe ich nämlich noch nicht ...

Bernhard
Titel: Re: Rollenproblematik
Beitrag von: Colli am 04.05.06 - 08:39:31
Ich erfasse diese Formel direkt in die Eigenschaften des Feldes "Absatz verbergen, wenn ..."
Die Rollen teste ich nicht lokal.

@Keywords(@UserRoles;"[EditAll]":"[Stammdaten]") = "" (bearbeitbar)
@Keywords(@UserRoles;"[EditAll]":"[Stammdaten]") != "" (berechnet)

Wenn ich die Rolle "EditAll" habe, dann sehe ich in diesem Fall das berechnete Feld, also kann ich den Inhalt nicht ändern, wie es eigentlich sein soll.
Titel: Re: Rollenproblematik
Beitrag von: Colli am 04.05.06 - 10:04:51
Ich hab ein temp-Feld angelegt und folgende Formel eingegeben:
@If(@Keywords(@UserRoles;"[Stammdaten]":"[EditAll]")!="";"jawohl";"nö") ergibt nö

@If(@Keywords(@UserRoles;"[Stammdaten]":"[EditAll]")="";"jawohl";"nö") ergibt jawohl

Ich hab die entsprechende Rolle. Scheint so, als ob die resultierende Menge immer leer ist.

Ich weiß nicht weiter ...
Titel: Re: Rollenproblematik
Beitrag von: Axel am 04.05.06 - 12:28:20
Ich habe mal ein bisschen probiert.

Das Ergebnis: @Keywords lässt sich in Verbindung mit @UserRoles nicht nutzen. Es sei denn, man entfernt die eckigen Klammern. Daran stört sich sich Funktion nämlich.


@Keywords("Stammdaten"; "Stammdaten":"EditAll") -> Stammdaten
 
@Keywords("[Stammdaten]"; "[Stammdaten]":"[EditAll]") -> leer


Axel

Titel: Re: Rollenproblematik
Beitrag von: Glombi am 04.05.06 - 12:37:56
Und warum das so ist, sagt die Hilfe:

Wenn Sie kein Trennzeichen angeben, werden folgende Trennzeichen verwendet:
?. ,!;:[](){}"<> (Fragezeichen, Punkt, Leerzeichen, Komma, Ausrufezeichen, Semikolon, Doppelpunkt, eckige Klammern, runde Klammern, geschweifte Klammern, Anführungszeichen und spitze Klammern).
Ein "leeres" Trennzeichen, dargestellt durch eine leere Zeichenfolge (""), weist die Funktion an, keine Trennzeichen zu verwenden.

D.h. ein
@Keywords(@UserRoles;"[EditAll]":"[Stammdaten]";"")

sollte gehen.

... und es geht wie ich gerade probiert habe.

Andreas
Titel: Re: Rollenproblematik
Beitrag von: Axel am 04.05.06 - 12:38:41
Versuch's mal so:

@Keywords(@ReplaceSubstring(@UserRoles ; "[": "]" ; ""); "Stammdaten" : "EditAll")


Axel

Titel: Re: Rollenproblematik
Beitrag von: Axel am 04.05.06 - 12:40:45

D.h. ein
@Keywords(@UserRoles;"[EditAll]":"[Stammdaten]";"")



Das funktioniert auch.


Axel

Titel: Re: Rollenproblematik
Beitrag von: Colli am 04.05.06 - 13:58:22
@all
Vielen, vielen Dank. Ich hätte jetzt doch fast aufgegeben.
Wo kann man solche Feinheiten eigentlich nachlesen?
Titel: Re: Rollenproblematik
Beitrag von: Axel am 05.05.06 - 12:11:24
Wo kann man solche Feinheiten eigentlich nachlesen?

Andreas hat es schon weiter ober geschrieben: in der Hilfe, sprich Online-Hilfe des Designer-Clients.


Axel