Domino 9 und frühere Versionen > ND8: Entwicklung
@ExpandNameList löst keine Gruppen auf
Hans Meiser:
bei den getesteten "Multi-purpose" Gruppe stehen nur Personen drin, keine weitere (ACL oder sonstige) Gruppen
pram:
Ich könnte mir vorstellen, dass man dem Evaluate ein Kontextdokument aus der aktuellen DB übergeben muss.
und noch was, bitte in Evaluates keine Strings berechnen
--- Code: ---Evaluate(|@ExpandNameList( @Subset(@DbName;1) ; "| + tmplist(i) +|")|)
--- Ende Code ---
sondern besser so machen
--- Code: ---dim doc as new NotesDocument(db);
doc.data = tmplist(i)
v= Evaluate(|@ExpandNameList( @Subset(@DbName;1) ; data)|,doc)
--- Ende Code ---
Grund 1: die Formel wird gleich vorcompiliert (der Designer meckert z.B. beim Speichern schon wenn ein Fehler enthalten ist)
Grund 2: es lässt sich im ersten Beispiel Schadcode einfügen, angenommen tmpList(i) enthält folgende aufzulösende "Gruppe":
--- Code: ---dummy");@SetProfileField("admin";"Autoren";"*
--- Ende Code ---
(kannst ja mal oben einsetzen was dann für eine Formel ausgefuhrt wird)
Durch Kenntnis der DB könnte man so ein entsprechend präpariertes Dokument einem Admin unterschieben.... nicht auszudenken was dann alles passiert :-P -> http://xkcd.com/327/ ;)
Gruß
Roland
Hans Meiser:
Hallo Roland,
die Code-Zeile habe ich nicht selber programmiert, sondern sie ist eine Original-Zeile auf dem Lotus Notes Template "StdR7ResourceReservation version 7.03 (05.07.2007)".
Ein Kunde hat auf Basis dieses Ressourcen-Template ein paar Erweiterungen eingebaut (d.h. paar Felder aufgenommen) und nutzt es als eine weitere Raumreservierung-Datenbank. Bei den Räumen arbeitet er mit "Owner restrictions", d.h. nur bestimmte Personen/Gruppen können diese Räume buchen. Das Auflösen der Gruppen über @ExpandNameList funktioniert aber beim Kunden nicht. An der Programmierung für das Auflösen wurden keinerlei Änderungen vorgenommen, d.h. es ist ist immer noch der Original Lotus Notes Template Code.
Als Test habe ich dann einfache @Formel-Buttons mit @ExpandNameList gebaut und dabei festgestellt, dass beim Kunden die Funktion @ExpandNameList gar keine Gruppe auflöst und ich will verstehen warum. Denn ich kann mir nicht vorstellen, dass Lotus ein Ressource-Template erstellt und weltweit mit jedem Server ausliefert und dann funktioniert so ein elementarer Befehl nicht, auch wenn er undokumentiert ist. @ExpandNameList wird übrigens auch im Mail-Template verwendet.
Da muss es doch irgendwelche Restriktionen bei dem Befehl geben...
ata:
... ich arbeite auch damit, und habe ebenso die Erfahrung abhängig vom Gruppentyp gemacht, daß er nicht alle auflöst. Deshalb habe ich eine Validierung der Auflösung eingbaut, die es dann per Script vervollständigt.
Deine Einschätzung zu IBM muß ich trüben - es ist kaum zu fassen, was sich in den Originalen alles so findet...
Toni
pram:
ExpandNameList funktioniert mit großer Sicherheit dann nicht, wenn das Ergebnis der Auflösung >64K ist.
Im Hinterkopf habe ich auch noch dass es in lokalen Repliken nicht funktioniert, bzw wenn kein Zugriff auf das Adressbuch möglich ist.
--- Code: ---die Code-Zeile habe ich nicht selber programmiert, sondern sie ist eine Original-Zeile auf dem Lotus Notes Template "StdR7ResourceReservation version 7.03 (05.07.2007)".
--- Ende Code ---
um so schlimmer :o muss ich bei Gelegenheit direkt mal einen Exploit basteln ;)
Gruß
Roland
Navigation
[0] Themen-Index
[*] Vorherige Sete
Zur normalen Ansicht wechseln