Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: maxg am 30.03.04 - 22:41:48
-
Hallo,
wir wollen unsere Webseiten umstrukturieren. Im Prinzip steht auch schon alles, jetzt geht es aber darum die Datenbank sicher zu machen und den Leuten entsprechende Benutzerrechte zuzuteilen. Unsere Zertifizierungsstruktur ist -leider- sehr flach: "name/standort/firmenname". Neben dem Teil, der nicht durch alle Leute geändert werden soll, soll ein Teil der Webseiten durch alle Mitarbeiter eines Standortes editierbar sein. nun stellt sich die Frage wie ich das am geschickstesten anstelle. Ich dachte auf jeden Fall an Autoren und Leserfelder weiß aber noch nicht was ich da am geschicktesten reinschreibe
Variante 1:
In das Autorenfeld kommt jeweils direkt "standort/firmenname" des erstellers, leider habe ich keine Ahnung, wie ich das am geschicktesten anstelle.
Variante 2:
In der ACL wird eine Gruppe "*/standort/firmenname" eingetragen, der die Rolle "Standort" zugewiesen wird. Wir haben zehn Standorte das wäre also machbar. Dann müsste man "nur" die Rolle auslesen, da weiß ich wie es geht.
Ich finde die erste Variante besser, weiß aber wie gesagt nicht, wie ich das mache.
Was passiert eigentlich (bei deiden Varianten) wenn ein Admin das Dokument ändert, weil er das als Admin ja darf, aber nicht der Gruppe des Standorts angehört? Das Autorenfeld wird doch bei jeder Änderung neu geschrieben, oder?
Danke,
Max
-
Zu 1: Im Autorenfeld muss sowas stehen:
"*/OU=standort/O=firmenname"
oder
"*/standort/firmenname"
Canonicalized ist immer besser als Abbreviated, aber es sollte beides mit der Wildcard gehen.
Andreas
-
Zu allerletzten Frage:
Nein, das Autorenfeld wird nicht neu geschrieben beim Speichern afaik.
Matthias
-
Wenn Du das Autorenfeld "Berechnet beim Anlegen" machst, behält es seinen ursprünglichen Wert (zum Zeitpunkt des Erstellens) bei.
-
Wenn Du das Autorenfeld "Berechnet beim Anlegen" machst, behält es seinen ursprünglichen Wert (zum Zeitpunkt des Erstellens) bei.
Den Wert behält es doch auch, wenn es bearbeitet oder "nur" berechnet ist, solange der User nix daran ändert, oder?
Matthias
-
Wenn Du das Autorenfeld "Berechnet beim Anlegen" machst, behält es seinen ursprünglichen Wert (zum Zeitpunkt des Erstellens) bei.
Den Wert behält es doch auch, wenn es bearbeitet oder "nur" berechnet ist, solange der User nix daran ändert, oder?
Matthias
Es kommt auf die Formel an.
Bearbeitbare Felder mit Vorgabewert und ohne Eingabeumsetzung behalten den Wert, es sei denn der User ändert den. Wenn man das Feld versteckt, ok.
Bei berechneten Feldern wird der Feldwert bei jedem Aktualisieren oder Speichern berechnet.
Andreas
-
OK alles klar, dann hab ich das richtig gesehen.
Hab nur daraus interpretiert, dass Notes u.U. hier die Autorenfelder manipuliert, aber dem ist ja definitiv nicht so.
Matthias
-
Danke, ich hätte ja nicht gedacht, dass hier so schnell so viele Antworten zusammenkommen.
Auf die Idee mit dem "Berechnet beim Anlegen" bin ich noch nicht gekommen, Danke.
Was in dem Feld stehen muss ist mir schon klar gewesen, nur wie ich da rankomme ist mir nocht nicht ganz klar. Über @Name höchstwahrscheinlich aber wie bringe ich dem bei, den Namen an der entsprechenden Stelle "abzuschneiden"?
-
Zunächst: Berechnet beim Anlegen würde ich nicht machen, eine einfache Änderung wird damit erschwert. Das Autorenfeld sollte verborgen sein, wenn der aktuelle User nicht die Rolle Administrator hat (oder wie immer diese Rolle bei Euch heisst). Der kann dann die Standort-abhängigen Autoren eintragen oder ändern.
Wenn allerdings ein Nicht-Admin auch Doks erstellen können soll, okay, dann musst Du den Standort-Teil des Namens automatisch ermitteln. Mit @Left (@UserName; "/") bekommst Du die Position des Namens-Endes heraus, mit @Middle kannst Du von dort aus weitermachen ...
HTH,
Bernhard
-
Zunächst: Berechnet beim Anlegen würde ich nicht machen, eine einfache Änderung wird damit erschwert.
Hallo Bernhard,
was meinst Du damit genau? Ich mache das oft mit Berechnet beim Anlegen, wenn ich bspw. dem Ersteller Autorrecht geben will. Dann gibt es das Autorfeld "From" mit der Formel @Username.
Wenn es berechnet wäre, würde ja beim Speichern (bspw. durch einen Editor) dessen Name darin stehen und der ursprüngliche Ersteller dürfte nicht mehr arbeiten.
@maxg:
Die Formel:
"*/" + @Left(@Username;"/")
Das setzt voraus, dass der Standort immer hinter dem Namen kommt und keine weitere OU verwendet wird.
Andreas
-
Hallo, Andreas,
berechnet geht doch und trägt nicht zwangsläufig den aktuellen Autor ein (es sei denn, das Feld ist leer). Ich dachte hier eher an eine Auswahlliste mit den Standort-Gruppen à la
*/OU=Standort1/Firma
*/OU=Standort2/Firma
*/OU=Standort3/Firma
wo sich der Admin dann das passende heraussucht.
Wegen der Formel: Da kommt aber was unerwünschtes heraus, nämlich "*/CN=Vorname Nachname" ...
Bernhard
-
Äh ja, links und rechts ist schon schwierig ;D
Also
"*/" + @Right(@Username;"/")
Wenn ich maxg richtig verstanden habe, soll nicht der Admin ein Dokument erstellen, sondern ein normaler User. Dann sollen aber nur User des gleichen Standortes bearbeiten dürfen. Von daher wäre es ein Service vom Programm, wenn das automatisch berechnet würde.
Andreas
-
@Right reicht aber auch nicht aus, dann bekommt man ja nur die Organisation, benötigt wird aber auch OU. ;)
-
@Right reicht aber auch nicht aus, dann bekommt man ja nur die Organisation, benötigt wird aber auch OU. ;)
??? Wieso? @Right wertet doch von links aus und @RightBack habe ich nicht verwendet.
Andreas
-
Wenn ich maxg richtig verstanden habe, soll nicht der Admin ein Dokument erstellen, sondern ein normaler User. Dann sollen aber nur User des gleichen Standortes bearbeiten dürfen. Von daher wäre es ein Service vom Programm, wenn das automatisch berechnet würde.
Hallo,
genau so stelle ich mir das vor. Im Autorenfeld sollte also hinterher */standort/firmenname stehen. Da alle ID's so aufgebaut sind gibt es da bei uns intern zumindest keine Probleme. Leider blicke ich aber bei euch im Moment noch nicht durch welche Formel denn nun die richtige ist. :(
-
Die von Andreas mit @Right.
-
@Right reicht aber auch nicht aus, dann bekommt man ja nur die Organisation, benötigt wird aber auch OU. ;)
??? Wieso? @Right wertet doch von links aus und @RightBack habe ich nicht verwendet.
Andreas
Hmm..bin ich jetzt im falschen Film ?
Wenn ich einen Namen habe wie XYZ/Standort/Firma und lasse da ein @Right(Name; "/") drauf los, dann sollte doch wohl das dabei rauskommen : Firma.
Richtig wäre dann @RightBack(Name; "/"). Dann bekomme ich Standort/Firma und wenn ich das dann mit "/" verkette paßt es wieder.
-
@Diri:
Es ist
@Right("XYZ/Standort/Firma";"/") = "Standort/Firma"
und
@RightBack("XYZ/Standort/Firma";"/") = "Firma"
Andreas
-
Gut,
damit ich da auch für die Zukunft was von lerne:
@right geht von links nach rechts und schneidet dann bei dem angegebenen Argument ab.
@rightback fängt rechts an und geht dann nach links.
richtig?
Und vielen Dank nochmal.
-
Richtig. Und genauso steht das auch in der DesignerHelp.
-
@right geht von links nach rechts und schneidet dann bei dem angegebenen Argument ab.
@rightback fängt rechts an und geht dann nach links.
richtig?
Richtig!
Andreas
-
Dickes Sorry, ich hab wieder mal nur den ersten Satz in der Hilfe gelesen. Weiter unten wirds dann klar. ::) :-[
-
Kein Problem! Ich habe nur im ersten Moment einen Schreck bekommen, dass ich mich schon wieder vertan habe.
Wenn wir schon dabei sind und es ab und zu gefragt wird. Beide Funktionen (und natürlich das Pendant @Left + @Leftback) gibt es auch seit R5 in Lotus Script
@Right = strRight(string,delimiter)
@RightBack = strRightback(string,delimiter)
Das erspart einem das Gedönse mit der Positionsbestimmung und Länge - Position oder wie man das so mit Right$ und Left$ gemacht hat...
Andreas
-
Is aber auch irgendwie mißverständlich, ich brauch das so selten, daß ich die Funktionsweise nicht im Kopf habe und der Name läßt erstmal was anderes vermuten :)
-
Das hat aber schon seine Richitgkeit und stammt vermutlich aus der ANSI-Basic Definition, wo es nur Left$ und Right$ gegeben hat und die waren genau so definiert: "Suche das erste Zeichen und schneide dort" .... rechts oder links.
Die Back-Varianten wurden später "erfunden", daher dieses scheinbare "entgegen den Erwartungen des Begriffes"